PreFire: Difference between revisions

From CKRAS Wiki

No edit summary
 
(35 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{#seo:
{{#seo:
|title=Practice CS2 Server - www.ckras.com - CKRAS WIKI
|title=Practice Training for CS2 Server -CKRAS WIKI
|title_mode=append
|title_mode=append
|keywords=ckras, wiki, cs2, gameserver, help, guide, webinterface, prefire, prac, opensource, training, control, gslt, area, wiki, help
|keywords=ckras, wiki, cs2, gameserver, help, guide, webinterface, prefire, prac, opensource, training, control, gslt, area, wiki, help
|description=PreFire Prac for CS2 Gameserver, helps you to perform various prefire trainings on competitive maps, available at www.ckras.com
|description=PreFire Prac Training for CS2 Gameserver, helps you to perform various prefire trainings on competitive or workshop maps, available at www.ckras.com
|image=Target-practice.png
|image=Target-practice.png
|image_alt=PreFire Practice for CS2 Gameserver - CKRAS.com
|image_alt=PreFire Practice Training for CS2 Gameserver - CKRAS.com
}}
}}
[[File:Target-practice.png|left|20x20px|PREFIRE]]
[[File:Target-practice.png|left|20x20px|PREFIRE]]
PreFire Practice for '''[[CS2]]''' is perfect tool to train prefire on competive maps, with '''PreFire''' Addon you can start the training scenarios with '''!prefire''' on the currently available maps as indicated in the menu.  
PreFire Practice for '''[[CS2]]''' is the perfect tool to train prefire on competitive and custom Counter-Strike 2 maps, with '''PreFire''' Addon you can start the training scenarios with '''!prefire''' on the currently available maps as indicated in the menu. prefire is available as default for every ckras customer.  >> [https://wiki.ckras.com/wiki/index.php?title=PreFire Deutsch] [[File:Germany.png|alt=Deutsch|20x20px|link=https://wiki.ckras.com/wiki/index.php?title=PreFire]]


''<small>An open-source CounterStrikeSharp powered server-side practicing plugin for CS2. It provides multiple prefire practices on competitive map pool maps and support multiplayer practicing concurrently.</small>''


{{infobig|We will install this addon for you at any time on request (soon available in the panel), alternatively see the link to the installation files at the end of the article}}


 
'''CURRENT PREFIRE MAPPOOL:'''
 
'''CURRENT MAPPOOL:'''


{{checkbox|de_ancient}}
{{checkbox|de_ancient}}
Line 23: Line 19:
{{checkbox|de_inferno}}
{{checkbox|de_inferno}}
{{checkbox|de_mirage}}
{{checkbox|de_mirage}}
{{checkbox|de_nuke}}
{{checkbox|de_overpass}}
{{checkbox|de_overpass}}
<br>
{{checkbox|de_vertigo}}
The tool is an open-source project and is currently still under development. Additional maps and training paths will be updated regularly. PreFire need [[CounterStrikeSharp|CSS]] installed.
 
<br>Prefire Practice for your [[CS2]] [[Gameserver|gameservers]] is fully integrated into the CKRAS [[Webinterface|webpanel]] and is available to all customers free of charge. PreFire requires [[CounterStrikeSharp|CSS]] and can be installed with one-click in the panel.
 
''<small>An open-source [[CounterStrikeSharp]] powered server-side practicing plugin for CS2. It provides multiple prefire practices on competitive map pool maps and support multiplayer practicing concurrently.</small>''


== Commands ==
== Commands ==
Line 60: Line 60:




PreFire is not compatible with our [[CKRAS BOT]]
== Prefire Installation ==
 
You can install PreFire in the [[webinterface]] as soon as you have installed&activated [[Metamod|MM]] & [[CounterStrikeSharp|CSS]], then you just have to click on Install and after the server restart you can start your PreFire Practice.
 
[[File:Install-metamod.png|750x750px]]


'''Important:''' PreFire is still under development, if you have any questions or suggestions please contact us at any time.
[[File:Install-counterstrikesharp.png|alt=Install CounterStrike Sharp|750x750px]]


For custom maps you can insert these commands<blockquote>'''pos_x pos_y pos_z ang_x ang_y ang_z'''
[[File:Prefire-install.png|alt=Install PreFire Practice|750x750px]]


The first 3 floating numbers are the position and the other 3 are the rotation.</blockquote><blockquote>'''pos_x pos_y pos_z ang_x ang_y ang_z is_crouching'''


The rest lines describe how to place bots. The first 3 numbers is position, following 3 numbers of the rotation. The 7th value is either True of False indicating whether the bot is crouching.</blockquote><blockquote>'''python3 calculate_height.py [PATH TO YOUR FILE]'''
=== PreFire Update ===
When updating, simply click on this button and the new update will be installed.


The positions and facing rotations can be retrived from in-game get_pos command. But please notice that, the height values used in profiles should be the values returned by get_pos minus 65. I made a python script that does this calculation for you. You can stack the strings retured by get_pos and put them in a txt file, and pass the file to the python script as described below and the script will automatically print out the formatted bot positions.</blockquote>
[[File:Update-plugin.png|750x750px]]


== Prefire Pracs available ==  
== Prefire Pracs available ==  
Line 76: Line 80:
  <code>Finished Practices:</code>
  <code>Finished Practices:</code>


* de_ancient
** B ramp to B site
** B house to B site
** Mid to A site
** A main to A site (modified)
** Retake A from CT spawn
*de_anubis
** Attack B site from B main
** Attack B site from mid (B connector)
** Attack B site from water
** Attack A site from mid (A connector)
** Attack A site from A main
** Add a practice route for aggressive CT pushing from A main.
** Add a practice route for aggressive CT pushing from B main.
* de_dust2
** Attack A site from A long
** Attack A site from A short
** Attack B site from tunnel
** Attack B site from mid
** CT aggressively push from lower tunnel
** CT aggressively push top mid
* de_inferno
* de_inferno
** A short to A site
** A short to A site
Line 82: Line 107:
** Banana to B site
** Banana to B site
** Retake B from CT spawn
** Retake B from CT spawn
* de_ancient
** B ramp to B site
** B house to B site
** Mid to A site
** A main to A site
** Retake A from CT spawn
* de_mirage
* de_mirage
** Attack A site from A ramp (to CT spawn)
** Attack A site from A ramp (to CT spawn)
Line 95: Line 114:
** Attack A site from underpass
** Attack A site from underpass
** Retake B site from CT spawn
** Retake B site from CT spawn
** CT aggressively push A Palace
*de_nuke
**Attack A site from hut
** Attack B site from ramp
** Entrance of lobby (T side)
**  From radio to ramp
** Attack A site from Ramp/J-Hall
** From T-side outside to secret
** Attack B site from secret
** Fast pace rush MINI from Silo
** Attack A site from MINI
* de_overpass
* de_overpass
** Attack B site from B long
** Attack B site from B long
Line 102: Line 132:
** Attack A site from A long
** Attack A site from A long
** Attack A site from A short (mid)
** Attack A site from A short (mid)
* de_dust2
** Retake B site from CT spawn
** Attack A site from A long
*de_vertigo
** Attack A site from A short
**Attack B site from stairs
** Attack B site from tunnel
**From mid to CT spawn
**Attack B site from mid
**Attack A site from A ramp
*de_anubis
**Attack A site from scaffold
** Attack B site from B main
**Retake B site from elevator
** Attack B site from mid (B connector)
** Attack B site from water
** Attack A site from mid (A connector)
** Attack A site from A main
** Add a practice route for aggressive CT pushing from A main.
** Add a practice route for aggressive CT pushing from B main.
*de_nuke
*Attack A site from HUT


== Values ==
== Values ==
Line 122: Line 144:
Now the plugin supports loading default settings of difficulty and training mode from a json file. You can rename '''default_cfg.json.example to default_cfg.json''' and modify the value as you like.
Now the plugin supports loading default settings of difficulty and training mode from a json file. You can rename '''default_cfg.json.example to default_cfg.json''' and modify the value as you like.


Explanation of values:
'''''Adjust default settings'''''


    Difficulty
      Difficulty
         0: No healing.
         0: No healing.
         1: Init hp 500 with no healing.
         1: Init hp 500 with no healing.
         2: +25hp for each kill.
         2: +25hp for each kill.
         3: +100hp for each kill.
         3: Reheal to 100hp after a kill.
         4: +500hp for each kill.
        4: +100hp for each kill.
         5: +500hp for each kill.
     Training Mode
     Training Mode
         0: Random mode, randomly spawn some targets.
         0: Random mode, randomly spawn some targets.
         1: Full mode, all targets.
         1: Full mode, all targets.
    Bot Weapon
        0: Bots buy weapons randomly.
        1: Bots use UMP45.
        2: Bots use AK47.
        3: Bots use Scout.
        4: Bots use AWP.
  Aim lock for bots
        0: CS2's native bot behavior. It works in a consistant manner but is less powerful.
      1: CSS based aim lock: Bots always aim at players' heads. But this may conflict with CS2's native bot logic, causing bots to not react under certain circumstances.
      2: Behavior tree based aim lock: Hard mode.
== Custom Maps ==
For custom maps you can insert these commands<blockquote>'''pos_x pos_y pos_z ang_x ang_y ang_z'''
The first 3 floating numbers are the position and the other 3 are the rotation.</blockquote><blockquote>'''pos_x pos_y pos_z ang_x ang_y ang_z is_crouching'''


The rest lines describe how to place bots. The first 3 numbers is position, following 3 numbers of the rotation. The 7th value is either True of False indicating whether the bot is crouching.</blockquote><blockquote>'''python3 calculate_height.py [PATH TO YOUR FILE]'''


The positions and facing rotations can be retrived from in-game get_pos command. But please notice that, the height values used in profiles should be the values returned by get_pos minus 65. I made a python script that does this calculation for you. You can stack the strings retured by get_pos and put them in a txt file, and pass the file to the python script as described below and the script will automatically print out the formatted bot positions.</blockquote>
== Development ==
== Development ==
'''TODO:'''
'''TODO (From DEV PAGE):'''
# Create prefire profiles for all maps.
 
# Draw guiding lines on the floor.
#Create prefire profiles for all maps.
# Improve bot logic.
#Apply behavior tree to improve bot AI logic.
# Improve localization support (The supporting framework is done. Submitting translations is warmly welcomed.).
#Improve localization support (The supporting framework is done. Submitting translations is warmly welcomed.).
# Reroute saperate logs into one gathered place for better debug experience.
#Reorganize the files and code structure. Try to put code into submodules to improve readability.
#Reroute separate logs into one gathered place for better debug experience.
 
 
<br>
<br>
Source: https://github.com/lengran/OpenPrefirePrac<br>
Source: https://github.com/lengran/OpenPrefirePrac<br>

Latest revision as of 12:11, 12 September 2024

PREFIRE

PreFire Practice for CS2 is the perfect tool to train prefire on competitive and custom Counter-Strike 2 maps, with PreFire Addon you can start the training scenarios with !prefire on the currently available maps as indicated in the menu. prefire is available as default for every ckras customer. >> Deutsch Deutsch


CURRENT PREFIRE MAPPOOL:

de_ancient
de_anubis
de_dust2
de_inferno
de_mirage
de_nuke
de_overpass
de_vertigo


Prefire Practice for your CS2 gameservers is fully integrated into the CKRAS webpanel and is available to all customers free of charge. PreFire requires CSS and can be installed with one-click in the panel.

An open-source CounterStrikeSharp powered server-side practicing plugin for CS2. It provides multiple prefire practices on competitive map pool maps and support multiplayer practicing concurrently.

Commands

Commands Description
!prefire Start menu
!prefire prac [number] Start practicing on a selected route.
!prefire map [map name] Switch to another map.
!prefire df [1-5] Set the difficulty.
!prefire mode [rand/full] Set training mode, full or random.
!prefire bw [rand/ump/ak/sct/awp] Set weapons for bots.
!prefire lang [en/pt/zh] Set language. en for English, pt para português, 中文选择 zh。
!prefire exit Stop practicing PreFire.
!prefire help Help Menu


Prefire Installation

You can install PreFire in the webinterface as soon as you have installed&activated MM & CSS, then you just have to click on Install and after the server restart you can start your PreFire Practice.

Install-metamod.png

Install CounterStrike Sharp

Install PreFire Practice


PreFire Update

When updating, simply click on this button and the new update will be installed.

Update-plugin.png

Prefire Pracs available

Finished Practices:
  • de_ancient
    • B ramp to B site
    • B house to B site
    • Mid to A site
    • A main to A site (modified)
    • Retake A from CT spawn
  • de_anubis
    • Attack B site from B main
    • Attack B site from mid (B connector)
    • Attack B site from water
    • Attack A site from mid (A connector)
    • Attack A site from A main
    • Add a practice route for aggressive CT pushing from A main.
    • Add a practice route for aggressive CT pushing from B main.
  • de_dust2
    • Attack A site from A long
    • Attack A site from A short
    • Attack B site from tunnel
    • Attack B site from mid
    • CT aggressively push from lower tunnel
    • CT aggressively push top mid
  • de_inferno
    • A short to A site
    • A long to A site
    • A apartments to A site
    • Banana to B site
    • Retake B from CT spawn
  • de_mirage
    • Attack A site from A ramp (to CT spawn)
    • Attack B site from B apartments
    • Attack A site from A palace (to jungle)
    • Attack B site from mid
    • Attack A site from underpass
    • Retake B site from CT spawn
    • CT aggressively push A Palace
  • de_nuke
    • Attack A site from hut
    • Attack B site from ramp
    • Entrance of lobby (T side)
    • From radio to ramp
    • Attack A site from Ramp/J-Hall
    • From T-side outside to secret
    • Attack B site from secret
    • Fast pace rush MINI from Silo
    • Attack A site from MINI
  • de_overpass
    • Attack B site from B long
    • Attack B site from B short
    • Clear underpass and go upwards to mid
    • Clear underpass and go towards B short
    • Attack A site from A long
    • Attack A site from A short (mid)
    • Retake B site from CT spawn
  • de_vertigo
    • Attack B site from stairs
    • From mid to CT spawn
    • Attack A site from A ramp
    • Attack A site from scaffold
    • Retake B site from elevator

Values

Now the plugin supports loading default settings of difficulty and training mode from a json file. You can rename default_cfg.json.example to default_cfg.json and modify the value as you like.

Adjust default settings

      Difficulty
       0: No healing.
       1: Init hp 500 with no healing.
       2: +25hp for each kill.
       3: Reheal to 100hp after a kill.
       4: +100hp for each kill.
       5: +500hp for each kill.
   Training Mode
       0: Random mode, randomly spawn some targets.
       1: Full mode, all targets.
   Bot Weapon
       0: Bots buy weapons randomly.
       1: Bots use UMP45.
       2: Bots use AK47.
       3: Bots use Scout.
       4: Bots use AWP.
  Aim lock for bots
       0: CS2's native bot behavior. It works in a consistant manner but is less powerful.
      1: CSS based aim lock: Bots always aim at players' heads. But this may conflict with CS2's native bot logic, causing bots to not react under certain circumstances.
      2: Behavior tree based aim lock: Hard mode.

Custom Maps

For custom maps you can insert these commands

pos_x pos_y pos_z ang_x ang_y ang_z The first 3 floating numbers are the position and the other 3 are the rotation.

pos_x pos_y pos_z ang_x ang_y ang_z is_crouching The rest lines describe how to place bots. The first 3 numbers is position, following 3 numbers of the rotation. The 7th value is either True of False indicating whether the bot is crouching.

python3 calculate_height.py [PATH TO YOUR FILE] The positions and facing rotations can be retrived from in-game get_pos command. But please notice that, the height values used in profiles should be the values returned by get_pos minus 65. I made a python script that does this calculation for you. You can stack the strings retured by get_pos and put them in a txt file, and pass the file to the python script as described below and the script will automatically print out the formatted bot positions.

Development

TODO (From DEV PAGE):

  1. Create prefire profiles for all maps.
  2. Apply behavior tree to improve bot AI logic.
  3. Improve localization support (The supporting framework is done. Submitting translations is warmly welcomed.).
  4. Reorganize the files and code structure. Try to put code into submodules to improve readability.
  5. Reroute separate logs into one gathered place for better debug experience.



Source: https://github.com/lengran/OpenPrefirePrac
Download: https://github.com/lengran/OpenPrefirePrac/releases
CS2 Server: https://www.ckras.com/

(PreFire needs CounterStrikeSharp)