-Wed Jan 15 07:24:54 CET 2020
+Fri Mar 6 07:24:27 CET 2020
+++ /dev/null
-// This config file is for overkill weapons that were nerfed to have the same
-// stats as vanilla weapons, secondary attack uses stats of vanilla blaster.
-// Secondary is actually inconsistent, see https://gitlab.com/xonotic/xonotic-data.pk3dir/issues/2258
-
-// {{{ Overkill Shotgun
-set g_balance_okshotgun_primary_ammo 1
-set g_balance_okshotgun_primary_animtime 0.2
-set g_balance_okshotgun_primary_bot_range 512
-set g_balance_okshotgun_primary_bullets 12
-set g_balance_okshotgun_primary_damage 4
-set g_balance_okshotgun_primary_force 15
-set g_balance_okshotgun_primary_refire 0.75
-set g_balance_okshotgun_primary_solidpenetration 3.8
-set g_balance_okshotgun_primary_spread 0.12
-set g_balance_okshotgun_reload_ammo 0
-set g_balance_okshotgun_reload_time 2
-set g_balance_okshotgun_secondary_animtime 0.2
-set g_balance_okshotgun_secondary_damage 20
-set g_balance_okshotgun_secondary_delay 0
-set g_balance_okshotgun_secondary_edgedamage 10
-set g_balance_okshotgun_secondary_force 300
-set g_balance_okshotgun_secondary_force_zscale 1
-set g_balance_okshotgun_secondary_lifetime 5
-set g_balance_okshotgun_secondary_radius 60
-set g_balance_okshotgun_secondary_refire 0.7
-set g_balance_okshotgun_secondary_refire_type 0
-set g_balance_okshotgun_secondary_shotangle 0
-set g_balance_okshotgun_secondary_speed 6000
-set g_balance_okshotgun_secondary_spread 0
-set g_balance_okshotgun_switchdelay_drop 0.2
-set g_balance_okshotgun_switchdelay_raise 0.2
-set g_balance_okshotgun_weaponreplace ""
-set g_balance_okshotgun_weaponstart 0
-set g_balance_okshotgun_weaponstartoverride -1
-set g_balance_okshotgun_weaponthrowable 1
-// }}}
-// {{{ Overkill Machine Gun
-set g_balance_okmachinegun_primary_ammo 1
-set g_balance_okmachinegun_primary_damage 10
-set g_balance_okmachinegun_primary_force 3
-set g_balance_okmachinegun_primary_refire 0.1
-set g_balance_okmachinegun_primary_solidpenetration 13.1
-set g_balance_okmachinegun_primary_spread_add 0.012
-set g_balance_okmachinegun_primary_spread_max 0.05
-set g_balance_okmachinegun_primary_spread_min 0.02
-set g_balance_okmachinegun_reload_ammo 60
-set g_balance_okmachinegun_reload_time 2
-set g_balance_okmachinegun_secondary_animtime 0.2
-set g_balance_okmachinegun_secondary_damage 20
-set g_balance_okmachinegun_secondary_delay 0
-set g_balance_okmachinegun_secondary_edgedamage 10
-set g_balance_okmachinegun_secondary_force 300
-set g_balance_okmachinegun_secondary_force_zscale 1
-set g_balance_okmachinegun_secondary_lifetime 5
-set g_balance_okmachinegun_secondary_radius 60
-set g_balance_okmachinegun_secondary_refire 0.7
-set g_balance_okmachinegun_secondary_refire_type 0
-set g_balance_okmachinegun_secondary_shotangle 0
-set g_balance_okmachinegun_secondary_speed 6000
-set g_balance_okmachinegun_secondary_spread 0
-set g_balance_okmachinegun_switchdelay_drop 0.2
-set g_balance_okmachinegun_switchdelay_raise 0.2
-set g_balance_okmachinegun_weaponreplace ""
-set g_balance_okmachinegun_weaponstart 0
-set g_balance_okmachinegun_weaponstartoverride -1
-set g_balance_okmachinegun_weaponthrowable 1
-// }}}
-// {{{ Overkill Nex
-set g_balance_oknex_charge 1
-set g_balance_oknex_charge_animlimit 0.5
-set g_balance_oknex_charge_limit 1
-set g_balance_oknex_charge_maxspeed 800
-set g_balance_oknex_charge_mindmg 40
-set g_balance_oknex_charge_minspeed 400
-set g_balance_oknex_charge_rate 0.6
-set g_balance_oknex_charge_rot_pause 0
-set g_balance_oknex_charge_rot_rate 0
-set g_balance_oknex_charge_shot_multiplier 0
-set g_balance_oknex_charge_start 0.5
-set g_balance_oknex_charge_velocity_rate 0
-set g_balance_oknex_primary_ammo 6
-set g_balance_oknex_primary_animtime 0.4
-set g_balance_oknex_primary_damage 80
-set g_balance_oknex_primary_damagefalloff_forcehalflife 0
-set g_balance_oknex_primary_damagefalloff_halflife 0
-set g_balance_oknex_primary_damagefalloff_maxdist 0
-set g_balance_oknex_primary_damagefalloff_mindist 0
-set g_balance_oknex_primary_force 400
-set g_balance_oknex_primary_refire 1.5
-set g_balance_oknex_reload_ammo 0
-set g_balance_oknex_reload_time 2
-set g_balance_oknex_secondary 0
-set g_balance_oknex_secondary_ammo 2
-set g_balance_oknex_secondary_animtime 0
-set g_balance_oknex_secondary_chargepool 0
-set g_balance_oknex_secondary_chargepool_pause_regen 1
-set g_balance_oknex_secondary_chargepool_regen 0.15
-set g_balance_oknex_secondary_damage 0
-set g_balance_oknex_secondary_damagefalloff_forcehalflife 0
-set g_balance_oknex_secondary_damagefalloff_halflife 0
-set g_balance_oknex_secondary_damagefalloff_maxdist 0
-set g_balance_oknex_secondary_damagefalloff_mindist 0
-set g_balance_oknex_secondary_force 0
-set g_balance_oknex_secondary_force_zscale 1
-set g_balance_oknex_secondary_refire 0
-set g_balance_oknex_secondary_refire_type 0
-set g_balance_oknex_secondary_delay 0
-set g_balance_oknex_secondary_edgedamage 10
-set g_balance_oknex_secondary_lifetime 5
-set g_balance_oknex_secondary_radius 60
-set g_balance_oknex_secondary_shotangle 0
-set g_balance_oknex_secondary_speed 6000
-set g_balance_oknex_secondary_spread 0
-set g_balance_oknex_switchdelay_drop 0.2
-set g_balance_oknex_switchdelay_raise 0.2
-set g_balance_oknex_weaponreplace ""
-set g_balance_oknex_weaponstart 0
-set g_balance_oknex_weaponstartoverride -1
-set g_balance_oknex_weaponthrowable 1
-// }}}
}
check_files "balance-xonotic.cfg" "balance-*.cfg" "/^seta? g_/"
+check_files "bal-wep-xonotic.cfg" "bal-wep-*.cfg" "/^seta? g_/"
check_files "_hud_descriptions.cfg" "hud_*.cfg" "/^seta? hud_/"
if $errord; then
// =================================
set sv_vote_call 1 "Allow users to call a vote for the commands in sv_vote_commands"
set sv_vote_change 1 "Allow voters to change their mind after already voting"
-set sv_vote_commands "restart fraglimit chmap gotomap nextmap endmatch reducematchtime extendmatchtime allready kick cointoss movetoauto shuffleteams bots nobots" "these commands can be voted by players or used directly by masters (vdo) in addition to sv_vote_master_commands"
+set sv_vote_commands "restart fraglimit gotomap nextmap endmatch reducematchtime extendmatchtime allready kick cointoss movetoauto shuffleteams bots nobots" "these commands can be voted by players or used directly by masters (vdo) in addition to sv_vote_master_commands"
set sv_vote_only_commands ""
set sv_vote_limit 160 "Maximum allowed length of a vote command"
set sv_vote_master_commands "movetored movetoblue movetoyellow movetopink movetospec" "Extra commands which vote masters can execute by themselves, along with the normal sv_vote_commands." // maybe add kickban here (but then sv_vote_master 0)
#
# Translators:
# nad le <nadavlevi726@gmail.com>, 2018
+# Roi Asher Gerszkoviez <gerszkoviez@gmail.com>, 2020
# Tal Leibman <leibman2@gmail.com>, 2019
msgid ""
msgstr ""
"Project-Id-Version: Xonotic\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-19 07:23+0200\n"
-"PO-Revision-Date: 2019-05-19 05:23+0000\n"
-"Last-Translator: divVerent <divVerent@xonotic.org>\n"
+"PO-Revision-Date: 2020-03-05 22:01+0000\n"
+"Last-Translator: Roi Asher Gerszkoviez <gerszkoviez@gmail.com>\n"
"Language-Team: Hebrew (http://www.transifex.com/team-xonotic/xonotic/"
"language/he/)\n"
"Language: he\n"
#: qcsrc/client/hud/panel/centerprint.qc:144
#, c-format
msgid "Message at time %s"
-msgstr ""
+msgstr "הודעה בזמן %s"
#: qcsrc/client/hud/panel/centerprint.qc:149
msgid "Generic message"
-msgstr ""
+msgstr "הודעה גנרית"
#: qcsrc/client/hud/panel/chat.qc:84
msgid "^3Player^7: This is the chat area."
-msgstr ""
+msgstr "^3שחקן^7: זהו אזור הצ'אט."
#: qcsrc/client/hud/panel/engineinfo.qc:72
#, c-format
msgid "FPS: %.*f"
-msgstr ""
+msgstr "FPS: %.*f"
#: qcsrc/client/hud/panel/infomessages.qc:89
msgid "^1Observing"
-msgstr ""
+msgstr "^1משקיף"
#: qcsrc/client/hud/panel/infomessages.qc:91
#, c-format
#: qcsrc/client/hud/panel/infomessages.qc:102
#, c-format
msgid "^1Press ^3%s^1 to spectate"
-msgstr ""
+msgstr "^1לחץ ^3%s^1 כדי להשקיף"
#: qcsrc/client/hud/panel/infomessages.qc:102
#: qcsrc/menu/xonotic/keybinder.qc:47
#: qcsrc/client/hud/panel/infomessages.qc:104
#: qcsrc/client/hud/panel/infomessages.qc:108
msgid "next weapon"
-msgstr "נשק הבא"
+msgstr "×\94× ×©×§ ×\94×\91×\90"
#: qcsrc/client/hud/panel/infomessages.qc:104
#: qcsrc/client/hud/panel/infomessages.qc:108
msgid "previous weapon"
-msgstr "× ×©×§ קודם"
+msgstr "×\94× ×©×§ ×\94קודם"
#: qcsrc/client/hud/panel/infomessages.qc:108
#, c-format
#: qcsrc/client/hud/panel/infomessages.qc:110
#: qcsrc/common/vehicles/cl_vehicles.qc:190
msgid "drop weapon"
-msgstr ""
+msgstr "זרוק נשק"
#: qcsrc/client/hud/panel/infomessages.qc:110
#: qcsrc/menu/xonotic/keybinder.qc:48
#: qcsrc/client/hud/panel/score.qc:63
#, c-format
msgid "Player %d"
-msgstr ""
+msgstr "שחקן %d"
#: qcsrc/client/hud/panel/quickmenu.qc:591
#: qcsrc/client/hud/panel/quickmenu.qc:593
#, c-format
msgid "Submenu%d"
-msgstr ""
+msgstr "תת-תפריט%d"
#: qcsrc/client/hud/panel/quickmenu.qc:598
#, c-format
msgid "Command%d"
-msgstr ""
+msgstr "פקודה%d"
#: qcsrc/client/hud/panel/quickmenu.qc:624
msgid "Continue..."
#: qcsrc/client/hud/panel/quickmenu.qc:781
#: qcsrc/client/hud/panel/quickmenu.qc:788
msgid "Chat"
-msgstr ""
+msgstr "צ'אט"
#: qcsrc/client/hud/panel/quickmenu.qc:782
msgid "QMCMD^Send public message to"
-msgstr ""
+msgstr "QMCMD^שלח הודעה פומבית אל"
#: qcsrc/client/hud/panel/quickmenu.qc:783
msgid "QMCMD^:-) / nice one"
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:52
msgid "m/s"
-msgstr ""
+msgstr "מ\"ש"
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:53
msgid "km/h"
-msgstr ""
+msgstr "קמ\"ש"
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:54
msgid "mph"
-msgstr ""
+msgstr "מייל לשעה"
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:55
msgid "knots"
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:60
msgid "Top speed"
-msgstr ""
+msgstr "מהירות מקסימלית"
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:66
msgid "Acceleration:"
-msgstr ""
+msgstr "האצה:"
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:67
msgid "Include vertical acceleration"
#: qcsrc/menu/xonotic/dialog_hudpanel_radar.qc:44
msgid "Zoom mode:"
-msgstr ""
+msgstr "מצב זום:"
#: qcsrc/menu/xonotic/dialog_hudpanel_radar.qc:46
msgid "Zoomed in"
-msgstr ""
+msgstr "זום אין"
#: qcsrc/menu/xonotic/dialog_hudpanel_radar.qc:47
msgid "Zoomed out"
-msgstr ""
+msgstr "זום אאוט"
#: qcsrc/menu/xonotic/dialog_hudpanel_radar.qc:48
msgid "Always zoomed"
-msgstr ""
+msgstr "תמיד בזום"
#: qcsrc/menu/xonotic/dialog_hudpanel_radar.qc:49
msgid "Never zoomed"
-msgstr ""
+msgstr "לעולם לא בזום"
#: qcsrc/menu/xonotic/dialog_hudpanel_radar.qh:6
msgid "Radar Panel"
#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.qc:34
msgid "Alpha"
-msgstr ""
+msgstr "אלפא"
#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.qc:35
msgid "Slide"
#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.qc:66
msgid "Show Accuracy"
-msgstr ""
+msgstr "הצג דיוק"
#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.qc:67
msgid "Show Ammo"
-msgstr ""
+msgstr "הצג תחמושת"
#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.qc:70
msgid "Ammo bar alpha:"
-msgstr ""
+msgstr "אלפא של סרגל התחמושת:"
#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.qc:76
msgid "Ammo bar color:"
-msgstr ""
+msgstr "צבע סרגל התחמושת:"
#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.qh:6
msgid "Weapons Panel"
-msgstr ""
+msgstr "פאנל הנשקים"
#: qcsrc/menu/xonotic/dialog_hudsetup_exit.qc:19
msgid "HUD skins"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:40
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:64
msgid "Unlimited"
-msgstr "×\9c×\90 מוגבל"
+msgstr "×\91×\9cת×\99 מוגבל"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:74
msgid "Gametype"
#: qcsrc/menu/xonotic/dialog_settings_input.qc:94
msgid "Pressing \"enter console\" key also closes it"
-msgstr ""
+msgstr "כפתור \"כניסה לקונסול\" גם סוגר אותו"
#: qcsrc/menu/xonotic/dialog_settings_input.qc:95
msgid "Allow the console toggling bind to also close the console"
-msgstr ""
+msgstr "אפשר לכפתור שפותח את הקונסול גם לסגור אותו"
#: qcsrc/menu/xonotic/dialog_settings_input.qc:97
msgid "Automatically repeat jumping if holding jump"
#: qcsrc/menu/xonotic/dialog_settings_input.qc:100
msgid "Jetpack on jump:"
-msgstr ""
+msgstr "תיק סילון בקפיצה:"
#: qcsrc/menu/xonotic/dialog_settings_input.qc:102
msgid "JPJUMP^Disabled"
-msgstr ""
+msgstr "JPJUMP^מבוטל"
#: qcsrc/menu/xonotic/dialog_settings_input.qc:103
msgid "Air only"
-msgstr ""
+msgstr "אוויר בלבד"
#: qcsrc/menu/xonotic/dialog_settings_input.qc:104
msgid "JPJUMP^All"
-msgstr ""
+msgstr "JPJUMP^הכל"
#: qcsrc/menu/xonotic/dialog_settings_input.qc:110
#: qcsrc/menu/xonotic/dialog_settings_input.qc:115
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:29
msgid "Client UDP port:"
-msgstr ""
+msgstr "פתחת UDP של לקוח:"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:31
msgid "Force client to use chosen port unless it is set to 0"
-msgstr ""
+msgstr "הכרח את הלקוח להשתמש בפורט הנבחר, אלא אם הערך הוא 0"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:34
msgid "Bandwidth:"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:37
msgid "56k"
-msgstr ""
+msgstr "56k"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:38
msgid "ISDN"
-msgstr ""
+msgstr "ISDN"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:39
msgid "Slow ADSL"
-msgstr ""
+msgstr "ADSL איטי"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:40
msgid "Fast ADSL"
-msgstr ""
+msgstr "ADSL מהיר"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:41
msgid "Broadband"
-msgstr ""
+msgstr "פס רחב"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:44
msgid "Input packets/s:"
-msgstr ""
+msgstr "פאקטות קלט/שנייה:"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:46
msgid "How many input packets to send to the server each second"
-msgstr ""
+msgstr "כמה פאקטות קלט לשלוח לשרת בכל שנייה"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:48
msgid "Server queries/s:"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:73
msgid "Show netgraph"
-msgstr ""
+msgstr "הצג גרף רשת"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:74
msgid "Show a graph of packet sizes and other information"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:76
msgid "Client-side movement prediction"
-msgstr ""
+msgstr "חיזוי תנועה בצד-לקוח"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:78
msgid "Movement error compensation"
-msgstr ""
+msgstr "פיצוי על שגיאות תנועה"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:82
msgid "Use encryption (AES) when available"
-msgstr ""
+msgstr "השתמש בהצפנה (AES) כשזה אפשרי"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:85
msgid "Framerate"
-msgstr ""
+msgstr "קצב פריימים"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:87
msgid "Maximum:"
-msgstr ""
+msgstr "מקסימום:"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:99
msgid "MAXFPS^Unlimited"
-msgstr ""
+msgstr "MAXFPS^בלתי מוגבל"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:102
msgid "Target:"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:104
msgid "TRGT^Disabled"
-msgstr ""
+msgstr "TRGT^מבוטל"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:116
msgid "Idle limit:"
-msgstr ""
+msgstr "מגבלה בזמן idle:"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:122
msgid "IDLFPS^Unlimited"
-msgstr ""
+msgstr "IDLFPS^בלתי מוגבל"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:126
msgid "Save processing time for other apps"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:157
#: qcsrc/menu/xonotic/dialog_settings_misc_reset.qh:6
msgid "Factory reset"
-msgstr ""
+msgstr "איפוס להגדרות מקוריות"
#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.qc:31
msgid "Cvar filter:"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:121
msgid "Brightness of black"
-msgstr ""
+msgstr "בהירות הצבע השחור:"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:123
msgid "Contrast:"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:125
msgid "Brightness of white"
-msgstr ""
+msgstr "בהירות הצבע הלבן:"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:127
msgid "Gamma:"
-msgstr ""
+msgstr "גמא:"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:130
msgid ""
#: qcsrc/menu/xonotic/dialog_settings_video.qc:155
msgid "Wait for GPU to finish each frame"
-msgstr ""
+msgstr "חכה עד שהמעבד הגרפי יסיים כל פריים"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:156
msgid ""
"Make the CPU wait for the GPU to finish each frame, can help with some "
"strange input or video lag on some machines"
msgstr ""
+"גרום למעבד להמתין שהמעבד הגרפי יסיים כל פריים. זה יכול לעזור במקרים של לאגים "
+"מוזרים בקלט או בוידאו במחשבים מסויימים."
#: qcsrc/menu/xonotic/dialog_settings_video.qc:158
msgid "Use OpenGL 2.0 shaders (GLSL)"
#: qcsrc/menu/xonotic/dialog_singleplayer.qc:110
msgid "Instant action! (random map with bots)"
-msgstr ""
+msgstr "פעולה מיידית! (מפה אקראית עם בוטים)"
#: qcsrc/menu/xonotic/dialog_singleplayer.qc:117
msgid "???"
-msgstr ""
+msgstr "???"
#: qcsrc/menu/xonotic/dialog_singleplayer.qc:130
msgid "Campaign Difficulty:"
-msgstr ""
+msgstr "דרגת קושי של הקמפיין:"
#: qcsrc/menu/xonotic/dialog_singleplayer.qc:131
msgid "CSKL^Easy"
-msgstr ""
+msgstr "CSKL^קל"
#: qcsrc/menu/xonotic/dialog_singleplayer.qc:132
msgid "CSKL^Medium"
-msgstr ""
+msgstr "CSKL^בינוני"
#: qcsrc/menu/xonotic/dialog_singleplayer.qc:133
msgid "CSKL^Hard"
-msgstr ""
+msgstr "CSKL^קשה"
#: qcsrc/menu/xonotic/dialog_singleplayer.qc:135
msgid "Start Singleplayer!"
-msgstr ""
+msgstr "התחל במצב שחקן יחיד!"
#: qcsrc/menu/xonotic/dialog_singleplayer.qh:6
msgid "Singleplayer"
-msgstr ""
+msgstr "שחקן יחיד"
#: qcsrc/menu/xonotic/dialog_singleplayer.qh:7
msgid "Play the singleplayer campaign or instant action matches against bots"
-msgstr ""
+msgstr "שחק בקמפיין לשחקן יחיד או במשחקי פעולה מיידית נגד בוטים"
#: qcsrc/menu/xonotic/dialog_singleplayer_winner.qh:7
msgid "Winner"
#: qcsrc/menu/xonotic/dialog_teamselect.qc:32
msgid "join 'best' team (auto-select)"
-msgstr ""
+msgstr "הצטרף לקבוצה הטובה ביותר (בחירה אוטומטית)"
#: qcsrc/menu/xonotic/dialog_teamselect.qc:33
msgid "Autoselect team (recommended)"
-msgstr ""
+msgstr "בחר קבוצה אוטומטית (מומלץ)"
#: qcsrc/menu/xonotic/dialog_teamselect.qc:37
msgid "red"
#: qcsrc/menu/xonotic/dialog_uid2name.qc:10
msgid "Allow player statistics to use your nickname?"
-msgstr ""
+msgstr "האם להרשות לסטטיסטיקות השחקן להשתמש בכינוי שלך?"
#: qcsrc/menu/xonotic/dialog_uid2name.qc:12
msgid "Answering \"No\" you will appear as \"Anonymous player\""
-msgstr ""
+msgstr "אם תענה \"לא\" אתה תופיע בתור \"שחקן אנונימי\""
#: qcsrc/menu/xonotic/gametypelist.qc:87
msgid "teamplay"
#: qcsrc/menu/xonotic/keybinder.qc:43
msgid "jetpack"
-msgstr ""
+msgstr "תיק סילון"
#: qcsrc/menu/xonotic/keybinder.qc:46
msgid "Attacking"
#: qcsrc/menu/xonotic/keybinder.qc:52
msgid "WEAPON^previous"
-msgstr ""
+msgstr "WEAPON^הקודם"
#: qcsrc/menu/xonotic/keybinder.qc:53
msgid "WEAPON^next"
-msgstr ""
+msgstr "WEAPON^הבא"
#: qcsrc/menu/xonotic/keybinder.qc:54
msgid "WEAPON^previously used"
-msgstr ""
+msgstr "WEAPON^האחרון שהיה בשימוש"
#: qcsrc/menu/xonotic/keybinder.qc:55
msgid "WEAPON^best"
-msgstr ""
+msgstr "WEAPON^הטוב ביותר"
#: qcsrc/menu/xonotic/keybinder.qc:56
msgid "reload"
#: qcsrc/menu/xonotic/mainwindow.qc:65 qcsrc/menu/xonotic/mainwindow.qc:68
msgid "Do not press this button again!"
-msgstr ""
+msgstr "אל תלחץ על כפתור זה שוב!"
#: qcsrc/menu/xonotic/maplist.qc:288
msgid ""
"Huh? Can't play this (m is NULL). Refiltering so this won't happen again."
-msgstr ""
+msgstr "מה? אי אפשר לשחק בזה (m הוא NULL). מסנן מחדש כדי שזה לא יקרה שוב."
#: qcsrc/menu/xonotic/maplist.qc:296
#, c-format
msgid "%s's Xonotic Server"
-msgstr ""
+msgstr "שרת ה-Xonotic של %s"
#: qcsrc/menu/xonotic/maplist.qc:301
msgid ""
"Huh? Can't play this (invalid game type). Refiltering so this won't happen "
"again."
-msgstr ""
+msgstr "מה? אי אפשר לשחק בזה (סוג המשחק שגוי). מסנן מחדש כדי שזה לא יקרה שוב."
#: qcsrc/menu/xonotic/playerlist.qc:102 qcsrc/menu/xonotic/playerlist.qc:112
msgid "spectator"
-msgstr ""
+msgstr "צופה"
#: qcsrc/menu/xonotic/playermodel.qc:161
msgid "<no model found>"
-msgstr ""
+msgstr "<no model found>"
#: qcsrc/menu/xonotic/serverlist.qc:267
msgid "Favorite"
-msgstr ""
+msgstr "מועדף"
#: qcsrc/menu/xonotic/serverlist.qc:268
msgid ""
"Bookmark the currently highlighted server so that it's faster to find in the "
"future"
-msgstr ""
+msgstr "הוסף סימניה עבור השרת המודגש כרגע כדי שיהיה קל למצוא אותו שוב בעתיד"
#: qcsrc/menu/xonotic/serverlist.qc:747
msgid "Ping"
#: qcsrc/menu/xonotic/serverlist.qc:748
msgid "Hostname"
-msgstr ""
+msgstr "שם השרת"
#: qcsrc/menu/xonotic/serverlist.qc:749
msgid "Map"
#: qcsrc/menu/xonotic/serverlist.qc:1043
#, c-format
msgid "AES level %d"
-msgstr ""
+msgstr "רמת AES %d"
#: qcsrc/menu/xonotic/serverlist.qc:1043
msgid "ENC^none"
#: qcsrc/menu/xonotic/serverlist.qc:1043
msgid "encryption:"
-msgstr ""
+msgstr "הצפנה:"
#: qcsrc/menu/xonotic/serverlist.qc:1044
#, c-format
msgid "mod: %s"
-msgstr ""
+msgstr "מוד: %s"
#: qcsrc/menu/xonotic/serverlist.qc:1046
#, c-format
msgid "modified settings"
-msgstr ""
+msgstr "הגדרות שנערכו"
#: qcsrc/menu/xonotic/serverlist.qc:1046
#, c-format
msgid "official settings"
-msgstr ""
+msgstr "הגדרות רשמיות"
#: qcsrc/menu/xonotic/serverlist.qc:1048
msgid "stats disabled"
-msgstr ""
+msgstr "סטטיסטיקות מכובות"
#: qcsrc/menu/xonotic/serverlist.qc:1048
msgid "stats enabled"
-msgstr ""
+msgstr "סטטיסטיקות מופעלות"
#: qcsrc/menu/xonotic/serverlist.qh:152
msgid "SLCAT^Favorites"
"Change the sharpness of the textures. Lowering it will effectively reduce "
"texture memory usage, but make the textures appear very blurry."
msgstr ""
+"שנה את החדות של טקסטורות. הנמכה תגרום לצמצום יעיל של זיכרון שמשומש על ידי "
+"טקסטורות, אבל יגרום לטקסטורות להראות מאוד מטושטשות."
#: qcsrc/menu/xonotic/slider_resolution.qc:115
msgid "Screen resolution"
#: qcsrc/menu/xonotic/statslist.qc:110
msgid "Time played:"
-msgstr ""
+msgstr "זמן ששוחק:"
#: qcsrc/menu/xonotic/statslist.qc:117 qcsrc/menu/xonotic/statslist.qc:230
msgid "Favorite map:"
#: qcsrc/menu/xonotic/statslist.qc:244
#, c-format
msgid "Matches:"
-msgstr ""
+msgstr "משחקים:"
#: qcsrc/menu/xonotic/statslist.qc:154
#, c-format
#: qcsrc/menu/xonotic/statslist.qc:166
#, c-format
msgid "Kills/Deaths:"
-msgstr ""
+msgstr "הריגות/מיתות:"
#: qcsrc/menu/xonotic/statslist.qc:172
#, c-format
#: qcsrc/menu/xonotic/statslist.qc:207
msgid "ELO:"
-msgstr ""
+msgstr "דירוג ELO:"
#: qcsrc/menu/xonotic/statslist.qc:214
msgid "Rank:"
#: qcsrc/menu/xonotic/util.qc:417
msgid "Update can be downloaded at:"
-msgstr ""
+msgstr "ניתן להוריד עדכון ב:"
#: qcsrc/menu/xonotic/util.qc:525
msgid "Autogenerating mapinfo for newly added maps..."
#: qcsrc/menu/xonotic/util.qc:574
#, c-format
msgid "Update to %s now!"
-msgstr ""
+msgstr "עדכן לגרסה %s עכשיו!"
#: qcsrc/menu/xonotic/util.qc:658
msgid ""
# Jakub P. <pedziszewski@gmail.com>, 2015
# Jakub P. <pedziszewski@gmail.com>, 2015
# John Smith <myrangd@gmail.com>, 2016
+# karol kosek <transifex@krkk.ct8.pl>, 2020
+# karol kosek <transifex@krkk.ct8.pl>, 2020
+# karol kosek <transifex@krkk.ct8.pl>, 2020
+# karol kosek <transifex@krkk.ct8.pl>, 2020
# Kriss Chr <kriss7475@gmail.com>, 2017
# Piotr Kozica <koza91@gmail.com>, 2016
# Rafał Szymański <okavasly@gmail.com>, 2017
"Project-Id-Version: Xonotic\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-19 07:23+0200\n"
-"PO-Revision-Date: 2019-05-19 05:23+0000\n"
-"Last-Translator: divVerent <divVerent@xonotic.org>\n"
+"PO-Revision-Date: 2020-02-08 12:09+0000\n"
+"Last-Translator: karol kosek <transifex@krkk.ct8.pl>\n"
"Language-Team: Polish (http://www.transifex.com/team-xonotic/xonotic/"
"language/pl/)\n"
"Language: pl\n"
#: qcsrc/client/hud/hud_config.qc:243
#, c-format
msgid "^2Successfully exported to %s! (Note: It's saved in data/data/)"
-msgstr ""
+msgstr "^2Wyeksportowano do %s! (Uwaga: Zapisano w data/data/)"
#: qcsrc/client/hud/hud_config.qc:247
#, c-format
msgid "^1Couldn't write to %s"
-msgstr ""
+msgstr "^1Nie można zapisać do %s"
#: qcsrc/client/hud/panel/centerprint.qc:140
#, c-format
#: qcsrc/client/hud/panel/centerprint.qc:149
msgid "Generic message"
-msgstr ""
+msgstr "Ogólna wiadomość"
#: qcsrc/client/hud/panel/chat.qc:84
msgid "^3Player^7: This is the chat area."
#: qcsrc/client/hud/panel/quickmenu.qc:781
#: qcsrc/client/hud/panel/quickmenu.qc:788
msgid "Chat"
-msgstr ""
+msgstr "Czat"
#: qcsrc/client/hud/panel/quickmenu.qc:782
msgid "QMCMD^Send public message to"
#: qcsrc/client/hud/panel/scoreboard.qc:91
msgid "Number of deaths"
-msgstr ""
+msgstr "Liczba zgonów"
#: qcsrc/client/hud/panel/scoreboard.qc:91
msgid "SCO^deaths"
#: qcsrc/client/hud/panel/scoreboard.qc:95
msgid "Number of flag drops"
-msgstr ""
+msgstr "Liczba upuszczeń flagi"
#: qcsrc/client/hud/panel/scoreboard.qc:95
msgid "SCO^drops"
#: qcsrc/client/hud/panel/scoreboard.qc:100
msgid "FPS"
-msgstr ""
+msgstr "FPS"
#: qcsrc/client/hud/panel/scoreboard.qc:100
msgid "SCO^fps"
-msgstr ""
+msgstr "fps"
#: qcsrc/client/hud/panel/scoreboard.qc:101
msgid "Number of kills minus suicides"
#: qcsrc/client/hud/panel/scoreboard.qc:111
#: qcsrc/client/hud/panel/scoreboard.qc:112
msgid "Player name"
-msgstr ""
+msgstr "Nazwa gracza"
#: qcsrc/client/hud/panel/scoreboard.qc:111
msgid "SCO^name"
#: qcsrc/client/hud/panel/scoreboard.qc:116
msgid "Packet loss"
-msgstr ""
+msgstr "Utrata pakietu"
#: qcsrc/client/hud/panel/scoreboard.qc:116
msgid "SCO^pl"
#: qcsrc/client/hud/panel/scoreboard.qc:123
msgid "Number of suicides"
-msgstr ""
+msgstr "Liczba samobójstw"
#: qcsrc/client/hud/panel/scoreboard.qc:123
msgid "SCO^suicides"
#: qcsrc/client/hud/panel/scoreboard.qc:128
msgid "SCO^time"
-msgstr ""
+msgstr "czas"
#: qcsrc/client/hud/panel/scoreboard.qc:128
msgid "Total time raced (Race/CTS)"
#: qcsrc/client/hud/panel/scoreboard.qc:313
msgid "Usage:"
-msgstr ""
+msgstr "Użycie:"
#: qcsrc/client/hud/panel/scoreboard.qc:315
msgid "^2scoreboard_columns_set ^3field1 field2 ..."
-msgstr ""
+msgstr "^2scoreboard_columns_set ^3pole1 pole2 …"
#: qcsrc/client/hud/panel/scoreboard.qc:316
msgid ""
#: qcsrc/client/hud/panel/scoreboard.qc:320
msgid "The following field names are recognized (case insensitive):"
msgstr ""
+"Następujące nazwy pól są rozpoznawane (wielkość liter nie ma znaczenia)"
#: qcsrc/client/hud/panel/scoreboard.qc:326
msgid ""
#: qcsrc/client/hud/panel/scoreboard.qc:336
msgid "Example: scoreboard_columns_set name ping pl | +ctf/field3 -dm/field4"
msgstr ""
+"Na przykład: scoreboard_columns_set name ping pl | +ctf/field3 -dm/field4"
#: qcsrc/client/hud/panel/scoreboard.qc:337
msgid ""
#: qcsrc/client/hud/panel/scoreboard.qc:1613
#, c-format
msgid "^3%1.0f minutes"
-msgstr ""
+msgstr "^3%1.0f minut"
#: qcsrc/client/hud/panel/scoreboard.qc:1622
#: qcsrc/client/hud/panel/scoreboard.qc:1629
#, c-format
msgid "^5%s %s"
-msgstr ""
+msgstr "^5%s %s"
#: qcsrc/client/hud/panel/scoreboard.qc:1623
#: qcsrc/client/hud/panel/scoreboard.qc:1630
#: qcsrc/client/hud/panel/timer.qc:67
msgid "WARMUP"
-msgstr ""
+msgstr "ROZGRZEWKA"
#: qcsrc/client/hud/panel/vote.qc:27
msgid "^1You must answer before entering hud configure mode"
#: qcsrc/client/mapvoting.qc:515
msgid "^1Error:^7 Couldn't find pak index."
-msgstr ""
+msgstr "^1Błąd:^7 Nie można znaleźć indeksu pak."
#: qcsrc/client/mapvoting.qc:524
msgid "Requesting preview..."
-msgstr ""
+msgstr "Oczekiwanie podglądu…"
#: qcsrc/client/miscfunctions.qc:111
msgid "Trying to remove a team which is not in the teamlist!"
#: qcsrc/common/mapinfo.qh:72 qcsrc/common/mapinfo.qh:333
#: qcsrc/common/mapinfo.qh:528
msgid "The amount of frags needed before the match will end"
-msgstr ""
+msgstr "Ilość zabójstw potrzebnych przed końcem meczu"
#: qcsrc/common/mapinfo.qh:114
msgid "Deathmatch"
#: qcsrc/common/mapinfo.qh:114
msgid "Score as many frags as you can"
-msgstr "Zdobądź jak najwięcej frag"
+msgstr "Zdobądź jak najwięcej zabójstw"
#: qcsrc/common/mapinfo.qh:127
msgid "Last Man Standing"
#: qcsrc/common/minigames/minigame/ttt.qc:2
msgid "Tic Tac Toe"
-msgstr ""
+msgstr "Kółko i krzyżyk"
#: qcsrc/common/minigames/minigame/ttt.qc:665
msgid "Single Player"
#: qcsrc/common/notifications/all.inc:336
#, c-format
msgid "^BG%s^K1 ran into a turret%s%s"
-msgstr ""
+msgstr "^BG%s^K1 wbiegł w wieżyczkę%s%s"
#: qcsrc/common/notifications/all.inc:337
#, c-format
#: qcsrc/common/notifications/all.inc:587
msgid "^BGEnemies can now see you on radar!"
-msgstr ""
+msgstr "^BGPrzeciwnicy mogą teraz Cię widzieć na radarze!"
#: qcsrc/common/notifications/all.inc:588
msgid "^BGYou returned the ^TC^TT^BG flag!"
#: qcsrc/common/notifications/all.inc:589
msgid "^BGStalemate! Enemies can now see you on radar!"
-msgstr ""
+msgstr "^BGMartwy punkt! Przeciwnicy mogą teraz Cię widzieć na radarze!"
#: qcsrc/common/notifications/all.inc:590
msgid "^BGStalemate! Flag carriers can now be seen by enemies on radar!"
#: qcsrc/common/notifications/all.inc:788
#, c-format
msgid "^BGPress ^F2%s^BG to enter/exit the vehicle"
-msgstr ""
+msgstr "^BGWciśnij ^F2%s^BG aby wejść/wyjść z pojazdu"
#: qcsrc/common/notifications/all.inc:789
#, c-format
#: qcsrc/common/notifications/all.inc:790
#, c-format
msgid "^BGPress ^F2%s^BG to steal this vehicle"
-msgstr ""
+msgstr "^BGWciśnij ^F2%s^BG aby ukraść pojazd"
#: qcsrc/common/notifications/all.inc:791
msgid ""
#: qcsrc/menu/command/menu_cmd.qc:48
msgid "Usage: menu_cmd command..., where possible commands are:"
-msgstr ""
+msgstr "Użycie: menu_cmd polecenie…, gdzie dostępnymi poleceniami są:"
#: qcsrc/menu/command/menu_cmd.qc:49
msgid " sync - reloads all cvars on the current menu page"
#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.qc:33
msgid "EF^None"
-msgstr ""
+msgstr "EF^Brak"
#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.qc:34
msgid "Alpha"
#: qcsrc/menu/xonotic/dialog_hudsetup_exit.qc:124
msgid "Snap panels to grid"
-msgstr ""
+msgstr "Przyciągaj panele do siatki"
#: qcsrc/menu/xonotic/dialog_hudsetup_exit.qc:127
msgid "Grid size:"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:81
msgid "Timelimit in minutes that when hit, will end the match"
-msgstr ""
+msgstr "Limit czasowy w minutach, który po trafieniu zakończy mecz"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:82
#, c-format
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:67
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:217
msgid "Invincible Projectiles"
-msgstr "Niezniszczalne Pociski"
+msgstr "Niezniszczalne pociski"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:71
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:293
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:246
msgid "Custom weapons"
-msgstr ""
+msgstr "Niestandardowe bronie"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:268
msgid "Most weapons"
#: qcsrc/menu/xonotic/dialog_multiplayer_profile.qc:153
msgid "Select language..."
-msgstr ""
+msgstr "Wybierz język…"
#: qcsrc/menu/xonotic/dialog_multiplayer_profile.qc:169
msgid "Gender:"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:116
msgid "Idle limit:"
-msgstr "Brak limitu:"
+msgstr "Limit w trybie nieaktywnym:"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:122
msgid "IDLFPS^Unlimited"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:121
msgid "Brightness of black"
-msgstr ""
+msgstr "Jasność czerni"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:123
msgid "Contrast:"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:125
msgid "Brightness of white"
-msgstr ""
+msgstr "Jasność bieli"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:127
msgid "Gamma:"
#: qcsrc/menu/xonotic/statslist.qc:103
msgid "Last match:"
-msgstr ""
+msgstr "Ostatni mecz:"
#: qcsrc/menu/xonotic/statslist.qc:110
msgid "Time played:"
#: qcsrc/menu/xonotic/statslist.qc:117 qcsrc/menu/xonotic/statslist.qc:230
msgid "Favorite map:"
-msgstr ""
+msgstr "Ulubiona mapa:"
#: qcsrc/menu/xonotic/statslist.qc:149 qcsrc/menu/xonotic/statslist.qc:201
#: qcsrc/menu/xonotic/statslist.qc:244
#
# Translators:
# Ivan Paulos Tomé <greylica@gmail.com>, 2016
-# Jean Trindade Pereira <jean_trindade2@hotmail.com>, 2018-2019
+# Jean Trindade Pereira <jean_trindade2@hotmail.com>, 2015,2018-2020
# Mirio <opivy@hotmail.de>, 2017
# NotThatPrivate Yes <henriqueferreira2009@gmail.com>, 2015
# Ricardo Manuel da Cruz Coelho da Silva <ricardo.mccs@gmail.com>, 2015
"Project-Id-Version: Xonotic\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-19 07:23+0200\n"
-"PO-Revision-Date: 2019-07-07 02:23+0000\n"
+"PO-Revision-Date: 2020-01-27 18:03+0000\n"
"Last-Translator: Jean Trindade Pereira <jean_trindade2@hotmail.com>\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/team-xonotic/"
"xonotic/language/pt_BR/)\n"
it "Italian" "Italiano" 100%
hu "Hungarian" "Magyar" 48%
nl "Dutch" "Nederlands" 63%
-pl "Polish" "Polski" 72%
+pl "Polish" "Polski" 74%
pt "Portuguese" "Português" 86%
pt_BR "Portuguese (Brazil)" "Português (Brasil)" 100%
ro "Romanian" "Romana" 75%
seta notification_INFO_WEAPON_VAPORIZER_MURDER "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WEAPON_VORTEX_MURDER "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
-// MSG_CENTER notifications (count = 239):
+// MSG_CENTER notifications (count = 240):
seta notification_CENTER_ALONE "1" "0 = off, 1 = centerprint"
seta notification_CENTER_ASSAULT_ATTACKING "1" "0 = off, 1 = centerprint"
seta notification_CENTER_ASSAULT_DEFENDING "1" "0 = off, 1 = centerprint"
seta notification_CENTER_ASSAULT_OBJ_DESTROYED "1" "0 = off, 1 = centerprint"
+seta notification_CENTER_CAMPAIGN_MESSAGE "1" "0 = off, 1 = centerprint"
seta notification_CENTER_CAMPCHECK "1" "0 = off, 1 = centerprint"
seta notification_CENTER_COINTOSS "1" "0 = off, 1 = centerprint"
seta notification_CENTER_COUNTDOWN_BEGIN "1" "0 = off, 1 = centerprint"
seta notification_show_sprees_info_newline "1" "Show attacker spree information for MSG_INFO messages on a separate line than the death notification itself"
seta notification_show_sprees_info_specialonly "1" "Don't show attacker spree information in MSG_INFO messages if it isn't an achievement"
-// Notification counts (total = 846): MSG_ANNCE = 89, MSG_INFO = 334, MSG_CENTER = 239, MSG_MULTI = 156, MSG_CHOICE = 28
+// Notification counts (total = 847): MSG_ANNCE = 89, MSG_INFO = 334, MSG_CENTER = 240, MSG_MULTI = 156, MSG_CHOICE = 28
{
if(!autocvar__hud_configure)
{
- if(!autocvar_hud_panel_pressedkeys) return;
+ if(!autocvar_hud_panel_pressedkeys || spectatee_status < 0) return;
if(spectatee_status <= 0 && autocvar_hud_panel_pressedkeys < 2) return;
}
* 6: on (.solid != 0)
*/
bool autocvar_debugdraw;
-#endif
+#endif // GAMEQC
#ifdef CSQC
string autocvar_debugdraw_filter, autocvar_debugdraw_filterout;
});
});
}
-#endif
-
+#endif // CSQC
#ifdef SVQC
COMMON_COMMAND(debugdraw_sv, "Dump all server entities")
}
}
}
-#endif
-#endif
+#endif // SVQC
+#endif // ENABLE_DEBUGDRAW
GENERIC_COMMAND(bufstr_get, "Examine a string buffer object", false)
{
case CMD_REQUEST_COMMAND:
{
- LOG_INFO(WATERMARK);
+ LOG_INFO(PROGNAME, " version: ", WATERMARK);
return;
}
default:
#ifdef CSQC
void(float bufhandle, string pattern, string antipattern) buf_cvarlist = #517;
#endif
+
GENERIC_COMMAND(cvar_localchanges, "Print locally changed cvars", false)
{
switch (request)
#if ENABLE_DEBUGTRACE
REGISTER_STAT(TRACE_ENT, int)
+
#ifdef SVQC
bool autocvar_debugtrace;
stuffcmd(it, sprintf("prvm_edict server %d\n", i));
});
}
-#endif
+#endif // SVQC
+
#ifdef CSQC
entity TRACE_ENT;
void Trace_draw2d(entity this)
e.draw2d = Trace_draw2d;
IL_PUSH(g_drawables_2d, e);
}
-#endif
+#endif // CSQC
+
#endif
ATTRIB(DebugText3d, message, string); // the text (i wanted to use the .text field but then this whole macro-based-inheritance thing shat itself)
ATTRIB(DebugText3d, health, float); // text alignment (recycled field)
ATTRIB(DebugText3d, hit_time, float); // when it was created
- ATTRIB(DebugText3d, fade_rate, float); // how fast is should disappear
+ ATTRIB(DebugText3d, fade_rate, float); // how fast it should disappear
ATTRIB(DebugText3d, velocity, vector);
CONSTRUCTOR(DebugText3d, vector pos, string msg, float align, float fade_rate_, vector vel) {
bool autocvar_g_lms_regenerate;
// main functions
-float LMS_NewPlayerLives()
+int LMS_NewPlayerLives()
{
- float fl;
- fl = autocvar_fraglimit;
- if(fl == 0)
+ int fl = floor(autocvar_fraglimit);
+ if(fl == 0 || fl > 999)
fl = 999;
// first player has left the game for dying too much? Nobody else can get in.
return 0;
if(!autocvar_g_lms_join_anytime)
- if(lms_lowest_lives < fl - autocvar_g_lms_last_join)
+ if(lms_lowest_lives < fl - max(0, floor(autocvar_g_lms_last_join)))
return 0;
return bound(1, lms_lowest_lives, fl);
float player_rank = GameRules_scoring_add(player, LMS_RANK, 0);
if (!player_rank)
{
- int pl_cnt = 0;
- FOREACH_CLIENT(IS_PLAYER(it) && it.frags != FRAGS_PLAYER_OUT_OF_GAME, {
- pl_cnt++;
- });
if (player.lms_spectate_warning < 2)
{
if(IS_BOT_CLIENT(player))
bot_clear(player);
player.frags = FRAGS_PLAYER_OUT_OF_GAME;
+ int pl_cnt = 0;
+ FOREACH_CLIENT(IS_PLAYER(it) && it.frags != FRAGS_PLAYER_OUT_OF_GAME, {
+ pl_cnt++;
+ });
GameRules_scoring_add(player, LMS_RANK, pl_cnt + 1);
}
else
{
- lms_lowest_lives = 999;
FOREACH_CLIENT(true, {
if (it.frags == FRAGS_PLAYER_OUT_OF_GAME)
{
float it_rank = GameRules_scoring_add(it, LMS_RANK, 0);
if (it_rank > player_rank && it_rank <= 256)
GameRules_scoring_add(it, LMS_RANK, -1);
- lms_lowest_lives = 0;
}
else if (it.frags != FRAGS_SPECTATOR)
{
void lms_Initialize()
{
- lms_lowest_lives = 9999;
+ lms_lowest_lives = 999;
}
#include <common/mutators/base.qh>
#include <common/scores.qh>
-.float lms_spectate_warning;
+// 1 when player presses F3 to spectate for the first time (he only gets a warning)
+// 2 when player goes spectator (presses F3 to spectate for the second time)
+// 3 when player disconnects
+.int lms_spectate_warning;
#define autocvar_g_lms_lives_override cvar("g_lms_lives_override")
string autocvar_g_lms_weaponarena = "most_available";
}
// lives related defs
-float lms_lowest_lives;
-float LMS_NewPlayerLives();
+int lms_lowest_lives;
+int LMS_NewPlayerLives();
Send_Effect(EFFECT_ITEM_PICKUP, CENTER_OR_VIEWOFS(this), '0 0 0', 1);
sound(toucher, CH_TRIGGER, SND_SHIELD_RESPAWN, VOL_BASE, ATTN_NORM);
STAT(BUFFS, toucher) |= (STAT(BUFFS, this));
+ STAT(LAST_PICKUP, toucher) = time;
float bufftime = ((this.count) ? this.count : thebuff.m_time(thebuff));
if(bufftime)
STAT(BUFF_TIME, toucher) = min(time + bufftime, max(STAT(BUFF_TIME, toucher), time) + bufftime);
#ifdef SVQC
entity player = M_ARGV(0, entity);
player.bugrigs_prevangles = player.angles;
+
+ player.disableclientprediction = 2;
#endif
}
bool autocvar_g_instagib_ammo_convert_rockets;
bool autocvar_g_instagib_ammo_convert_shells;
bool autocvar_g_instagib_ammo_convert_bullets;
-int autocvar_g_instagib_extralives;
float autocvar_g_instagib_speed_highspeed;
IntrusiveList g_instagib_items;
#include "items.qh"
float autocvar_g_instagib_invis_alpha;
+int autocvar_g_instagib_extralives;
void instagib_invisibility(entity this);
void instagib_extralife(entity this);
MSG_CENTER_NOTIF(INSTAGIB_FINDAMMO_FIRST, N_ENABLE, 0, 0, "", CPID_INSTAGIB_FINDAMMO, "1 10", _("^BGGet some ammo or you'll be dead in ^F4^COUNT^BG!"), _("^BGGet some ammo! ^F4^COUNT^BG left!"))
MSG_CENTER_NOTIF(INSTAGIB_LIVES_REMAINING, N_ENABLE, 0, 1, "f1", CPID_Null, "0 0", _("^F2Extra lives remaining: ^K1%s"), "")
- MSG_CENTER_NOTIF(MOTD, N_ENABLE, 1, 0, "s1", CPID_MOTD, "-1 0", "^BG%s", "")
+ MSG_CENTER_NOTIF(CAMPAIGN_MESSAGE, N_ENABLE, 1, 1, "f1 s1 join_key", CPID_CAMPAIGN_MESSAGE, "-1 0", strcat(_("Level %s: "), "^BG%s\n^3\n", _("^BGPress ^F2%s^BG to enter the game")), "")
+ MSG_CENTER_NOTIF(MOTD, N_ENABLE, 1, 0, "s1 join_key", CPID_MOTD, "-1 0", strcat("^BG%s\n^3\n", _("^BGPress ^F2%s^BG to enter the game")), "")
MSG_CENTER_NOTIF(NIX_COUNTDOWN, N_ENABLE, 0, 2, "item_wepname", CPID_NIX, "1 f2", _("^F2^COUNT^BG until weapon change...\nNext weapon: ^F1%s"), "")
MSG_CENTER_NOTIF(NIX_NEWWEAPON, N_ENABLE, 0, 1, "item_wepname", CPID_NIX, "0 0", _("^F2Active weapon: ^F1%s"), "")
CASE(CPID, MISSING_TEAMS)
CASE(CPID, MISSING_PLAYERS)
CASE(CPID, INSTAGIB_FINDAMMO)
+ CASE(CPID, CAMPAIGN_MESSAGE)
CASE(CPID, MOTD)
CASE(CPID, NIX)
CASE(CPID, ONSLAUGHT)
ARG_CASE(ARG_CS, "missing_teams", notif_arg_missing_teams(f1)) \
ARG_CASE(ARG_CS, "pass_key", getcommandkey(_("drop flag"), "+use")) \
ARG_CASE(ARG_CS, "nade_key", getcommandkey(_("throw nade"), "dropweapon")) \
+ ARG_CASE(ARG_CS, "join_key", getcommandkey(_("jump"), "+jump")) \
ARG_CASE(ARG_CS, "frag_ping", notif_arg_frag_ping(true, f2)) \
ARG_CASE(ARG_CS, "frag_stats", notif_arg_frag_stats(f2, f3, f4)) \
/*ARG_CASE(ARG_CS, "frag_pos", ((Should_Print_Score_Pos(f1)) ? sprintf("\n^BG%s", Read_Score_Pos(f1)) : ""))*/ \
_Movetype_LinkEdict_TouchAreaGrid(this);
}
+int _Movetype_ContentsMask(entity this) // SV_GenericHitSuperContentsMask
+{
+ if(this)
+ {
+ if(this.dphitcontentsmask)
+ return this.dphitcontentsmask;
+ else if(this.solid == SOLID_SLIDEBOX)
+ {
+ if(this.flags & 32) // TODO: FL_MONSTER
+ return DPCONTENTS_SOLID | DPCONTENTS_BODY | DPCONTENTS_MONSTERCLIP;
+ else
+ return DPCONTENTS_SOLID | DPCONTENTS_BODY | DPCONTENTS_PLAYERCLIP;
+ }
+ else if(this.solid == SOLID_CORPSE)
+ return DPCONTENTS_SOLID | DPCONTENTS_BODY;
+ else if(this.solid == SOLID_TRIGGER)
+ return DPCONTENTS_SOLID | DPCONTENTS_BODY;
+ else
+ return DPCONTENTS_SOLID | DPCONTENTS_BODY | DPCONTENTS_CORPSE;
+ }
+ else
+ return DPCONTENTS_SOLID | DPCONTENTS_BODY | DPCONTENTS_CORPSE;
+}
+
entity _Movetype_TestEntityPosition_ent;
bool _Movetype_TestEntityPosition(vector ofs) // SV_TestEntityPosition
{
//int cont = this.dphitcontentsmask;
//this.dphitcontentsmask = DPCONTENTS_SOLID;
- tracebox(org, this.mins, this.maxs, org, ((this.move_movetype == MOVETYPE_FLY_WORLDONLY) ? MOVE_WORLDONLY : MOVE_NOMONSTERS), this);
+ tracebox(org, this.mins, this.maxs, this.origin, ((this.move_movetype == MOVETYPE_FLY_WORLDONLY) ? MOVE_WORLDONLY : MOVE_NOMONSTERS), this);
//this.dphitcontentsmask = cont;
-
- if(trace_startsolid)
+ if(trace_dpstartcontents & _Movetype_ContentsMask(this))
return true;
- if(vdist(trace_endpos - this.origin, >, 0.0001))
+ if(vlen2(trace_endpos - this.origin) >= 0.0001)
{
tracebox(trace_endpos, this.mins, this.maxs, trace_endpos, MOVE_NOMONSTERS, this);
if(!trace_startsolid)
return false;
}
+bool _Movetype_TestEntityPosition_Offset(int offset)
+{
+ // NOTE: expects _Movetype_TestEntityPosition_ent to be set to the correct entity
+ // returns true if stuck
+
+ // start at 2, since the first position has already been checked
+ for(int j = 2; j <= offset; ++j)
+ {
+ if(!_Movetype_TestEntityPosition('0 0 -1' * j))
+ return false;
+ if(!_Movetype_TestEntityPosition('0 0 1' * j))
+ return false;
+ }
+
+ return true;
+}
+
int _Movetype_UnstickEntity(entity this) // SV_UnstickEntity
{
_Movetype_TestEntityPosition_ent = this;
X('-1 1 0') X(' 1 1 0')
#undef X
{
- #define X(i) \
- if (_Movetype_TestEntityPosition('0 0 -1' * i)) \
- if (_Movetype_TestEntityPosition('0 0 1' * i))
- X(2) X(3) X(4) X(5) X(6) X(7) X(8)
- X(9) X(10) X(11) X(12) X(13) X(14) X(15) X(16)
- X(17)
- #undef X
+ if(_Movetype_TestEntityPosition_Offset(rint((this.maxs.z - this.mins.z) * 0.36)))
{
LOG_DEBUGF("Can't unstick an entity (edict: %d, classname: %s, origin: %s)",
etof(this), this.classname, vtos(this.origin));
#define GAMEPLAYFIX_DOWNTRACEONGROUND(s) STAT(GAMEPLAYFIX_DOWNTRACEONGROUND)
#define GAMEPLAYFIX_EASIERWATERJUMP(s) STAT(GAMEPLAYFIX_EASIERWATERJUMP)
#define GAMEPLAYFIX_STEPDOWN(s) STAT(GAMEPLAYFIX_STEPDOWN)
+#define GAMEPLAYFIX_STEPDOWN_MAXSPEED(s) STAT(GAMEPLAYFIX_STEPDOWN_MAXSPEED)
#define GAMEPLAYFIX_STEPMULTIPLETIMES(s) STAT(GAMEPLAYFIX_STEPMULTIPLETIMES)
#define GAMEPLAYFIX_UNSTICKPLAYERS(s) STAT(GAMEPLAYFIX_UNSTICKPLAYERS)
#define GAMEPLAYFIX_WATERTRANSITION(s) STAT(GAMEPLAYFIX_WATERTRANSITION)
_Movetype_WallFriction(this, move_stepnormal);
}
// don't do the down move if stepdown is disabled, moving upward, not in water, or the move started offground or ended onground
- else if (!GAMEPLAYFIX_STEPDOWN(this) || this.waterlevel >= 3 || start_velocity.z >= (1.0 / 32.0) || !oldonground || IS_ONGROUND(this))
+ else if (!GAMEPLAYFIX_STEPDOWN(this) || this.waterlevel >= 3 || start_velocity.z >= (1.0 / 32.0)
+ || !oldonground || IS_ONGROUND(this) || (GAMEPLAYFIX_STEPDOWN_MAXSPEED(this) && vdist(start_velocity, >=, GAMEPLAYFIX_STEPDOWN_MAXSPEED(this)) && !IS_ONSLICK(this)))
{
return;
}
}
if (!doublejump)
- if (!IS_ONGROUND(this) && !IS_ONSLICK(this))
+ if (!IS_ONGROUND(this))
return IS_JUMP_HELD(this);
if(PHYS_TRACK_CANJUMP(this))
trace_dphitq3surfaceflags = 0;
tracebox(this.origin, this.mins, this.maxs, this.origin - '0 0 1', MOVE_NOMONSTERS, this);
if (trace_dphitq3surfaceflags & Q3SURFACEFLAG_SLICK)
- {
- if(PHYS_SLICK_APPLYGRAVITY(this))
- UNSET_ONGROUND(this);
SET_ONSLICK(this);
- }
else
UNSET_ONSLICK(this);
}
int autocvar_sv_gameplayfix_downtracesupportsongroundflag = 1;
int autocvar_sv_gameplayfix_easierwaterjump = 1;
int autocvar_sv_gameplayfix_stepdown = 2;
+float autocvar_sv_gameplayfix_stepdown_maxspeed = 0;
int autocvar_sv_gameplayfix_stepmultipletimes = 1;
int autocvar_sv_gameplayfix_unstickplayers = 1;
int autocvar_sv_gameplayfix_fixedcheckwatertransition = 1;
REGISTER_STAT(GAMEPLAYFIX_DOWNTRACEONGROUND, int, autocvar_sv_gameplayfix_downtracesupportsongroundflag)
REGISTER_STAT(GAMEPLAYFIX_EASIERWATERJUMP, int, autocvar_sv_gameplayfix_easierwaterjump)
REGISTER_STAT(GAMEPLAYFIX_STEPDOWN, int, autocvar_sv_gameplayfix_stepdown)
+REGISTER_STAT(GAMEPLAYFIX_STEPDOWN_MAXSPEED, float, autocvar_sv_gameplayfix_stepdown_maxspeed)
REGISTER_STAT(GAMEPLAYFIX_STEPMULTIPLETIMES, int, autocvar_sv_gameplayfix_stepmultipletimes)
REGISTER_STAT(GAMEPLAYFIX_UNSTICKPLAYERS, int, autocvar_sv_gameplayfix_unstickplayers)
REGISTER_STAT(GAMEPLAYFIX_UPVELOCITYCLEARSONGROUND, int, autocvar_sv_gameplayfix_upwardvelocityclearsongroundflag)
return false;
}
else if (g_weapon_stay == 2)
+ {
ammomax = min(amount, ammomax);
+ if(player_amount >= ammomax)
+ return false;
+ }
else
return false;
if (amount < 0)
ent.ammo_max *= ent.turret_scale_ammo;
ent.ammo_recharge *= ent.turret_scale_ammo;
ent.aim_speed *= ent.turret_scale_aim;
- ent.health *= ent.turret_scale_health;
+ SetResourceExplicit(ent, RES_HEALTH, GetResource(ent, RES_HEALTH) * ent.turret_scale_health);
ent.respawntime *= ent.turret_scale_respawn;
ent.shot_dmg *= ent.turret_scale_damage;
ent.shot_refire *= ent.turret_scale_refire;
set_movetype(player, MOVETYPE_WALK);
player.effects &= ~EF_NODRAW;
player.teleportable = TELEPORT_NORMAL;
- player.alpha = 1;
+ player.alpha = default_player_alpha;
player.PlayerPhysplug = func_null;
player.vehicle = NULL;
player.view_ofs = STAT(PL_VIEW_OFS, player);
#include "bumblebee.qh"
+#ifdef GAMEQC
+
+#ifdef SVQC
+ #include <common/mutators/mutator/instagib/sv_instagib.qh>
+#endif
+
const float BRG_SETUP = 2;
const float BRG_START = 4;
const float BRG_END = 8;
}
else if(IS_CLIENT(trace_ent))
{
- if(GetResource(trace_ent, RES_ARMOR) <= autocvar_g_vehicle_bumblebee_healgun_amax && autocvar_g_vehicle_bumblebee_healgun_aps)
- GiveResourceWithLimit(trace_ent, RES_ARMOR, autocvar_g_vehicle_bumblebee_healgun_aps * dt, autocvar_g_vehicle_bumblebee_healgun_amax);
+ float maxarmor = ((MUTATOR_IS_ENABLED(mutator_instagib)) ? autocvar_g_instagib_extralives : autocvar_g_vehicle_bumblebee_healgun_amax);
+ if(GetResource(trace_ent, RES_ARMOR) <= maxarmor && autocvar_g_vehicle_bumblebee_healgun_aps)
+ GiveResourceWithLimit(trace_ent, RES_ARMOR, autocvar_g_vehicle_bumblebee_healgun_aps * dt, maxarmor);
}
}
}
}
#endif
+
+#endif
#include "racer.qh"
+#ifdef GAMEQC
+
#ifdef SVQC
#include <common/mapobjects/trigger/impulse.qh>
.float racer_watertime;
-var vector racer_force_from_tag(entity this, string tag_name, float spring_length, float max_power);
+var .vector(entity this, string tag_name, float spring_length, float max_power) racer_force_from_tag;
-void racer_align4point(entity this, float _delta)
+void racer_align4point(entity this, entity player, float _delta)
{
vector push_vector;
float fl_push, fr_push, bl_push, br_push;
- push_vector = racer_force_from_tag(this, "tag_engine_fr", autocvar_g_vehicle_racer_springlength, autocvar_g_vehicle_racer_hoverpower);
+ push_vector = this.racer_force_from_tag(this, "tag_engine_fr", autocvar_g_vehicle_racer_springlength, autocvar_g_vehicle_racer_hoverpower);
fr_push = force_fromtag_normpower;
//vehicles_sweap_collision(force_fromtag_origin, this.velocity, _delta, v_add, autocvar_g_vehicle_racer_collision_multiplier);
- push_vector += racer_force_from_tag(this, "tag_engine_fl", autocvar_g_vehicle_racer_springlength, autocvar_g_vehicle_racer_hoverpower);
+ push_vector += this.racer_force_from_tag(this, "tag_engine_fl", autocvar_g_vehicle_racer_springlength, autocvar_g_vehicle_racer_hoverpower);
fl_push = force_fromtag_normpower;
//vehicles_sweap_collision(force_fromtag_origin, this.velocity, _delta, v_add, autocvar_g_vehicle_racer_collision_multiplier);
- push_vector += racer_force_from_tag(this, "tag_engine_br", autocvar_g_vehicle_racer_springlength, autocvar_g_vehicle_racer_hoverpower);
+ push_vector += this.racer_force_from_tag(this, "tag_engine_br", autocvar_g_vehicle_racer_springlength, autocvar_g_vehicle_racer_hoverpower);
br_push = force_fromtag_normpower;
//vehicles_sweap_collision(force_fromtag_origin, this.velocity, _delta, v_add, autocvar_g_vehicle_racer_collision_multiplier);
- push_vector += racer_force_from_tag(this, "tag_engine_bl", autocvar_g_vehicle_racer_springlength, autocvar_g_vehicle_racer_hoverpower);
+ push_vector += this.racer_force_from_tag(this, "tag_engine_bl", autocvar_g_vehicle_racer_springlength, autocvar_g_vehicle_racer_hoverpower);
bl_push = force_fromtag_normpower;
//vehicles_sweap_collision(force_fromtag_origin, this.velocity, _delta, v_add, autocvar_g_vehicle_racer_collision_multiplier);
{
uforce = autocvar_g_vehicle_racer_water_upforcedamper;
- if(PHYS_INPUT_BUTTON_CROUCH(this.owner) && time < this.air_finished)
+ if(PHYS_INPUT_BUTTON_CROUCH(player) && time < this.air_finished)
this.velocity_z += 30;
else
this.velocity_z += 200;
return;
}
- racer_align4point(vehic, dt);
+ racer_align4point(vehic, player, dt);
PHYS_INPUT_BUTTON_ZOOM(player) = PHYS_INPUT_BUTTON_CROUCH(player) = false;
void racer_think(entity this)
{
- this.nextthink = time + autocvar_g_vehicle_racer_thinkrate;
+ float dt = autocvar_g_vehicle_racer_thinkrate;
+
+ this.nextthink = time + dt;
tracebox(this.origin, this.mins, this.maxs, this.origin - ('0 0 1' * autocvar_g_vehicle_racer_springlength), MOVE_NOMONSTERS, this);
this.velocity_z += 200;
}
- this.velocity += df * autocvar_g_vehicle_racer_thinkrate;
+ this.velocity += df * dt;
if(this.velocity_z > 0)
- this.velocity_z *= 1 - forced * autocvar_g_vehicle_racer_thinkrate;
+ this.velocity_z *= 1 - forced * dt;
- this.angles_x *= 1 - (autocvar_g_vehicle_racer_anglestabilizer * autocvar_g_vehicle_racer_thinkrate);
- this.angles_z *= 1 - (autocvar_g_vehicle_racer_anglestabilizer * autocvar_g_vehicle_racer_thinkrate);
+ this.angles_x *= 1 - (autocvar_g_vehicle_racer_anglestabilizer * dt);
+ this.angles_z *= 1 - (autocvar_g_vehicle_racer_anglestabilizer * dt);
CSQCMODEL_AUTOUPDATE(this);
}
if(time >= this.delay)
racer_blowup(this);
- CSQCMODEL_AUTOUPDATE(this);
+ //CSQCMODEL_AUTOUPDATE(this);
}
void racer_deadtouch(entity this, entity toucher)
METHOD(Racer, vr_enter, void(Racer thisveh, entity instance))
{
-#ifdef SVQC
set_movetype(instance, MOVETYPE_BOUNCE);
+#ifdef SVQC
instance.owner.vehicle_health = (GetResource(instance, RES_HEALTH) / autocvar_g_vehicle_racer_health) * 100;
instance.owner.vehicle_shield = (instance.vehicle_shield / autocvar_g_vehicle_racer_shield) * 100;
if(instance.owner.flagcarried)
setorigin(instance.owner.flagcarried, '-190 0 96');
-#elif defined(CSQC)
- set_movetype(instance, MOVETYPE_BOUNCE);
#endif
}
METHOD(Racer, vr_spawn, void(Racer thisveh, entity instance))
{
#ifdef SVQC
- if(instance.scale != 0.5)
- {
- if(autocvar_g_vehicle_racer_hovertype != 0)
- racer_force_from_tag = vehicles_force_fromtag_maglev;
- else
- racer_force_from_tag = vehicles_force_fromtag_hover;
-
- // FIXME: this be hakkz, fix the models insted (scale body, add tag_viewport to the hudmodel).
- instance.scale = 0.5;
- setattachment(instance.vehicle_hudmodel, instance, "");
- setattachment(instance.vehicle_viewport, instance, "tag_viewport");
-
- instance.mass = 900;
- }
+ if(autocvar_g_vehicle_racer_hovertype != 0)
+ instance.racer_force_from_tag = vehicles_force_fromtag_maglev;
+ else
+ instance.racer_force_from_tag = vehicles_force_fromtag_hover;
setthink(instance, racer_think);
instance.nextthink = time;
set_movetype(instance, MOVETYPE_TOSS);
instance.solid = SOLID_SLIDEBOX;
instance.delay = time;
- instance.scale = 0.5;
+ instance.scale = 0.5; // FIXME: this be hakkz, fix the models insted (scale body, add tag_viewport to the hudmodel).
+ instance.mass = 900;
+
+ setattachment(instance.vehicle_hudmodel, instance, "");
+ setattachment(instance.vehicle_viewport, instance, "tag_viewport");
instance.PlayerPhysplug = racer_frame;
instance.vehicle_exit = racer_exit;
// we have no need to network energy
- if(autocvar_g_vehicle_racer_energy)
- if(autocvar_g_vehicle_racer_energy_regen)
+ if(autocvar_g_vehicle_racer_energy && autocvar_g_vehicle_racer_energy_regen)
instance.vehicle_flags |= VHF_ENERGYREGEN;
if(autocvar_g_vehicle_racer_shield)
AuxiliaryXhair[0].axh_image = vCROSS_LOCK; // Rocket
#endif
}
+
+#endif
#include "raptor.qh"
+#ifdef GAMEQC
+
#ifdef SVQC
bool autocvar_g_vehicle_raptor = true;
}
#endif
+
+#endif
#include "spiderbot.qh"
+#ifdef GAMEQC
+
const int SBRM_FIRST = 1;
const int SBRM_VOLLY = 1;
const int SBRM_GUIDE = 2;
}
#endif
+
+#endif
this.com_phys_gravity = '0 0 0';
} else if (ITEMS_STAT(this) & IT_USING_JETPACK) {
PM_jetpack(this, maxspeed_mod, dt);
- } else if (IS_ONGROUND(this)) {
+ } else if (IS_ONGROUND(this) && (!IS_ONSLICK(this) || !PHYS_SLICK_APPLYGRAVITY(this))) {
if (!WAS_ONGROUND(this)) {
emit(phys_land, this);
if (this.lastground < time - 0.3) {
this.iorigin2 = this.origin;
}
- if (this.iflags & IFLAG_AUTOANGLES
+ if ((this.iflags & IFLAG_AUTOANGLES)
&& this.iorigin2
!= this.iorigin1) this.angles = vectoangles(this.iorigin2 - this.iorigin1);
- if (this.iflags & IFLAG_AUTOVELOCITY
+ if ((this.iflags & IFLAG_AUTOVELOCITY)
&& this.itime2
!= this.itime1) this.velocity = (this.iorigin2 - this.iorigin1) * (1.0 / (this.itime2 - this.itime1));
s = campaign_shortdesc[i]; // fteqcc sucks
else
s = "???";
- s = draw_TextShortenToWidth(sprintf(_("Level %d: %s"), i+1, s), me.columnNameSize, 0, me.realFontSize);
+ // NOTE the following string is equal to the one used in the campaign level notification
+ // (CAMPAIGN_MESSAGE) to avoid adding another duplicate string to translate
+ s = draw_TextShortenToWidth(strcat(sprintf(_("Level %s: "), itos(i+1)), s), me.columnNameSize, 0, me.realFontSize);
draw_Text(me.realUpperMargin1 * eY + (me.columnNameOrigin + 0.00 * (me.columnNameSize - draw_TextWidth(s, 0, me.realFontSize))) * eX, s, me.realFontSize, theColor, theAlpha, 0);
if(i <= me.campaignIndex)
return 0;
}
+int Campaign_GetLevelNum()
+{
+ return campaign_level + 1;
+}
+
+string Campaign_GetMessage()
+{
+ return strcat(campaign_shortdesc[0], "\n^3\n", campaign_longdesc[0]);
+}
+
void CampaignPreInit()
{
float baseskill;
- string title;
campaign_level = autocvar__campaign_index;
campaign_name = strzone(autocvar__campaign_name);
campaign_index_var = strzone(strcat("g_campaign", campaign_name, "_index"));
if(Campaign_Invalid())
return;
-
- title = campaign_shortdesc[0];
- title = strzone(strcat("Level ", ftos(campaign_level + 1), ": ", title));
- campaign_message = strzone(strcat(title, "\n^3\n", campaign_longdesc[0], "\n\n^1press jump to enter the game"));
- strunzone(title);
}
void CampaignPostInit()
CampaignSetup(campaign_won);
CampaignFile_Unload();
- strunzone(campaign_message);
strunzone(campaign_index_var);
strunzone(campaign_name);
campaign_name = "";
// this must be included BEFORE campaign_common.h to make this a memory saving
#define CAMPAIGN_MAX_ENTRIES 2
-string campaign_message;
+int Campaign_GetLevelNum();
+string Campaign_GetMessage();
void CampaignPreInit();
void CampaignPostInit();
if (CS(this).spectatee_status != oldspectatee_status)
{
+ if (STAT(PRESSED_KEYS, this))
+ {
+ CS(this).pressedkeys = 0;
+ STAT(PRESSED_KEYS, this) = 0;
+ }
ClientData_Touch(this);
if (g_race || g_cts) race_InitSpectator();
}
if (autocvar_g_campaign) {
if ((IS_PLAYER(this) && PHYS_INPUT_BUTTON_INFO(this)) || (!IS_PLAYER(this))) {
CS(this).motd_actived_time = time;
- Send_Notification(NOTIF_ONE_ONLY, this, MSG_CENTER, CENTER_MOTD, campaign_message);
+ Send_Notification(NOTIF_ONE_ONLY, this, MSG_CENTER, CENTER_CAMPAIGN_MESSAGE, Campaign_GetMessage(), Campaign_GetLevelNum());
}
} else {
if (PHYS_INPUT_BUTTON_INFO(this)) {
CS(this).motd_actived_time = time;
else if ((time - CS(this).motd_actived_time > 2) && IS_PLAYER(this)) { // hide it some seconds after BUTTON_INFO has been released
CS(this).motd_actived_time = 0;
- Kill_Notification(NOTIF_ONE_ONLY, this, MSG_CENTER, CPID_MOTD);
+ Kill_Notification(NOTIF_ONE_ONLY, this, MSG_CENTER, CPID_CAMPAIGN_MESSAGE);
}
} else {
if (PHYS_INPUT_BUTTON_INFO(this))
{
// instantly hide MOTD
CS(this).motd_actived_time = 0;
- Kill_Notification(NOTIF_ONE_ONLY, this, MSG_CENTER, CPID_MOTD);
+ if (autocvar_g_campaign)
+ Kill_Notification(NOTIF_ONE_ONLY, this, MSG_CENTER, CPID_CAMPAIGN_MESSAGE);
+ else
+ Kill_Notification(NOTIF_ONE_ONLY, this, MSG_CENTER, CPID_MOTD);
}
else if (IS_PLAYER(this) || IS_SPEC(this))
{
}
GetPressedKeys(this);
}
+ else if (IS_OBSERVER(this) && STAT(PRESSED_KEYS, this))
+ {
+ CS(this).pressedkeys = 0;
+ STAT(PRESSED_KEYS, this) = 0;
+ }
if (this.waypointsprite_attachedforcarrier) {
float hp = healtharmor_maxdamage(GetResource(this, RES_HEALTH), GetResource(this, RES_ARMOR), autocvar_g_balance_armor_blockpercent, DEATH_WEAPON.m_id).x;
return true;
}
+// NOTE: requires input to be surrounded by spaces
+string VoteCommand_checkreplacements(string input)
+{
+ string output = input;
+ // allow gotomap replacements
+ output = strreplace(" map ", " gotomap ", output);
+ output = strreplace(" chmap ", " gotomap ", output);
+ return output;
+}
+
float VoteCommand_checkinlist(string vote_command, string list)
{
- string l = strcat(" ", list, " ");
+ string l = VoteCommand_checkreplacements(strcat(" ", list, " "));
- if (strstrofs(l, strcat(" ", vote_command, " "), 0) >= 0) return true;
+ if (strstrofs(l, VoteCommand_checkreplacements(strcat(" ", vote_command, " ")), 0) >= 0) return true;
return false;
}
if(this.spawnflags & SPAWNFLAG_NO_WAYPOINTS_FOR_ITEMS)
bot_waypoints_for_items = 0;
- precache();
-
WaypointSprite_Init();
GameLogInit(); // prepare everything
MapVote_Start();
}
-/*
-============
-FindIntermission
-
-Returns the entity to view from
-============
-*/
-/*
-entity FindIntermission()
-{
- local entity spot;
- local float cyc;
-
-// look for info_intermission first
- spot = find(NULL, classname, "info_intermission");
- if (spot)
- { // pick a random one
- cyc = random() * 4;
- while (cyc > 1)
- {
- spot = find(spot, classname, "info_intermission");
- if (!spot)
- spot = find(spot, classname, "info_intermission");
- cyc = cyc - 1;
- }
- return spot;
- }
-
-// then look for the start position
- spot = find(NULL, classname, "info_player_start");
- if (spot)
- return spot;
-
-// testinfo_player_start is only found in regioned levels
- spot = find(NULL, classname, "testplayerstart");
- if (spot)
- return spot;
-
-// then look for the start position
- spot = find(NULL, classname, "info_player_deathmatch");
- if (spot)
- return spot;
-
- //objerror ("FindIntermission: no spot");
- return NULL;
-}
-*/
-
/*
===============================================================================
}
}
firstPlaceVotes = RandomSelection_best_priority;
- if ( autocvar_sv_vote_gametype_default_current && currentVotes == firstPlaceVotes )
+ if ( autocvar_sv_vote_gametype_default_current && firstPlaceVotes == 0 )
firstPlace = currentPlace;
else
firstPlace = RandomSelection_chosen_float;
FOREACH_WORD(s, true, { precache_playermodel(it); });
}
-void precache()
+PRECACHE(PlayerModels)
{
- // gamemode related things
-
// Precache all player models if desired
if (autocvar_sv_precacheplayermodels)
{
precache_playermodels(autocvar_sv_defaultplayermodel_pink);
precache_playermodels(autocvar_sv_defaultplayermodel);
}
-
-#if 0
- // Disabled this code because it simply does not work (e.g. ignores bgmvolume, overlaps with "cd loop" controlled tracks).
-
- if (!this.noise && this.music) // quake 3 uses the music field
- this.noise = this.music;
-
- // plays music for the level if there is any
- if (this.noise)
- {
- precache_sound (this.noise);
- ambientsound ('0 0 0', this.noise, VOL_BASE, ATTEN_NONE);
- }
-#endif
}
string playername(entity p, bool team_colorize);
-void precache();
-
void remove_safely(entity e);
void remove_unsafely(entity e);
float PlayerEdgeDistance(entity p, vector v)
{
- vector vbest;
-
- if(v.x < 0) vbest.x = p.mins.x; else vbest.x = p.maxs.x;
- if(v.y < 0) vbest.y = p.mins.y; else vbest.y = p.maxs.y;
- if(v.z < 0) vbest.z = p.mins.z; else vbest.z = p.maxs.z;
+ vector vbest = vec3(
+ ((v.x < 0) ? p.mins.x : p.maxs.x),
+ ((v.y < 0) ? p.mins.y : p.maxs.y),
+ ((v.z < 0) ? p.mins.z : p.maxs.z));
return vbest * v;
}
sv_gameplayfix_q2airaccelerate 1
sv_gameplayfix_stepmultipletimes 1
sv_gameplayfix_stepdown 2
+// only available in qc physics
+set sv_gameplayfix_stepdown_maxspeed 0 "maximum speed walking entities can be moving for stepping down to apply - requires sv_qcphysics 1"
// delay for "kill" to prevent abuse
set g_balance_kill_delay 2 "timer before death when using the kill command"