-set g_ctf_flagscore_pickup_base 1
-set g_ctf_flagscore_pickup_dropped_early 0
-set g_ctf_flagscore_pickup_dropped_late 1
-set g_ctf_flagscore_capture 20
-set g_ctf_flagscore_kill 2
-set g_ctf_flagpenalty_drop 0
-set g_ctf_flagpenalty_suicidedrop 1
-set g_ctf_flagpenalty_returned 0
-set g_ctf_flagscore_return 3
-set g_ctf_flagscore_return_rogue 3
-set g_ctf_flagscore_return_by_killer 5
-set g_ctf_flagscore_return_rogue_by_killer 5
-
-// succeeded capture (pickup capture) 21 (0 for enemy)
-// failed capture (pickup kill drop return) 1 (8 for enemy)
-// failed (shot into void) (pickup kill drop) 1 (2 for enemy)
-// capture retry (kill drop pickup) 0..1 (2 for enemy)
-// suicide, then retake (suicidedrop pickup) -1 (0 for enemy)
-
set g_ctf_personalscore_pickup_base 1
set g_ctf_personalscore_pickup_dropped_early 0
set g_ctf_personalscore_pickup_dropped_late 1
-set g_ctf_flagscore_pickup_base 1
-set g_ctf_flagscore_pickup_dropped_early 1
-set g_ctf_flagscore_pickup_dropped_late 1
-set g_ctf_flagscore_capture 30
-set g_ctf_flagscore_kill 1
-set g_ctf_flagpenalty_drop 2
-set g_ctf_flagpenalty_suicidedrop 2
-set g_ctf_flagpenalty_returned 0
-set g_ctf_flagscore_return 5
-set g_ctf_flagscore_return_rogue 10
-set g_ctf_flagscore_return_by_killer 6
-set g_ctf_flagscore_return_rogue_by_killer 11
-// succeeded capture (pickup capture) 31 (0 for enemy)
-// failed capture (pickup kill drop return) -1 (6 or 7 for enemy)
-// failed (shot into void) (pickup kill drop) 1 (1 for enemy)
-// capture retry (kill drop pickup) -1 (1 for enemy)
-// suicide, then retake (suicidedrop pickup) -1 (0 for enemy)
-
set g_ctf_personalscore_pickup_base 1
set g_ctf_personalscore_pickup_dropped_early 1
set g_ctf_personalscore_pickup_dropped_late 1
-set g_ctf_flagscore_pickup_base 0
-set g_ctf_flagscore_pickup_dropped_early 0
-set g_ctf_flagscore_pickup_dropped_late 0
-set g_ctf_flagscore_capture 20
-set g_ctf_flagscore_kill 0
-set g_ctf_flagpenalty_drop 0
-set g_ctf_flagpenalty_suicidedrop 0
-set g_ctf_flagpenalty_returned 0
-set g_ctf_flagscore_return 5
-set g_ctf_flagscore_return_rogue 10
-set g_ctf_flagscore_return_by_killer 5
-set g_ctf_flagscore_return_rogue_by_killer 10
-// succeeded capture (pickup capture) 20 (0 for enemy)
-// failed capture (pickup kill drop return) 0 (5 for enemy)
-// failed (shot into void) (pickup kill drop) 0 (0 for enemy)
-// capture retry (kill drop pickup) 0 (0 for enemy)
-// suicide, then retake (suicidedrop pickup) 0 (0 for enemy)
-
set g_ctf_personalscore_pickup_base 0
set g_ctf_personalscore_pickup_dropped_early 0
set g_ctf_personalscore_pickup_dropped_late 0
-set g_ctf_flagscore_pickup_base 0
-set g_ctf_flagscore_pickup_dropped_early 1
-set g_ctf_flagscore_pickup_dropped_late 1
-set g_ctf_flagscore_capture 25
-set g_ctf_flagscore_kill 3
-set g_ctf_flagpenalty_drop 2
-set g_ctf_flagpenalty_suicidedrop 2
-set g_ctf_flagpenalty_returned 1
-set g_ctf_flagscore_return 5 // not adjusted as this would suck for team game
-set g_ctf_flagscore_return_rogue 10
-set g_ctf_flagscore_return_by_killer 5
-set g_ctf_flagscore_return_rogue_by_killer 10
-
-// succeeded capture (pickup capture) 25 (0 for enemy)
-// failed capture (pickup kill drop return) -3 (8 for enemy)
-// failed (shot into void) (pickup kill drop) -2 (3 for enemy)
-// capture retry (kill drop pickup) -1 (3 for enemy)
-// suicide, then retake (suicidedrop pickup) -1 (0 for enemy)
-
set g_ctf_personalscore_pickup_base 0
set g_ctf_personalscore_pickup_dropped_early 1
set g_ctf_personalscore_pickup_dropped_late 1
-set g_ctf_flagscore_pickup_base 1
-set g_ctf_flagscore_pickup_dropped_early 1
-set g_ctf_flagscore_pickup_dropped_late 1
-set g_ctf_flagscore_capture 20
-set g_ctf_flagscore_kill 1
-set g_ctf_flagpenalty_drop 0
-set g_ctf_flagpenalty_suicidedrop 1
-set g_ctf_flagpenalty_returned 0
-set g_ctf_flagscore_return 5
-set g_ctf_flagscore_return_rogue 10
-set g_ctf_flagscore_return_by_killer 5
-set g_ctf_flagscore_return_rogue_by_killer 10
-// succeeded capture (pickup capture) 21 (0 for enemy)
-// failed capture (pickup kill drop return) 1 (6 for enemy)
-// failed (shot into void) (pickup kill drop) 1 (1 for enemy)
-// capture retry (kill drop pickup) 1 (1 for enemy)
-// suicide, then retake (suicidedrop pickup) 0 (0 for enemy)
-
set g_ctf_personalscore_pickup_base 1
set g_ctf_personalscore_pickup_dropped_early 1
set g_ctf_personalscore_pickup_dropped_late 1
-exec ctfscoring-ai.cfg // fall back to ai's scoring for flag scores, if g_ctf_win_mode is 2, as this system is highly broken in that mode
-
set g_ctf_personalscore_pickup_base -1
set g_ctf_personalscore_pickup_dropped_early 5
set g_ctf_personalscore_pickup_dropped_late 9
-exec ctfscoring-ai.cfg // fall back to ai's scoring for flag scores, if g_ctf_win_mode is 2, as this system is highly broken in that mode
-
set g_ctf_personalscore_pickup_base -5
set g_ctf_personalscore_pickup_dropped_early 1
set g_ctf_personalscore_pickup_dropped_late 5
_if_dedicated alias if_client ""
if_client alias if_dedicated ""
+if_dedicated "alias" qc_cmd_svmenu "sv_cmd $$*"
+if_client "alias" qc_cmd_svmenu "menu_cmd $$*"
+if_dedicated "alias" qc_cmd_svcl "sv_cmd $$*"
+if_client "alias" qc_cmd_svcl "cl_cmd $$*"
+if_dedicated "alias" qc_cmd_svcmd "sv_cmd $$*"
+if_client "alias" qc_cmd_svcmd "cmd $$*"
+
+// shorthand for the most usual case
+alias qc_cmd "qc_cmd_svmenu $*"
+
seta g_configversion 0 "Configuration file version (used to upgrade settings) 0: first run, or previous start was <2.4.1 Later, it's overridden by config.cfg, version ranges are defined in config_update.cfg"
// say aliases
seta leadlimit_override -1 "Lead limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
seta capturelimit_override -1 "Capture limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
seta captureleadlimit_override -1 "Capture llead imit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
-seta g_ctf_capture_limit -1 "CTF capture limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
-seta g_ctf_capture_leadlimit -1 "CTF capture lead limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
seta g_arena_point_limit -1 "Arena point limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
seta g_arena_point_leadlimit -1 "Arena point lead limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
seta g_domination_point_limit -1 "Domination point limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
seta g_nexball_goallimit -1 "Nexball goal limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
seta g_nexball_goalleadlimit -1 "Nexball goal lead limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
-seta g_ctf_win_mode 0 "0: captures only, 1: captures, then points, 2: points only"
seta g_ctf_ignore_frags 0 "1: regular frags give no points"
set g_freezetag 0 "Freeze Tag: Freeze the opposing team(s) to win, unfreeze teammates by standing next to them"
seta g_waypointsprites_turrets_maxdist 4000 "max distace for turret sprites"
// command extension
-alias qc_cmd "sv_cmd $*" // menu QC will override this to menu_cmd
alias adminmsg "sv_cmd adminmsg $*"
alias teamstatus "cmd teamstatus; sv_cmd teamstatus" // yes, it is broken on listen servers that way, but well, who cares :P
alias printstats "sv_cmd printstats" // print status on demand
r_labelsprites_scale 0.40625 // labels sprites get displayed at 0.5x from 640x480 to 1280x1024, and at 1x from 1600x1200 onwards
// settemp subsystem. Do not touch. Usage: settemp variable value, next map resets it.
-set settemp_list 0
-set settemp_idx 0
-set _settemp_var UNUSED
-alias settemp "_settemp_var \"_settemp_x$settemp_idx\"; qc_cmd rpn /settemp_idx settemp_idx 1 add def; _settemp \"$1\" \"$2\""
-alias _settemp "settemp_list \"1 $1 $_settemp_var $settemp_list\"; set $_settemp_var \"${$1}\"; $1 \"$2\""
-alias settemp_restore "_settemp_restore_${settemp_list asis}"
-alias _settemp_restore_0 "set settemp_var 0; set settemp_list 0"
-alias _settemp_restore_1 "$1 \"${$2}\"; _settemp_restore_${3- asis}"
+alias settemp "qc_cmd_svcl settemp $$*"
+alias settemp_restore "qc_cmd_svcl settemp_restore"
// usercommands. These can be edited and bound by the menu.
seta "userbind1_press" "say_team quad soon"; seta "userbind1_release" ""; seta "userbind1_description" "team: quad soon"
seta gl_finish $gl_finish
seta v_kicktime $v_kicktime
seta r_subdivisions_tolerance $r_subdivisions_tolerance
+seta vid_gl20 $vid_gl20
+seta vid_gl13 $vid_gl13
// ticrate
//sys_ticrate 0.0166667
set rescan_pending 0 "set to 1 to schedule a fs_rescan at the end of this match"
-seta g_mapinfo_allow_unsupported_modes_and_let_stuff_break "0" "set to 1 to be able to force game types using g_ cvars even if the map does not support them"
+set g_mapinfo_allow_unsupported_modes_and_let_stuff_break "0" "set to 1 to be able to force game types using g_ cvars even if the map does not support them"
// weapon accuracy stats
set sv_accuracy_data_share 1 "1 send weapon accuracy data statistics to spectating clients, depends on cl_accuracy_data_share"
"+crouch" "guggolás / süllyedés"
"+hook" "kézi kampó / rakéta puttony"
"" ""
-"" "Lövés"
-"+fire" "Elsödleges"
+"" "Tüzelés"
+"+fire" "Elsődleges"
"+fire2" "Másodlagos"
"" ""
"" "Fegyverváltás"
-"weapprev" "elöző"
+"weapprev" "előző"
"weapnext" "következő"
-"weaplast" "elözőleg használt"
+"weaplast" "előzőleg használt"
"weapbest" "legjobb"
"reload" "újratöltés"
"weapon_group_1" "Lézer"
-# SOME DESCRIPTIVE TITLE.
+# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR: xaN1C4n3 <robalm@freemail.hu>, 2011.01.19
# corrected by xaN1C4n3, 2011.12.20.
-# version 2.0
+# further corrected by C.Brutail, 2011.12.28.
+# version 2.1
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-09-12 12:24+0200\n"
+"POT-Creation-Date: 2011-09-02 07:51+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
#: qcsrc/menu/menu.qc:29
#, fuzzy, c-format
msgid "^4MQC Build information: ^1%s\n"
-msgstr "^4MQC Épitési információ: %s\n"
+msgstr "^4MQC Build információ: %s\n"
#: qcsrc/menu/xonotic/campaign.c:284
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:123
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:134
msgid "???"
msgstr "???"
#: qcsrc/menu/xonotic/cvarlist.c:85
msgid "will be saved to config.cfg"
-msgstr "A config.cfg-ba lesz mentve"
+msgstr "A config.cfg-be lesz mentve"
#: qcsrc/menu/xonotic/cvarlist.c:87
msgid "will not be saved"
#: qcsrc/menu/xonotic/cvarlist.c:91
msgid "engine setting"
-msgstr "motor beállítás"
+msgstr "grafikus motor beállítás"
#: qcsrc/menu/xonotic/cvarlist.c:93
msgid "read only"
"Welcome to Xonotic, please select your language preference and enter your "
"player name to get started. You can change these options later through the "
"menu system."
-msgstr ""
-"Üdvözlünk a Xonotic-ban! Kérjük, a kezdéshez válaszd ki a kívánt nyelvet és "
-"írd be a játékos nevedet! Később ezeket meg is tudod változtatni a "
-"menürendszerben."
+msgstr "Üdvözlünk a Xonotic-ban! Kérjük, a kezdéshez válaszd ki a használni kívánt nyelvet "
+"és írd be a játékos nevedet! Később ezeket meg is tudod változtatni "
+"a menürendszerben."
#: qcsrc/menu/xonotic/dialog_firstrun.c:38
#: qcsrc/menu/xonotic/dialog_settings_misc.c:35
#: qcsrc/menu/xonotic/dialog_firstrun.c:69
msgid "Save settings"
-msgstr "A beállítások mentése"
+msgstr "Beállítások mentése"
#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:4
msgid "Ammo Panel"
#: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:27
#, fuzzy
msgid "Fade time:"
-msgstr "Bejegyzés halványulási idő:"
+msgstr "Bejegyzés elhalványulási ideje:"
#: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:31
#, fuzzy
msgid "Flip messages order"
-msgstr "Értesítés rend megfordítás"
+msgstr "Értesítési sorrend megfordítása"
#: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:33
#, fuzzy
#: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.c:41
#, fuzzy
msgid "Font scale:"
-msgstr "Font részletesség:"
+msgstr "Betűméret:"
#: qcsrc/menu/xonotic/dialog_hudpanel_chat.c:4
msgid "Chat Panel"
#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:4
msgid "Engine Info Panel"
-msgstr "Motor Információs panel"
+msgstr "Grafikus motor információs panel"
#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:22
msgid "Engine info:"
-msgstr "Motor Információ:"
+msgstr "Grafikus motor Információ:"
#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.c:25
msgid "Use an averaging algorithm for fps"
#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:45
msgid "Flip health and armor positions"
-msgstr "Életerő és páncél poziciójának cseréje"
+msgstr "Életerő és páncél pozíciójának cseréje"
#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:4
msgid "Info Messages Panel"
-msgstr "Info üzenetek lapja"
+msgstr "Infó üzenetek panel"
#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:22
msgid "Info messages:"
-msgstr "Info üzenetek:"
+msgstr "Infó üzenetek:"
#: qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c:25
msgid "Flip align"
-msgstr "Forditott igazítás"
+msgstr "Fordított igazítás"
#: qcsrc/menu/xonotic/dialog_hudpanel_modicons.c:4
msgid "Mod Icons Panel"
#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:25
msgid "Also print notifications to the console"
-msgstr "Az értesítéseket a konzolra is kiirja"
+msgstr "Az értesítéseket a konzolra is kiírja"
#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:28
msgid "Flip notify order"
-msgstr "Értesítés rend megfordítás"
+msgstr "Értesítési sorrend megfordítása"
#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:31
msgid "Entry lifetime:"
-msgstr "Bejegyzés élettartam:"
+msgstr "Bejegyzés élettartama:"
#: qcsrc/menu/xonotic/dialog_hudpanel_notification.c:35
msgid "Entry fadetime:"
-msgstr "Bejegyzés halványulási idő:"
+msgstr "Bejegyzés elhalványulási ideje:"
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:4
#, fuzzy
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:23
#, fuzzy
msgid "Panel enabled"
-msgstr "Panel engedélyezés"
+msgstr "Panel engedélyezése"
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:24
#, fuzzy
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:45
msgid "Include vertical speed"
-msgstr "Függöleges sebesség is"
+msgstr "Függőleges sebességet is"
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:56
msgid "Speed unit:"
-msgstr "Sebesség egység:"
+msgstr "Sebesség mértékegysége:"
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:58
msgid "qu/s"
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:64
#, fuzzy
msgid "Show"
-msgstr "Mutató"
+msgstr "Mutasd"
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:67
#, fuzzy
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:74
msgid "Include vertical acceleration"
-msgstr "Függöleges sebesség is"
+msgstr "Függőleges sebességet is"
#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:4
msgid "Powerups Panel"
#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:43
#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:82
#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:154
-#: qcsrc/menu/xonotic/util.qc:612
+#: qcsrc/menu/xonotic/util.qc:600
msgid "Alpha:"
msgstr "Átlátszóság:"
#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:46
msgid "Scale:"
-msgstr "Arány:"
+msgstr "Méret:"
#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:50
msgid "Zoom mode:"
#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:4
msgid "Score Panel"
-msgstr "Ponttáblázat"
+msgstr "Pontjelző panel"
#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:22
msgid "Score:"
#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:26
#, fuzzy
msgid "Off"
-msgstr "Off"
+msgstr "Kikapcsolva"
#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:27
msgid "And me"
#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:4
msgid "Timer Panel"
-msgstr "Időtáblázat"
+msgstr "Időmérő panel"
#: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:22
msgid "Timer:"
#: qcsrc/menu/xonotic/dialog_hudpanel_vote.c:4
msgid "Vote Panel"
-msgstr "Szavazati tábla"
+msgstr "Szavazó panel"
#: qcsrc/menu/xonotic/dialog_hudpanel_vote.c:22
msgid "Alpha after voting:"
-msgstr "Átlátszóság a szavazás után:"
+msgstr "Átlátszóság szavazat után:"
#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:4
msgid "Weapons Panel"
-msgstr "Fegyverek lapja"
+msgstr "Fegyver panel"
#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:24
msgid "Fade out after:"
#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:32
msgid "Fade effect:"
-msgstr "Halványulás hatás:"
+msgstr "Elhalványulás hatása:"
#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:35
msgid "EF^None"
#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:36
msgid "Slide"
-msgstr "Csúszka"
+msgstr "Becsúszó"
#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:37
msgid "Alpha"
-msgstr "Átlátszóság"
+msgstr "Halványuló"
#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:38
#, fuzzy
msgstr "Fegyver ikonok:"
#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:45
-#, fuzzy
-msgid "Show only owned weapons"
-msgstr "Alap iránypontok mutatása"
-
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:48
msgid "Show weapon ID as:"
-msgstr "A Fegyver azonosító megjelenítés mint:"
+msgstr "A Fegyver ID megjelenítése mint:"
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:49
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:46
msgid "SHOWAS^None"
-msgstr "Nincs"
+msgstr "Sehogy"
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:50
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:47
msgid "Number"
-msgstr "Szám"
+msgstr "Számmal"
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:51
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:48
msgid "Bind"
-msgstr "Hozzárendelés"
+msgstr "Billentyű"
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:54
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:51
msgid "Show Accuracy"
msgstr "Pontosság mutatása"
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:55
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:52
msgid "Show Ammo"
msgstr "Lőszer mutatása"
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:58
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:55
msgid "Ammo bar color:"
msgstr "Lőszer jelző színe:"
-#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:64
+#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:61
msgid "Ammo bar alpha:"
-msgstr "Jelző átlátszóság:"
+msgstr "Lőszer jelző átlátszósága:"
#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:4
msgid "Panel HUD Setup"
-msgstr "HUD panel beállítás"
+msgstr "HUD panel beállítása"
#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:21
msgid "Panel background defaults:"
-msgstr "Alapértelmezett panel háttér :"
+msgstr "Alapértelmezett panel háttér:"
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:23 qcsrc/menu/xonotic/util.qc:587
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:23 qcsrc/menu/xonotic/util.qc:575
msgid "Background:"
msgstr "Háttér:"
#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:25
#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:37
#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:52
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:91 qcsrc/menu/xonotic/util.qc:590
-#: qcsrc/menu/xonotic/util.qc:606 qcsrc/menu/xonotic/util.qc:623
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:91 qcsrc/menu/xonotic/util.qc:578
+#: qcsrc/menu/xonotic/util.qc:594 qcsrc/menu/xonotic/util.qc:611
msgid "Disable"
msgstr "Letiltás"
#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:30
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:595
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:583
msgid "Color:"
msgstr "Szín:"
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:603
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:591
msgid "Border size:"
msgstr "Keret méret:"
msgid "Team color:"
msgstr "Csapat szín:"
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:629
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:617
msgid "Test team color in configure mode"
-msgstr "Csapat szín ellenörzés konfigurációs módban"
+msgstr "Csapat szín tesztelés beállítás közben"
-#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:61 qcsrc/menu/xonotic/util.qc:632
+#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:61 qcsrc/menu/xonotic/util.qc:620
msgid "Padding:"
msgstr "Kitöltés:"
#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:68
msgid "HUD Dock:"
-msgstr "HUD rögzítés:"
+msgstr "HUD rögzítők:"
#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:70
msgid "DOCK^Disabled"
-msgstr "Letiltott"
+msgstr "Letiltva"
#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:71
msgid "DOCK^Small"
#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:117
msgid "Exit setup"
-msgstr "Kilépés a beállitásokból"
+msgstr "Kilépés a beállításokból"
#: qcsrc/menu/xonotic/dialog_multiplayer.c:4
msgid "Multiplayer"
-msgstr "Többjátékos"
+msgstr "Többjátékos mód"
#: qcsrc/menu/xonotic/dialog_multiplayer.c:18
msgid "Servers"
-msgstr "Kiszolgálók"
+msgstr "Szerverek"
#: qcsrc/menu/xonotic/dialog_multiplayer.c:19
#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:5
#: qcsrc/menu/xonotic/dialog_multiplayer.c:21
#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:5
msgid "Player Setup"
-msgstr "Játékos beállítás"
+msgstr "Játékos beállítások"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:34
msgid "Game type:"
-msgstr "Játék típus:"
+msgstr "Játék típusa:"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:46
msgid "Match settings:"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:49
msgid "Time limit:"
-msgstr "Idő határ:"
+msgstr "Időhatár:"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:53
#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:61
msgid "Use map specified default"
-msgstr "Térképhez tartozó alapérték használata"
+msgstr "Pályához tartozó alapérték használata"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:56
#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:155
#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:162
#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:163
msgid "Point limit:"
-msgstr "Pont határ:"
+msgstr "Ponthatár:"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:64
msgid "Player slots:"
-msgstr "Összes játékos:"
+msgstr "Maximális játékosszám"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:67
msgid "Number of bots:"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:76
msgid "You will win"
-msgstr "Te nyersz"
+msgstr "Te fogsz nyerni"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:77
msgid "You can win"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:78
msgid "You might win"
-msgstr "Még legyőzheted"
+msgstr "Talán győzhetsz"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:79
msgid "Advanced"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:82
msgid "Assassin"
-msgstr "Gyilkos"
+msgstr "Gyilkológép"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:83
msgid "Unhuman"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:84
msgid "Godlike"
-msgstr "Isteni"
+msgstr "MAGA AZ ISTEN"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:88
msgid "Mutators..."
#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:104
msgid "Map list:"
-msgstr "Térképlista:"
+msgstr "Pályalista:"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:110
msgid "Select all"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:119
msgid "Start Multiplayer!"
-msgstr "Többjátékos indítás"
+msgstr "Többjátékos indítása!"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:154
msgid "Capture limit:"
-msgstr "Rablás határ:"
+msgstr "Zászlórablások száma:"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:158
msgid "Lives:"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.c:164
msgid "Frag limit:"
-msgstr "Frag határérték:"
+msgstr "Gyilok határérték:"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:6
msgid "Advanced server settings"
-msgstr "Haladó kiszolgáló beállítások"
+msgstr "Haladó szerver beállítások"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:25
msgid "Game settings:"
-msgstr "Játék beállításai:"
+msgstr "Játék beállítások:"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:28
msgid "Allow spectating"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:36
msgid "Game speed:"
-msgstr "Játék sebesség:"
+msgstr "Játék sebessége:"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:40
msgid "Teamplay settings:"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:43
msgid "Friendly fire scale:"
-msgstr "Baráti tűz mértéke:"
+msgstr "Csapattárs sebzés mértéke:"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:47
msgid "Virtual friendly fire (effect only)"
-msgstr "Látszólagos baráti tűz (csak hatás)"
+msgstr "Látszólagos csapattárs sebzés (csak látvány)"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:50
msgid "Friendly fire penalty:"
-msgstr "Baráti tűz büntetése:"
+msgstr "Csapattárs megsebzésének büntetése:"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:54
msgid "Virtual penalty (effect only)"
-msgstr "Látszólagos büntetés (csak hatás)"
+msgstr "Látszólagos büntetés (csak látvány)"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:57
msgid "Teams:"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:66
msgid "Map voting:"
-msgstr "Térkép szavazás:"
+msgstr "Pálya szavazás:"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:68
msgid "No voting"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:5
msgid "Map Information"
-msgstr "Térkép Információ"
+msgstr "Pálya Információ"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:49
msgid "Full item placement"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c:121
#, fuzzy
msgid "MAP^Play"
-msgstr "Indít"
+msgstr "Indítás"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:7
msgid "Mutators"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:68
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:167
msgid "Dodging"
-msgstr "Kitérés"
+msgstr "Félreugrás"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:70
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:250
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:86
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:173
msgid "Midair"
-msgstr "Levegőben"
+msgstr "Sebzés csak levegőben"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:88
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:176
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:164
msgid "Gameplay mutators:"
-msgstr "Játékmenet mutatorok:"
+msgstr "Játékmenet módosítók:"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:196
msgid "Weapon & item mutators:"
-msgstr "Fegyver és tárgy mutatorok:"
+msgstr "Fegyver és tárgy módosítók:"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:199
msgid "Grappling hook"
-msgstr "Vonókampó"
+msgstr "Vonóhorog"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:215
msgid "Weapon arenas:"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:218
msgid "Regular (no arena)"
-msgstr "Hagyományos (nincs aréna)"
+msgstr "Hagyományos (nincs módosítás)"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:239
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:256
#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:4
msgid "Demo"
-msgstr "Demó"
+msgstr "Demók"
#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:28
msgid "Record demos while playing"
-msgstr "Játék közben rögzitse a demókat"
+msgstr "Játék közben demók rögzítése"
#: qcsrc/menu/xonotic/dialog_multiplayer_demo.c:32
#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:28
#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:67
msgid "Info..."
-msgstr "Info..."
+msgstr "Infó..."
#: qcsrc/menu/xonotic/dialog_multiplayer_join.c:72
#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:317
msgid "Join!"
-msgstr "Csatlakozz!"
+msgstr "Csatlakozok!"
#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:5
msgid "Server Information"
#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:158
#, c-format
msgid "%d/%d, %d free player slots"
-msgstr "%d/%d, %d szabad játékos hely"
+msgstr "%d/%d, %d szabad férőhely"
#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:172
#, c-format
#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:197
msgid "N/A (can't connect)"
-msgstr "N/A (nem tud csatlakozni)"
+msgstr "N/A (nem tudok csatlakozni)"
#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:205
msgid "not supported (can't connect)"
-msgstr "nem támogatott (nem tud csatlakozni)"
+msgstr "nem támogatott (nem tudok csatlakozni)"
#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:207
msgid "not supported (won't encrypt)"
-msgstr "nem támogatott (nem titkositott)"
+msgstr "nem támogatott (nem titkosított)"
#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:211
msgid "supported (will encrypt)"
-msgstr "támogatott (titkositott)"
+msgstr "támogatott (titkosított)"
#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:213
msgid "supported (won't encrypt)"
-msgstr "támogatott (nem titkositott)"
+msgstr "támogatott (nem titkosított)"
#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:217
msgid "requested (will encrypt)"
-msgstr "kért (titkositott)"
+msgstr "kért (titkosított)"
#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:219
msgid "requested (won't encrypt)"
-msgstr "kért (nem titkositott)"
+msgstr "kért (nem titkosított)"
#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:223
msgid "required (can't connect)"
-msgstr "szükséges (nem tud csatlakozni)"
+msgstr "szükséges (nem tudok csatlakozni)"
#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:225
msgid "required (will encrypt)"
-msgstr "szükséges (titkositott)"
+msgstr "szükséges (titkosított)"
#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:246
#: qcsrc/menu/xonotic/dialog_multiplayer_join_serverinfo.c:269
msgid "Model:"
msgstr "Modell:"
+#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:87
+msgid "Force player models to mine"
+msgstr "Ellenség modelljeinek kényszerítése az enyémmel megegyezőre"
+
#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:88
msgid "Field of view:"
msgstr "Látómező:"
#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:92
msgid "View bobbing:"
-msgstr "Nézet kitérés:"
+msgstr "Fej biccenés:"
#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:96
msgid "Zoom factor:"
-msgstr "Nagyítás szorzó:"
+msgstr "Nagyítási szorzó:"
#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:100
msgid "Zoom speed:"
-msgstr "Nagyítás sebesség:"
+msgstr "Nagyítás sebessége:"
#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:103
msgid "Weapon settings..."
-msgstr "Fegyver beállítások..."
+msgstr "Fegyverzet beállítások..."
#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:110
msgid "Crosshair:"
#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:134
msgid "Crosshair alpha:"
-msgstr "Célkereszt átlátszóság:"
+msgstr "Célkereszt átlátszósága:"
#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:138
msgid "Crosshair color:"
#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:140
msgid "By health"
-msgstr "Életerőtöl függ"
+msgstr "Életerőtől függ"
#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:143
#, fuzzy
#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:148
msgid "Enable center dot"
-msgstr "Közép pont engedélyezés"
+msgstr "Középső pont engedélyezése"
#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:151
msgid "Size:"
#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:191
msgid "Damage splash:"
-msgstr "Sérülés szórás:"
+msgstr "Sérülési rázkódás:"
#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:195
#: qcsrc/menu/xonotic/dialog_settings_audio.c:173
#: qcsrc/menu/xonotic/dialog_settings_effects.c:194
-#: qcsrc/menu/xonotic/dialog_settings_input.c:74
#: qcsrc/menu/xonotic/dialog_settings_misc.c:30
#: qcsrc/menu/xonotic/dialog_settings_misc.c:41
#: qcsrc/menu/xonotic/dialog_settings_video.c:109
#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:23
msgid "Show base waypoints"
-msgstr "Alap iránypontok mutatása"
+msgstr "Bázis-iránypontok mutatása"
#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:25
msgid "Waypoint scale:"
-msgstr "Iránypont részletesség:"
+msgstr "Iránypontok mérete:"
#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:29
msgid "Waypoint alpha:"
-msgstr "Iránypont átlátszóság:"
+msgstr "Iránypontok átlátszósága:"
#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:34
msgid "Show names:"
#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:41
msgid "Use priority list for weapon cycling"
-msgstr "Az elsőbbségi listát használja a fegyverváltáshoz"
+msgstr "Az elsőbbségi listát használom a fegyverváltáshoz"
#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:43
msgid "Auto switch weapons on pickup"
#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:45
msgid "Draw 1st person weapon model"
-msgstr "1.személyű fegyver modell kirajzolása"
+msgstr "Kézben tartott fegyver kirajzolása"
#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:55
msgid "Flip view horizontally"
-msgstr "A nézet vízszintes dobása"
+msgstr "A képernyő vízszintes tükrözése"
#: qcsrc/menu/xonotic/dialog_news.c:4
msgid "News"
#: qcsrc/menu/xonotic/dialog_settings.c:19
#: qcsrc/menu/xonotic/dialog_settings_video.c:4
msgid "Video"
-msgstr "Kép"
+msgstr "Videó"
#: qcsrc/menu/xonotic/dialog_settings.c:20
#: qcsrc/menu/xonotic/dialog_settings_effects.c:4
#: qcsrc/menu/xonotic/dialog_settings_audio.c:41
msgid "VOL^Ambient:"
-msgstr "VOL^Környezeti:"
+msgstr "VOL^Háttérzajok:"
#: qcsrc/menu/xonotic/dialog_settings_audio.c:48
msgid "Info:"
#: qcsrc/menu/xonotic/dialog_settings_audio.c:69
msgid "Player:"
-msgstr "Játékos:"
+msgstr "Játékosok:"
#: qcsrc/menu/xonotic/dialog_settings_audio.c:76
msgid "Shots:"
#: qcsrc/menu/xonotic/dialog_settings_audio.c:133
msgid "VOCS^Taunts"
-msgstr "VOCS^Gúnyok"
+msgstr "VOCS^Gúnyolódás"
#: qcsrc/menu/xonotic/dialog_settings_audio.c:134
msgid "VOCS^All"
#: qcsrc/menu/xonotic/dialog_settings_audio.c:137
msgid "Taunt range:"
-msgstr "Gúny terjedés:"
+msgstr "Gúnyolódások hallhatósága:"
#: qcsrc/menu/xonotic/dialog_settings_audio.c:140
msgid "RNG^Very short"
-msgstr "RNG^Nagyon rövid"
+msgstr "RNG^Közvetlen közelről"
#: qcsrc/menu/xonotic/dialog_settings_audio.c:141
msgid "RNG^Short"
-msgstr "RNG^Rövid"
+msgstr "RNG^Közelről"
#: qcsrc/menu/xonotic/dialog_settings_audio.c:142
msgid "RNG^Normal"
#: qcsrc/menu/xonotic/dialog_settings_audio.c:143
msgid "RNG^Long"
-msgstr "RNG^Hosszú"
+msgstr "RNG^Távolról is"
#: qcsrc/menu/xonotic/dialog_settings_audio.c:144
msgid "RNG^Full"
-msgstr "RNG^Teljes"
+msgstr "RNG^Teljes pályán"
#: qcsrc/menu/xonotic/dialog_settings_audio.c:151
msgid "Automatic taunts"
-msgstr "Automatikus gúnyok"
+msgstr "Automatikus gúnyolódás"
#: qcsrc/menu/xonotic/dialog_settings_audio.c:160
msgid "Time warning:"
-msgstr "Idő figyelmeztetés:"
+msgstr "Időre figyelmeztetés:"
#: qcsrc/menu/xonotic/dialog_settings_audio.c:162
msgid "WRN^None"
-msgstr "Nincs"
+msgstr "Kikapcsolva"
#: qcsrc/menu/xonotic/dialog_settings_audio.c:163
msgid "1 minute"
#: qcsrc/menu/xonotic/dialog_settings_effects.c:38
msgid "Quality preset:"
-msgstr "Minőség sablon:"
+msgstr "Grafikai részletesség:"
#: qcsrc/menu/xonotic/dialog_settings_effects.c:41
msgid "PRE^OMG!"
-msgstr "PRE^OMG!"
+msgstr "PRE^ATYAÉG!"
#: qcsrc/menu/xonotic/dialog_settings_effects.c:42
msgid "PRE^Low"
#: qcsrc/menu/xonotic/dialog_settings_effects.c:46
msgid "PRE^Ultra"
-msgstr "PRE^Szélsőséges"
+msgstr "PRE^Nagyon magas"
#: qcsrc/menu/xonotic/dialog_settings_effects.c:48
msgid "PRE^Ultimate"
#: qcsrc/menu/xonotic/dialog_settings_effects.c:52
msgid "Geometry detail:"
-msgstr "Geometria részletesség:"
+msgstr "Geometriai részletesség:"
#: qcsrc/menu/xonotic/dialog_settings_effects.c:54
msgid "DET^Lowest"
#: qcsrc/menu/xonotic/dialog_settings_effects.c:91
#: qcsrc/menu/xonotic/dialog_settings_effects.c:94
msgid "Avoid lossy texture compression"
-msgstr "Kerülje a veszteséges textúra tömörítést"
+msgstr "Veszteséges textúra tömörítés kikapcsolása"
#: qcsrc/menu/xonotic/dialog_settings_effects.c:100
msgid "Anisotropy:"
#: qcsrc/menu/xonotic/dialog_settings_effects.c:110
msgid "Particle quality:"
-msgstr "Részecske minőség:"
+msgstr "Részecskék minősége:"
#: qcsrc/menu/xonotic/dialog_settings_effects.c:113
msgid "Particle distance:"
-msgstr "Részecske távolság:"
+msgstr "Részecskék megjelenítése:"
#: qcsrc/menu/xonotic/dialog_settings_effects.c:117
msgid "Decals"
-msgstr "Minták"
+msgstr "Vér- és égésnyomok"
#: qcsrc/menu/xonotic/dialog_settings_effects.c:118
msgid "Decals on models"
-msgstr "Minták a modellen"
+msgstr "Foltok a modelleken"
#: qcsrc/menu/xonotic/dialog_settings_effects.c:122
msgid "Distance:"
-msgstr "Távolsága:"
+msgstr "Megjelenítés távolsága:"
#: qcsrc/menu/xonotic/dialog_settings_effects.c:128
msgid "Time:"
-msgstr "Ideje:"
+msgstr "Eltűnés ideje"
#: qcsrc/menu/xonotic/dialog_settings_effects.c:134
msgid "Use lightmaps"
#: qcsrc/menu/xonotic/dialog_settings_effects.c:137
msgid "Gloss"
-msgstr "Fényes"
+msgstr "Csillogás"
#: qcsrc/menu/xonotic/dialog_settings_effects.c:140
msgid "Offset mapping"
#: qcsrc/menu/xonotic/dialog_settings_effects.c:145
msgid "Reflections:"
-msgstr "Tükrözödés:"
+msgstr "Tükröződés:"
#: qcsrc/menu/xonotic/dialog_settings_effects.c:148
msgid "Blurred"
#: qcsrc/menu/xonotic/dialog_settings_effects.c:159
msgid "Flash blend approximation"
-msgstr "Elnagyolt villanás keverés"
+msgstr "Elnagyolt villanások"
#: qcsrc/menu/xonotic/dialog_settings_effects.c:161
msgid "Realtime dynamic lighting"
#: qcsrc/menu/xonotic/dialog_settings_effects.c:170
msgid "Use normal maps"
-msgstr "Normál map használata"
+msgstr "Normal map használata"
#: qcsrc/menu/xonotic/dialog_settings_effects.c:172
msgid "Soft shadows"
#: qcsrc/menu/xonotic/dialog_settings_effects.c:176
msgid "Use Occlusion Queries"
-msgstr "Láthatósági ellenörzés"
+msgstr "Láthatósági ellenőrzés"
#: qcsrc/menu/xonotic/dialog_settings_effects.c:178
msgid "Bloom"
#: qcsrc/menu/xonotic/dialog_settings_effects.c:184
msgid "Motion blur:"
-msgstr "Mozgási elmosás:"
+msgstr "Mozgási elmosódás:"
#: qcsrc/menu/xonotic/dialog_settings_effects.c:189
msgid "Blur and sharpen postprocessing"
-msgstr "Elmosás és élesítés utófeldolgozás"
+msgstr "Elmosás és élesítés"
#: qcsrc/menu/xonotic/dialog_settings_input.c:26
msgid "Key bindings:"
-msgstr "Billentyű hozzárendelések:"
+msgstr "Billentyűzet-kiosztás:"
#: qcsrc/menu/xonotic/dialog_settings_input.c:31
msgid "Change key..."
-msgstr "Billentyű változtatás..."
+msgstr "Megváltoztatás..."
#: qcsrc/menu/xonotic/dialog_settings_input.c:35
msgid "Edit..."
#: qcsrc/menu/xonotic/dialog_settings_input.c:51
msgid "UI mouse speed:"
-msgstr "UI egér sebesség:"
+msgstr "Menü egér sebessége:"
#: qcsrc/menu/xonotic/dialog_settings_input.c:55
msgid "Mouse filter"
-msgstr "Egér simítás"
+msgstr "Egérmozgás simítása"
#: qcsrc/menu/xonotic/dialog_settings_input.c:57
msgid "Invert mouse"
msgid "\"enter console\" also closes"
msgstr "\"belépés a konzolba\" zár is"
-#: qcsrc/menu/xonotic/dialog_settings_input.c:72
-msgid "Holding jump key keeps jumping"
-msgstr ""
-
#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:5
msgid "User defined key bind"
-msgstr "Felhasználó által beállított billentyű"
+msgstr "Felhasználó által beállított parancsok"
#: qcsrc/menu/xonotic/dialog_settings_input_userbind.c:42
msgid "Command when pressed:"
#: qcsrc/menu/xonotic/dialog_settings_misc.c:49
msgid "Show current date"
-msgstr "Jelenlegi dátum mutatása"
+msgstr "Mai dátum mutatása"
#: qcsrc/menu/xonotic/dialog_settings_misc.c:51
msgid "Show frames per second"
-msgstr "A képkocka/s mutatása"
+msgstr "A képkocka/másodperc mutatása"
#: qcsrc/menu/xonotic/dialog_settings_misc.c:53
msgid "Minimize input latency"
#: qcsrc/menu/xonotic/dialog_settings_network.c:26
msgid "Client-side movement prediction"
-msgstr "Kliens-oldali mozgás jóslat"
+msgstr "Kliens-oldali mozgásbecslés"
#: qcsrc/menu/xonotic/dialog_settings_network.c:30
msgid "Show netgraph"
#: qcsrc/menu/xonotic/dialog_settings_network.c:33
msgid "Network speed:"
-msgstr "Hálózat sebesség:"
+msgstr "Hálózat sebessége:"
#: qcsrc/menu/xonotic/dialog_settings_network.c:35
msgid "56k"
#: qcsrc/menu/xonotic/dialog_settings_video.c:29
msgid "Font/UI size:"
-msgstr "Font/UI méret:"
+msgstr "Betük/Menü mérete:"
#: qcsrc/menu/xonotic/dialog_settings_video.c:31
msgid "SZ^Unreadable"
#: qcsrc/menu/xonotic/dialog_settings_video.c:46
msgid "Vertical Synchronization"
-msgstr "Szinkonizálás a képfrissítéshez"
+msgstr "Szinkonizálás a képernyő frissítéshez"
#: qcsrc/menu/xonotic/dialog_settings_video.c:49
msgid "Use OpenGL 2.0 shaders (GLSL)"
-msgstr "OpenGL 2.0 árnyalók (GLSL) használata"
+msgstr "OpenGL 2.0 shaderek (GLSL) használata"
#: qcsrc/menu/xonotic/dialog_settings_video.c:52
msgid "Use GLSL to handle color control"
#: qcsrc/menu/xonotic/dialog_singleplayer.c:4
msgid "Singleplayer"
-msgstr "Magányos játék"
+msgstr "Egyjátékos mód"
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:116
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:127
msgid "Instant action! (random map with bots)"
msgstr "Azonnali játék (véletlenszerű pálya botokkal)"
-#: qcsrc/menu/xonotic/dialog_singleplayer.c:137
+#: qcsrc/menu/xonotic/dialog_singleplayer.c:148
msgid "Start Singleplayer!"
-msgstr "Magányos játék indítása"
+msgstr "Egyjátékos mód indítása"
#: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:4
msgid "Winner"
#: qcsrc/menu/xonotic/dialog_teamselect.c:5
msgid "Team Selection"
-msgstr "Csapat választás"
+msgstr "Válassz csapatot!"
#: qcsrc/menu/xonotic/dialog_teamselect.c:41
msgid "join 'best' team (auto-select)"
-msgstr "Csatlakozás a 'legjobb' csapathoz (auto-választás)"
+msgstr "Csatlakozás a 'legjobb' csapathoz (automatikus-választás)"
#: qcsrc/menu/xonotic/dialog_teamselect.c:45
msgid "red"
#: qcsrc/menu/xonotic/dialog_teamselect.c:51
msgid "spectate"
-msgstr "Néző"
+msgstr "Nézőként csatlakozok"
#: qcsrc/menu/xonotic/mainwindow.c:35 qcsrc/menu/xonotic/mainwindow.c:38
msgid "Do not press this button again!"
msgid ""
"Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n"
msgstr ""
-"Jajj? Ezzel nem lehet játszani (m is NULL). Állítsd át a szürést, hogy ne "
+"Jajj? Ezzel nem lehet játszani (m is NULL). Állítsd át a szűrést, hogy ne "
"ismétlődjön meg!\n"
#: qcsrc/menu/xonotic/maplist.c:286
#, c-format
msgid "%s's Xonotic Server"
-msgstr "%s Xonotic kiszolgálója"
+msgstr "%s Xonotic szervere"
#: qcsrc/menu/xonotic/maplist.c:291
msgid ""
"again.\n"
msgstr ""
"Jajj? Ezzel nem lehet játszani (érvénytelen játék típus). Állítsd át a "
-"szürést, hogy ne ismétlődjön meg!\n"
+"szűrést, hogy ne ismétlődjön meg!\n"
"."
#: qcsrc/menu/xonotic/playermodel.c:174
#: qcsrc/menu/xonotic/serverlist.c:529
msgid "Map"
-msgstr "Térkép"
+msgstr "Pálya"
#: qcsrc/menu/xonotic/serverlist.c:530
msgid "Type"
#: qcsrc/menu/xonotic/slider_decibels.c:50
msgid "VOL^OFF"
-msgstr "Hangerő ki"
+msgstr "Kikapcsolva"
#: qcsrc/menu/xonotic/slider_decibels.c:52
msgid "VOL^MAX"
-msgstr "Hangerő maximum"
+msgstr "Maximum hangerő"
#: qcsrc/menu/xonotic/slider_decibels.c:53
#, c-format
msgid "%dx%d"
msgstr "%dx%d"
-#: qcsrc/menu/xonotic/util.qc:271
+#: qcsrc/menu/xonotic/util.qc:270
#, c-format
msgid "Received HTTP request data for an invalid id %d.\n"
msgstr "Érvénytelen HTTP adatkérés érkezett id %d.\n"
-#: qcsrc/menu/xonotic/util.qc:286
+#: qcsrc/menu/xonotic/util.qc:285
#, c-format
msgid "error receiving update notification: status is %d\n"
msgstr "Frissítési értesítési hiba: az állapota %d\n"
-#: qcsrc/menu/xonotic/util.qc:291
+#: qcsrc/menu/xonotic/util.qc:290
msgid "error: received HTML instead of an update notification\n"
msgstr "Hiba: frissítési értesítés helyett egy HTML-t kapott\n"
-#: qcsrc/menu/xonotic/util.qc:296
+#: qcsrc/menu/xonotic/util.qc:295
msgid "error: received carriage returns from update notification server\n"
msgstr "Hiba: a frissítés értesítő szerverről egy 'kocsi vissza'-t kapott\n"
-#: qcsrc/menu/xonotic/util.qc:317
+#: qcsrc/menu/xonotic/util.qc:316
#, c-format
msgid ""
"Update can be downloaded at:\n"
"Frissítés letölthető: \n"
"%s -ről\n"
-#: qcsrc/menu/xonotic/util.qc:340
+#: qcsrc/menu/xonotic/util.qc:337
msgid "Autogenerating mapinfo for newly added maps..."
-msgstr "MapInfo készítése az újonnan hozzáadott térképekhez..."
+msgstr "MapInfo készítése az újonnan hozzáadott pályákhoz..."
-#: qcsrc/menu/xonotic/util.qc:370
+#: qcsrc/menu/xonotic/util.qc:367
#, c-format
msgid "^1%s TEST BUILD"
msgstr "^1%s TEST BUILD"
-#: qcsrc/menu/xonotic/util.qc:428
+#: qcsrc/menu/xonotic/util.qc:432
#, c-format
msgid "Update to %s now!"
msgstr "Most frissítsd %s-re/ra!"
-#: qcsrc/menu/xonotic/util.qc:513
+#: qcsrc/menu/xonotic/util.qc:501
msgid ""
"^1ERROR: Texture compression is required but not supported.\n"
"^1Expect visual problems.\n"
msgstr ""
"^1Hiba: textúra tömörítés szükséges, de nem támogatott.\n"
-"^1Gondok lehetnek a látvánnyal.\n"
+"^1Gondok lehetnek a megjelenítéssel.\n"
-#: qcsrc/menu/xonotic/util.qc:535
+#: qcsrc/menu/xonotic/util.qc:523
msgid "Arena"
msgstr "Aréna"
-#: qcsrc/menu/xonotic/util.qc:536
+#: qcsrc/menu/xonotic/util.qc:524
msgid "Assault"
msgstr "Ostrom"
-#: qcsrc/menu/xonotic/util.qc:537
+#: qcsrc/menu/xonotic/util.qc:525
msgid "Capture The Flag"
-msgstr "Szerezd meg a zászlót"
+msgstr "Zászlórablás"
-#: qcsrc/menu/xonotic/util.qc:538
+#: qcsrc/menu/xonotic/util.qc:526
msgid "Clan Arena"
msgstr "Klán Aréna"
-#: qcsrc/menu/xonotic/util.qc:539
+#: qcsrc/menu/xonotic/util.qc:527
msgid "Deathmatch"
msgstr "Haláljátszma"
-#: qcsrc/menu/xonotic/util.qc:540
+#: qcsrc/menu/xonotic/util.qc:528
msgid "Domination"
msgstr "Uralom"
-#: qcsrc/menu/xonotic/util.qc:541
+#: qcsrc/menu/xonotic/util.qc:529
msgid "Freeze Tag"
msgstr "Fagyasztás"
-#: qcsrc/menu/xonotic/util.qc:542
+#: qcsrc/menu/xonotic/util.qc:530
msgid "Keepaway"
-msgstr "Távolságtartás"
+msgstr "Önzőség"
-#: qcsrc/menu/xonotic/util.qc:543
+#: qcsrc/menu/xonotic/util.qc:531
msgid "Key Hunt"
msgstr "Kulcsvadászat"
-#: qcsrc/menu/xonotic/util.qc:544
+#: qcsrc/menu/xonotic/util.qc:532
msgid "Last Man Standing"
msgstr "Csak egy maradhat"
-#: qcsrc/menu/xonotic/util.qc:545
+#: qcsrc/menu/xonotic/util.qc:533
msgid "Nexball"
msgstr "Nexball"
-#: qcsrc/menu/xonotic/util.qc:546
+#: qcsrc/menu/xonotic/util.qc:534
msgid "Onslaught"
msgstr "Támadás"
-#: qcsrc/menu/xonotic/util.qc:547
+#: qcsrc/menu/xonotic/util.qc:535
msgid "Race"
msgstr "Verseny"
-#: qcsrc/menu/xonotic/util.qc:548
+#: qcsrc/menu/xonotic/util.qc:536
msgid "Race CTS"
msgstr "Ügyességi verseny"
-#: qcsrc/menu/xonotic/util.qc:549
+#: qcsrc/menu/xonotic/util.qc:537
msgid "Runematch"
msgstr "Rúnameccs"
-#: qcsrc/menu/xonotic/util.qc:550
+#: qcsrc/menu/xonotic/util.qc:538
msgid "Team Deathmatch"
msgstr "Csapat[os] öldöklés "
-#: qcsrc/menu/xonotic/util.qc:569
+#: qcsrc/menu/xonotic/util.qc:557
#, c-format
msgid "@!#%'n Tuba Throwing"
msgstr "@!#%'n Tuba Dobás"
-#: qcsrc/menu/xonotic/util.qc:589 qcsrc/menu/xonotic/util.qc:605
-#: qcsrc/menu/xonotic/util.qc:614 qcsrc/menu/xonotic/util.qc:622
-#: qcsrc/menu/xonotic/util.qc:634
+#: qcsrc/menu/xonotic/util.qc:577 qcsrc/menu/xonotic/util.qc:593
+#: qcsrc/menu/xonotic/util.qc:602 qcsrc/menu/xonotic/util.qc:610
+#: qcsrc/menu/xonotic/util.qc:622
msgid "Default"
msgstr "Alapértelmezett"
-#: qcsrc/menu/xonotic/util.qc:600
+#: qcsrc/menu/xonotic/util.qc:588
msgid "Use default"
msgstr "Alapértékek használata"
-#: qcsrc/menu/xonotic/util.qc:620
+#: qcsrc/menu/xonotic/util.qc:608
msgid "Team Color:"
msgstr "Csapat színe:"
#: qcsrc/menu/xonotic/util.qh:47
msgid "Enable panel"
-msgstr "Panel engedélyezés"
+msgstr "Panel engedélyezése"
#: qcsrc/server/w_crylink.qc:2
msgid "Crylink"
#: qcsrc/server/w_crylink.qc:671
#, c-format
msgid "%s could not hide from %s's Crylink"
-msgstr "%s nem tudott elrejtözni %s Crylinkje elöl"
+msgstr "%s nem menekülhetett %s Crylinkje elől"
#: qcsrc/server/w_crylink.qc:673
#, c-format
msgid "%s was too close to %s's Crylink"
-msgstr "%s túl közel volt %s Crylinkjéhez"
+msgstr "%s túl közel hajolt %s Crylinkjéhez"
#: qcsrc/server/w_crylink.qc:675
#, c-format
msgid "%s took a close look at %s's Crylink"
-msgstr "%s közelebbről megnézte %s Crylinkjét"
+msgstr "%s közelebbről megleste %s Crylinkjét"
#: qcsrc/server/w_electro.qc:2
msgid "Electro"
#: qcsrc/server/w_electro.qc:574
#, c-format
msgid "%s could not remember where they put plasma"
-msgstr "%s nem emlékszik hová rakták a plazmát"
+msgstr "%s nem tudja, hogy mire való a plazma"
#: qcsrc/server/w_electro.qc:576
#, c-format
msgid "%s played with plasma"
-msgstr "%s játszott a plazmával"
+msgstr "%s plazmával játszadozott"
#: qcsrc/server/w_electro.qc:583
#, c-format
msgid "%s just noticed %s's blue ball"
-msgstr "%s csak most vette észre %s kék labdáját"
+msgstr "%s csak most vette észre %s kék golyóját"
#: qcsrc/server/w_electro.qc:585
#, c-format
msgid "%s got in touch with %s's blue ball"
-msgstr "%s érintkezésbe került %s kék labdájával"
+msgstr "%s lefejelte %s kék golyóját"
#: qcsrc/server/w_electro.qc:590
#, c-format
msgid "%s felt the electrifying air of %s's combo"
-msgstr "%s érezte %s kombójának fetöltödött levegőjét "
+msgstr "%s felvillanyozódott %s kombójától"
#: qcsrc/server/w_electro.qc:592
#, c-format
#: qcsrc/server/w_fireball.qc:417
#, c-format
msgid "%s forgot about some firemine"
-msgstr "%s megfeledkezett pár tűzaknáról"
+msgstr "%s megfeledkezett pár gyújtóbombáról"
#: qcsrc/server/w_fireball.qc:419 qcsrc/server/w_hlac.qc:240
#, c-format
msgid "%s should have used a smaller gun"
-msgstr "%s -nak egy kisebb pisztolyt kellett volna hsaználnia"
+msgstr "%s játszott volna vízipisztollyal "
#: qcsrc/server/w_fireball.qc:426
#, c-format
msgid "%s tried to catch %s's firemine"
-msgstr "%s megpróbálta elkapni %s tűzaknáját"
+msgstr "%s megpróbálta elkapni %s gyújtóbombáját"
#: qcsrc/server/w_fireball.qc:428
#, c-format
msgid "%s fatefully ignored %s's firemine"
-msgstr "%s végzetesen figyelmen kívül hagyta %s tűzaknájat"
+msgstr "%s már tudja, hogy %s gyújtóbombájának figyelmen kívül hagyása végzetes."
#: qcsrc/server/w_fireball.qc:435
#, c-format
#: qcsrc/server/w_fireball.qc:437
#, c-format
msgid "%s saw the pretty lights of %s's fireball"
-msgstr "%s látta %s tűzgolyójának szép fényeit"
+msgstr "%s látthatta %s tűzgolyójának csinos fényeit"
#: qcsrc/server/w_fireball.qc:440
#, c-format
msgid "%s got too close to %s's fireball"
-msgstr "%s túl közel volt %s tűzgolyójához"
+msgstr "%s túl közel merészkedett %s tűzgolyójához"
#: qcsrc/server/w_fireball.qc:442
#, c-format
#: qcsrc/server/w_grenadelauncher.qc:393
#, c-format
msgid "%s almost dodged %s's grenade"
-msgstr "%s majdnem elkerülte %s gránátját"
+msgstr "%s majdnem kicselezte %s gránátját"
#: qcsrc/server/w_grenadelauncher.qc:395
#, c-format
#: qcsrc/server/w_hagar.qc:399
#, c-format
msgid "%s hoped %s's missiles wouldn't bounce"
-msgstr "%s remélt, hogy %s rakétája nem fog pattani"
+msgstr "%s remélte, hogy %s rakétája nem éri el"
#: qcsrc/server/w_hagar.qc:401 qcsrc/server/w_seeker.qc:661
#, c-format
msgid "%s was pummeled by %s"
-msgstr "%s -t eltalálta %s"
+msgstr "%s -t ledarálta %s Hagarja"
#: qcsrc/server/w_hlac.qc:2
msgid "Heavy Laser Assault Cannon"
#: qcsrc/server/w_hook.qc:266 qcsrc/server/w_porto.qc:296
#, c-format
msgid "%s did the impossible"
-msgstr "%s megtette a lehetetlent"
+msgstr "%s megcsinálta a lehetetlent"
#: qcsrc/server/w_hook.qc:268
#, c-format
#: qcsrc/server/w_laser.qc:311
#, c-format
msgid "%s lasered themself to hell"
-msgstr "%s a pokolba lézerezte magát"
+msgstr "%s magán lézershowja rosszul sült el"
#: qcsrc/server/w_laser.qc:315
#, c-format
#: qcsrc/server/w_laser.qc:317
#, c-format
msgid "%s was lasered to death by %s"
-msgstr "%s meghalt %s lézere által"
+msgstr "%s meghalt %s lézere által"
#: qcsrc/server/w_minelayer.qc:2
#, fuzzy
#: qcsrc/server/w_minstanex.qc:295 qcsrc/server/w_nex.qc:255
#, c-format
msgid "%s has been vaporized by %s"
-msgstr "%s -t elgőzösítette %s "
+msgstr "%s -t gázzá vált %s által"
#: qcsrc/server/w_nex.qc:2
#, fuzzy
#: qcsrc/server/w_rifle.qc:233
#, c-format
msgid "%s shot themself automatically"
-msgstr "%s saját magát lőtte le"
+msgstr "%s saját magát lőtte agyon"
#: qcsrc/server/w_rifle.qc:235
#, c-format
msgid "%s sniped themself somehow"
-msgstr "%s-t levadászta magát valahogy"
+msgstr "%s-t levadászta saját magát valahogy"
#: qcsrc/server/w_rifle.qc:242
#, c-format
msgid "%s failed to hide from %s's bullet hail"
-msgstr "%s -nak nem sikerült elbújnia %s töltényzápora elöl "
+msgstr "%s -nak nem sikerült elbújnia %s golyózápora elől "
#: qcsrc/server/w_rifle.qc:244
#, c-format
msgid "%s died in %s's bullet hail"
-msgstr "%s meghalt %s töltényzáporában"
+msgstr "%s meghalt %s golyózáporában"
#: qcsrc/server/w_rifle.qc:251
#, c-format
#: qcsrc/server/w_rocketlauncher.qc:507
#, c-format
msgid "%s almost dodged %s's rocket"
-msgstr "%s majdnem elkerülte %s rakétáját"
+msgstr "%s majdnem kicselezte %s rakétáját"
#: qcsrc/server/w_rocketlauncher.qc:509
#, c-format
msgid "%s ate %s's rocket"
-msgstr "%s bekapta %s rakétáját"
+msgstr "%s megette %s rakétáját"
#: qcsrc/server/w_seeker.qc:2
msgid "T.A.G. Seeker"
#: qcsrc/server/w_shotgun.qc:219
#, c-format
msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun"
-msgstr "%2$s ^7slapped %1$s ^7egy kicsit egy nagy ^2shotgun"
+msgstr "%2$s ^7úgy elverte %1$s -t ^7 a ^2puskályával, mintha ^7szívlapáttal csapta volna agyon"
#: qcsrc/server/w_shotgun.qc:221
#, c-format
#: qcsrc/server/w_tuba.qc:252
#, c-format
msgid "%s hurt his own ears with the @!#%%'n Tuba"
-msgstr "%s saját fülét is sértette a @!#%%'n Tubával"
+msgstr "%s se bírta tovább a @!#%%'n Tuba hangját"
#: qcsrc/server/w_tuba.qc:256
#, c-format
#: qcsrc/server/w_uzi.qc:323
#, c-format
msgid "%s was riddled full of holes by %s"
-msgstr "%s tele lett lyukakkal %s-tól"
+msgstr "%s -t %s szitává lyuggatta"
-#~ msgid "%d/%d"
-#~ msgstr "%d/%d"
+#, fuzzy
+#~ msgid "Damage & water blur"
+#~ msgstr "Sérülés és víz elmosás"
-#~ msgid "Waypoint settings:"
-#~ msgstr "Iránypont beállítások:"
+#, fuzzy
+#~ msgid "Powerup sharpen"
+#~ msgstr "Powerup élesítés"
-#~ msgid ""
-#~ "Please answer a few initial questions to enhance the game experience."
-#~ msgstr ""
-#~ "A jobb játékélmény érdekében, kérlek, válaszolj pár inditó kérdésre!"
+#~ msgid "Speedometer"
+#~ msgstr "Sebességmérő"
-#~ msgid "Accelerometer scale:"
-#~ msgstr "Gyorsulásmérő beosztás:"
+#~ msgid "qu/s (hidden)"
+#~ msgstr "qu/s (rejtett)"
#~ msgid "Show accelerometer"
#~ msgstr "Gyorsulásmérő mutatása"
-#~ msgid "qu/s (hidden)"
-#~ msgstr "qu/s (rejtett)"
+#~ msgid "Accelerometer scale:"
+#~ msgstr "Gyorsulásmérő beosztás:"
-#~ msgid "Speedometer"
-#~ msgstr "Sebességmérő"
+#~ msgid ""
+#~ "Please answer a few initial questions to enhance the game experience."
+#~ msgstr ""
+#~ "A jobb játékélmény érdekében, kérlek, válaszolj pár inditó kérdésre!"
-#, fuzzy
-#~ msgid "Powerup sharpen"
-#~ msgstr "Powerup élesítés"
+#~ msgid "Waypoint settings:"
+#~ msgstr "Iránypont beállítások:"
-#, fuzzy
-#~ msgid "Damage & water blur"
-#~ msgstr "Sérülés és víz elmosás"
+#~ msgid "%d/%d"
+#~ msgstr "%d/%d"
#define DP_CSQC_ENTITY_REMOVE_IS_B0RKED
-void cvar_clientsettemp(string cv, string val)
-{
- entity e;
- for(e = world; (e = find(e, classname, "saved_cvar_value")); )
- if(e.netname == cv)
- goto saved;
- e = spawn();
- e.classname = "saved_cvar_value";
- e.netname = strzone(cv);
- e.message = strzone(cvar_string(cv));
-:saved
- cvar_set(cv, val);
-}
-
-void cvar_clientsettemp_restore()
-{
- entity e;
- for(e = world; (e = find(e, classname, "saved_cvar_value")); )
- cvar_set(e.netname, e.message);
-}
-
void menu_show_error()
{
drawstring('0 200 0', _("ERROR - MENU IS VISIBLE BUT NO MENU WAS DEFINED!"), '8 8 0', '1 0 0', 1, 0);
GetTeam(COLOR_SPECTATOR, true); // add specs first
+ // needs to be done so early because of the constants they create
RegisterWeapons();
+ RegisterGametypes();
WaypointSprite_Load();
}
// CSQC_Shutdown : Called every time the CSQC code is shutdown (changing maps, quitting, etc)
-void CSQC_Shutdown(void)
+void Shutdown(void)
{
#ifdef USE_FTE
#pragma TARGET id
db_save(ClientProgsDB, "client.db");
db_close(ClientProgsDB);
- cvar_clientsettemp_restore();
-
if(camera_active)
cvar_set("chase_active",ftos(chase_active_backup));
if(argv(0) == "help" || argc == 0)
{
print(_("Usage: cl_cmd COMMAND..., where possible commands are:\n"));
- print(_(" settemp cvar value\n"));
print(_(" scoreboard_columns_set ...\n"));
print(_(" scoreboard_columns_help\n"));
GameCommand_Generic("help");
else
hud_panel_radar_maximized = (stof(argv(1)) != 0);
}
- else if(cmd == "settemp") {
- cvar_clientsettemp(argv(1), argv(2));
- }
else if(cmd == "scoreboard_columns_set") {
Cmd_HUD_SetFields(argc);
}
case ENT_CLIENT_ACCURACY: Ent_ReadAccuracy(); break;
case ENT_CLIENT_AUXILIARYXHAIR: Net_AuXair2(bIsNewEntity); break;
case ENT_CLIENT_TURRET: ent_turret(); break;
- case ENT_CLIENT_MODEL: CSQCModel_Read(); break;
+ case ENT_CLIENT_MODEL: CSQCModel_Read(bIsNewEntity); break;
default:
//error(strcat(_("unknown entity type in CSQC_Ent_Update: %d\n"), self.enttype));
error(sprintf(_("Unknown entity type in CSQC_Ent_Update (enttype: %d, edict: %d, classname: %s)\n"), self.enttype, num_for_edict(self), self.classname));
{
if not(isdemo())
{
- localcmd("\n_cl_hook_gamestart ", GametypeNameFromType(gametype), "\n");
+ localcmd("\n_cl_hook_gamestart ", MapInfo_Type_ToString(gametype), "\n");
calledhooks |= HOOK_START;
}
}
{
float i;
self.classname = "ent_client_scores_info";
- gametype = ReadByte();
+ gametype = ReadInt24_t();
for(i = 0; i < MAX_SCORE; ++i)
{
scores_label[i] = strzone(ReadString());
vector p, dir, ang, q, nextdir;
float idx, portal_number, portal1_idx;
- if(activeweapon != WEP_PORTO || spectatee_status || gametype == GAME_NEXBALL)
+ if(activeweapon != WEP_PORTO || spectatee_status || gametype == MAPINFO_TYPE_NEXBALL)
return;
if(intermission == 1)
return;
if(menu_visible)
menu_show();
- /*if(gametype == GAME_CTF)
+ /*if(gametype == MAPINFO_TYPE_CTF)
{
ctf_view();
} else */
//else
{
- if(gametype == GAME_FREEZETAG)
+ if(gametype == MAPINFO_TYPE_FREEZETAG)
{
if(getstati(STAT_FROZEN))
drawfill('0 0 0', eX * vid_conwidth + eY * vid_conheight, '0.25 0.90 1', autocvar_hud_colorflash_alpha, DRAWFLAG_ADDITIVE);
{
// do some accuracy var caching
float i;
- if(!(gametype == GAME_RACE || gametype == GAME_CTS))
+ if(!(gametype == MAPINFO_TYPE_RACE || gametype == MAPINFO_TYPE_CTS))
{
if(autocvar_accuracy_color_levels != acc_color_levels)
{
-
+.float isplayermodel;
// FEATURE: LOD
.float lodmodelindex0;
self.frame3 = self.csqcmodel_saveframe3;
self.frame4 = self.csqcmodel_saveframe4;
}
-void CSQCPlayer_FallbackFrame_PostUpdate(void)
+void CSQCPlayer_FallbackFrame_PostUpdate(float isnew)
{
self.csqcmodel_saveframe = self.frame;
self.csqcmodel_saveframe2 = self.frame2;
self.csqcmodel_saveframe3 = self.frame3;
self.csqcmodel_saveframe4 = self.frame4;
+
+ // hack for death animations: set their frametime to zero in case a
+ // player "pops in"
+ if(isnew)
+ {
+#define FIX_FRAMETIME(f,ft) \
+ switch(self.f) \
+ { \
+ case 0: \
+ case 1: \
+ self.ft = 0; \
+ break; \
+ }
+ FIX_FRAMETIME(frame, frame1time)
+ FIX_FRAMETIME(frame2, frame2time)
+ FIX_FRAMETIME(frame3, frame3time)
+ FIX_FRAMETIME(frame4, frame4time)
+ }
}
float CSQCPlayer_FallbackFrame(float f)
{
else
self.drawmask = MASK_NORMAL;
- if(isplayer)
+ if(self.isplayermodel) // this checks if it's a player MODEL!
{
CSQCPlayer_GlowMod_Apply();
CSQCPlayer_ForceModel_Apply(islocalplayer);
CSQCPlayer_FallbackFrame_Apply();
}
- if(!isplayer)
+ if(!isplayer) // this checks if it's a player SLOT!
CSQCModel_AutoTagIndex_Apply();
CSQCModel_Effects_Apply();
}
-void CSQCModel_Hook_PreUpdate(float isplayer, float islocalplayer)
+void CSQCModel_Hook_PreUpdate(float isnew, float isplayer, float islocalplayer)
{
+ // revert to values from server
CSQCModel_Effects_PreUpdate();
- if(isplayer)
+ if(self.isplayermodel)
{
- // revert to values from server
CSQCPlayer_FallbackFrame_PreUpdate();
CSQCPlayer_ForceModel_PreUpdate();
}
}
-void CSQCModel_Hook_PostUpdate(float isplayer, float islocalplayer)
+void CSQCModel_Hook_PostUpdate(float isnew, float isplayer, float islocalplayer)
{
- if(isplayer)
+ // is it a player model? (shared state)
+ self.isplayermodel = (substring(self.model, 0, 14) == "models/player/");
+
+ // save values set by server
+ if(self.isplayermodel)
{
- // save values set by server
CSQCPlayer_ForceModel_PostUpdate();
- CSQCPlayer_FallbackFrame_PostUpdate();
+ CSQCPlayer_FallbackFrame_PostUpdate(isnew);
}
CSQCModel_Effects_PostUpdate();
}
alsoprint = (autocvar_hud_panel_notify_print || !panel_enabled); // print message to console if: notify panel disabled, or cvar to do so enabled
gentle = (autocvar_cl_gentle || autocvar_cl_gentle_messages);
- if ((msg == MSG_SUICIDE || msg == MSG_KILL || msg == MSG_KILL_ACTION) && gametype == GAME_CTS) // selfkill isn't interesting in CTS and only spams up the notify panel
+ if ((msg == MSG_SUICIDE || msg == MSG_KILL || msg == MSG_KILL_ACTION) && gametype == MAPINFO_TYPE_CTS) // selfkill isn't interesting in CTS and only spams up the notify panel
return;
if(msg == MSG_SUICIDE) {
if(!autocvar__hud_configure)
{
if(!autocvar_hud_panel_score) return;
- if(spectatee_status == -1 && (gametype == GAME_RACE || gametype == GAME_CTS)) return;
+ if(spectatee_status == -1 && (gametype == MAPINFO_TYPE_RACE || gametype == MAPINFO_TYPE_CTS)) return;
}
else
hud_configure_active_panel = HUD_PANEL_SCORE;
if(!autocvar__hud_configure)
{
if(!autocvar_hud_panel_racetimer) return;
- if(!(gametype == GAME_RACE || gametype == GAME_CTS)) return;
+ if(!(gametype == MAPINFO_TYPE_RACE || gametype == MAPINFO_TYPE_CTS)) return;
if(spectatee_status == -1) return;
}
else
void HUD_VoteWindow(void)
{
- if(autocvar_cl_allow_uid2name == -1 && (gametype == GAME_CTS || gametype == GAME_RACE || (serverflags & SERVERFLAG_PLAYERSTATS)))
+ if(autocvar_cl_allow_uid2name == -1 && (gametype == MAPINFO_TYPE_CTS || gametype == MAPINFO_TYPE_RACE || (serverflags & SERVERFLAG_PLAYERSTATS)))
{
vote_active = 1;
if (autocvar__hud_configure)
// clientside personal record
string rr;
- if(gametype == GAME_CTS)
+ if(gametype == MAPINFO_TYPE_CTS)
rr = CTS_RECORD;
else
rr = RACE_RECORD;
if(!autocvar__hud_configure)
{
if(!autocvar_hud_panel_modicons) return;
- if (gametype != GAME_CTF && gametype != GAME_KEYHUNT && gametype != GAME_NEXBALL && gametype != GAME_CTS && gametype != GAME_RACE && gametype != GAME_CA && gametype != GAME_FREEZETAG && gametype != GAME_KEEPAWAY && gametype != GAME_DOMINATION) return;
+ if (gametype != MAPINFO_TYPE_CTF && gametype != MAPINFO_TYPE_KEYHUNT && gametype != MAPINFO_TYPE_NEXBALL && gametype != MAPINFO_TYPE_CTS && gametype != MAPINFO_TYPE_RACE && gametype != MAPINFO_TYPE_CA && gametype != MAPINFO_TYPE_FREEZETAG && gametype != MAPINFO_TYPE_KEEPAWAY && gametype != MAPINFO_TYPE_DOMINATION) return;
}
else
hud_configure_active_panel = HUD_PANEL_MODICONS;
}
// these MUST be ran in order to update mod_active
- if(gametype == GAME_KEYHUNT)
+ if(gametype == MAPINFO_TYPE_KEYHUNT)
HUD_Mod_KH(pos, mySize);
- else if(gametype == GAME_CTF || autocvar__hud_configure)
+ else if(gametype == MAPINFO_TYPE_CTF || autocvar__hud_configure)
HUD_Mod_CTF(pos, mySize); // forcealpha only needed for ctf icons, as only they are shown in config mode
- else if(gametype == GAME_NEXBALL)
+ else if(gametype == MAPINFO_TYPE_NEXBALL)
HUD_Mod_NexBall(pos, mySize);
- else if(gametype == GAME_CTS || gametype == GAME_RACE)
+ else if(gametype == MAPINFO_TYPE_CTS || gametype == MAPINFO_TYPE_RACE)
HUD_Mod_Race(pos, mySize);
- else if(gametype == GAME_CA || gametype == GAME_FREEZETAG)
+ else if(gametype == MAPINFO_TYPE_CA || gametype == MAPINFO_TYPE_FREEZETAG)
HUD_Mod_CA(pos, mySize);
- else if(gametype == GAME_DOMINATION)
+ else if(gametype == MAPINFO_TYPE_DOMINATION)
HUD_Mod_Dom(pos, mySize);
- else if(gametype == GAME_KEEPAWAY)
+ else if(gametype == MAPINFO_TYPE_KEEPAWAY)
HUD_Mod_Keepaway(pos, mySize);
}
s = sprintf(_("^1Press ^3%s^1 for gamemode info"), getcommandkey("server info", "+show_info"));
drawInfoMessage(s)
- if(gametype == GAME_ARENA)
+ if(gametype == MAPINFO_TYPE_ARENA)
s = _("^1Wait for your turn to join");
- else if(gametype == GAME_LMS)
+ else if(gametype == MAPINFO_TYPE_LMS)
{
entity sk;
sk = playerslots[player_localnum];
drawInfoMessage(s)
}
- if(teamplay && !intermission && !spectatee_status && gametype != GAME_CA && teamnagger)
+ if(teamplay && !intermission && !spectatee_status && gametype != MAPINFO_TYPE_CA && teamnagger)
{
float ts_min, ts_max;
tm = teams.sort_next;
{
if(!autocvar_hud_panel_physics) return;
if(spectatee_status == -1 && (autocvar_hud_panel_physics == 1 || autocvar_hud_panel_physics == 3)) return;
- if(autocvar_hud_panel_physics == 3 && !(gametype == GAME_RACE || gametype == GAME_CTS)) return;
+ if(autocvar_hud_panel_physics == 3 && !(gametype == MAPINFO_TYPE_RACE || gametype == MAPINFO_TYPE_CTS)) return;
}
else
hud_configure_active_panel = HUD_PANEL_PHYSICS;
void HUD_Reset (void)
{
// reset gametype specific icons
- if(gametype == GAME_KEYHUNT)
+ if(gametype == MAPINFO_TYPE_KEYHUNT)
HUD_Mod_KH_Reset();
- else if(gametype == GAME_CTF)
+ else if(gametype == MAPINFO_TYPE_CTF)
HUD_Mod_CTF_Reset();
}
float hud;
float view_quality;
-
-void cvar_clientsettemp(string cv, string val);
return 1;
else if (intermission == 2)
return 0;
- else if (spectatee_status != -1 && getstati(STAT_HEALTH) <= 0 && autocvar_cl_deathscoreboard && gametype != GAME_CTS)
+ else if (spectatee_status != -1 && getstati(STAT_HEALTH) <= 0 && autocvar_cl_deathscoreboard && gametype != MAPINFO_TYPE_CTS)
return 1;
else if (scoreboard_showscores_force)
return 1;
}
}
- if(gametype == GAME_CTS || gametype == GAME_RACE) {
+ if(gametype == MAPINFO_TYPE_CTS || gametype == MAPINFO_TYPE_RACE) {
if(race_speedaward) {
drawcolorcodedstring(pos, sprintf(_("Speed award: %d ^7(%s^7)"), race_speedaward, race_speedaward_holder), hud_fontsize, scoreboard_alpha_fg, DRAWFLAG_NORMAL);
pos_y += 1.25 * hud_fontsize_y;
tl = getstatf(STAT_TIMELIMIT);
fl = getstatf(STAT_FRAGLIMIT);
ll = getstatf(STAT_LEADLIMIT);
- if(gametype == GAME_LMS)
+ if(gametype == MAPINFO_TYPE_LMS)
{
if(tl > 0)
str = strcat(str, sprintf(_(" for up to ^1%1.0f minutes^7"), tl));
if(sf & TNSF_ANG)
{
+ if(self.tur_head == world) // aparenly this can happpen before TNSF_SETUP. great.
+ self.tur_head = spawn();
+
self.tur_head.move_angles_x = ReadShort();
self.tur_head.move_angles_y = ReadShort();
//self.tur_head.angles = self.angles + self.tur_head.move_angles;
if(sf & TNSF_AVEL)
{
+ if(self.tur_head == world) // aparenly this can happpen before TNSF_SETUP. great.
+ self.tur_head = spawn();
+
self.tur_head.move_avelocity_x = ReadShort();
self.tur_head.move_avelocity_y = ReadShort();
}
if(sf & TNSF_STATUS)
{
float _tmp;
- _tmp = ReadByte();
+ _tmp = ReadByte();
if(_tmp != self.team)
{
self.team = _tmp;
case "item-extralife": return 2;
case "item-speed": return 2;
case "item-strength": return 2;
- case "item-shueld": return 2;
+ case "item-shield": return 2;
case "item-fuelregen": return 2;
case "item-jetpack": return 2;
case "tagged-target": return 2;
// Revision 22: hook shot origin
#define CSQC_REVISION 22
-// probably put these in common/
-// so server/ and client/ can be synced better
-const float GAME_DEATHMATCH = 1;
-const float GAME_TEAM_DEATHMATCH = 2;
-const float GAME_DOMINATION = 3;
-const float GAME_CTF = 4;
-const float GAME_RUNEMATCH = 5;
-const float GAME_LMS = 6;
-const float GAME_ARENA = 7;
-const float GAME_KEYHUNT = 8;
-const float GAME_ASSAULT = 9;
-const float GAME_ONSLAUGHT = 10;
-const float GAME_RACE = 11;
-const float GAME_NEXBALL = 12;
-const float GAME_CTS = 13;
-const float GAME_CA = 14;
-const float GAME_FREEZETAG = 15;
-const float GAME_KEEPAWAY = 16;
-
const float AS_STRING = 1;
const float AS_INT = 2;
const float AS_FLOAT_TRUNCATED = 2;
// add hook function calls here
#define CSQCMODEL_HOOK_PREUPDATE \
- CSQCModel_Hook_PreUpdate(isplayer, islocalplayer);
+ CSQCModel_Hook_PreUpdate(isnew, isplayer, islocalplayer);
#define CSQCMODEL_HOOK_POSTUPDATE \
- CSQCModel_Hook_PostUpdate(isplayer, islocalplayer);
+ CSQCModel_Hook_PostUpdate(isnew, isplayer, islocalplayer);
#define CSQCMODEL_HOOK_PREDRAW \
CSQCModel_Hook_PreDraw(isplayer, islocalplayer);
#define CSQCPLAYER_HOOK_POSTCAMERASETUP
print(" addtolist variable addedvalue\n");
print(" records\n");
print(" rankings (map argument optional)\n");
+ print(" settemp cvar value\n");
+ print(" settemp_restore\n");
return TRUE;
}
return TRUE;
#endif
}
+ else if(argv(0) == "settemp") {
+ cvar_settemp(argv(1), argv(2));
+ return TRUE;
+ }
+ else if(argv(0) == "settemp_restore") {
+ cvar_settemp_restore();
+ return TRUE;
+ }
return FALSE;
}
{
sa = car(s);
if(sa != "")
- if(cvar("g_ctf_win_mode") < 2)
- cvar_set("fraglimit", sa);
+ cvar_set("fraglimit", sa);
s = cdr(s);
}
string _MapInfo_GetDefaultEx(float t)
{
- switch(t)
- {
- case MAPINFO_TYPE_DEATHMATCH: return "timelimit=20 pointlimit=30 leadlimit=0";
- case MAPINFO_TYPE_TEAM_DEATHMATCH: return "timelimit=20 pointlimit=50 teams=2 leadlimit=0";
- case MAPINFO_TYPE_DOMINATION: return "timelimit=20 pointlimit=200 teams=2 leadlimit=0";
- case MAPINFO_TYPE_CTF: return "timelimit=20 pointlimit=300 caplimit=10 leadlimit=0";
- case MAPINFO_TYPE_RUNEMATCH: return "timelimit=20 pointlimit=200 leadlimit=0";
- case MAPINFO_TYPE_LMS: return "timelimit=20 lives=9 leadlimit=0";
- case MAPINFO_TYPE_ARENA: return "timelimit=20 pointlimit=10 leadlimit=0";
- case MAPINFO_TYPE_CA: return "timelimit=20 pointlimit=10 leadlimit=0";
- case MAPINFO_TYPE_KEYHUNT: return "timelimit=20 pointlimit=1000 teams=3 leadlimit=0";
- case MAPINFO_TYPE_ASSAULT: return "timelimit=20";
- case MAPINFO_TYPE_RACE: return "timelimit=20 qualifying_timelimit=5 laplimit=7 teamlaplimit=15 leadlimit=0";
- case MAPINFO_TYPE_ONSLAUGHT: return "timelimit=20";
- case MAPINFO_TYPE_NEXBALL: return "timelimit=20 pointlimit=5 leadlimit=0";
- case MAPINFO_TYPE_CTS: return "timelimit=20 skill=-1";
- case MAPINFO_TYPE_FREEZETAG: return "timelimit=20 pointlimit=10 teams=2 leadlimit=0";
- case MAPINFO_TYPE_KEEPAWAY: return "timelimit=20 pointlimit=30";
- default: return "";
- }
+ entity e;
+ for(e = MapInfo_Type_first; e; e = e.enemy)
+ if(t == e.weapons)
+ return e.model2;
+ return "";
}
void _MapInfo_Map_ApplyGametypeEx(string s, float pWantedType, float pThisType)
string sa, k, v;
float p;
string fraglimit_normal;
- string fraglimit_caps;
string fraglimit_teams;
MapInfo_Map_supportedGametypes |= pThisType;
cvar_set("g_race_qualifying_timelimit", cvar_defstring("g_race_qualifying_timelimit"));
fraglimit_normal = string_null;
- fraglimit_caps = string_null;
fraglimit_teams = string_null;
s = strcat(_MapInfo_GetDefaultEx(pWantedType), " ", s);
{
cvar_set("leadlimit", v);
}
- else if(k == "pointlimit" || k == "fraglimit" || k == "lives" || k == "laplimit")
+ else if(k == "pointlimit" || k == "fraglimit" || k == "lives" || k == "laplimit" || k == "caplimit")
{
fraglimit_normal = v;
}
- else if(k == "caplimit")
- {
- fraglimit_caps = v;
- }
else if(k == "teampointlimit" || k == "teamlaplimit")
{
fraglimit_teams = v;
}
}
- if(pWantedType == MAPINFO_TYPE_CTF && cvar("g_ctf_win_mode") < 2)
- {
- if(fraglimit_caps)
- cvar_set("fraglimit", fraglimit_caps);
- }
- else if(pWantedType == MAPINFO_TYPE_RACE && cvar("g_race_teams") >= 2)
+ if(pWantedType == MAPINFO_TYPE_RACE && cvar("g_race_teams") >= 2)
{
if(fraglimit_teams)
cvar_set("fraglimit", fraglimit_teams);
float MapInfo_Type_FromString(string t)
{
- if (t == "dm") return MAPINFO_TYPE_DEATHMATCH;
- else if(t == "tdm") return MAPINFO_TYPE_TEAM_DEATHMATCH;
- else if(t == "dom") return MAPINFO_TYPE_DOMINATION;
- else if(t == "ctf") return MAPINFO_TYPE_CTF;
- else if(t == "rune") return MAPINFO_TYPE_RUNEMATCH;
- else if(t == "lms") return MAPINFO_TYPE_LMS;
- else if(t == "arena") return MAPINFO_TYPE_ARENA;
- else if(t == "ca") return MAPINFO_TYPE_CA;
- else if(t == "kh") return MAPINFO_TYPE_KEYHUNT;
- else if(t == "as") return MAPINFO_TYPE_ASSAULT;
- else if(t == "ons") return MAPINFO_TYPE_ONSLAUGHT;
- else if(t == "rc") return MAPINFO_TYPE_RACE;
- else if(t == "nexball") return MAPINFO_TYPE_NEXBALL;
- else if(t == "cts") return MAPINFO_TYPE_CTS;
- else if(t == "freezetag") return MAPINFO_TYPE_FREEZETAG;
- else if(t == "keepaway") return MAPINFO_TYPE_KEEPAWAY;
- else if(t == "all") return MAPINFO_TYPE_ALL;
- else return 0;
+ entity e;
+ if(t == "all")
+ return MAPINFO_TYPE_ALL;
+ for(e = MapInfo_Type_first; e; e = e.enemy)
+ if(t == e.mdl)
+ return e.weapons;
+ return 0;
}
string MapInfo_Type_ToString(float t)
{
- if (t == MAPINFO_TYPE_DEATHMATCH) return "dm";
- else if(t == MAPINFO_TYPE_TEAM_DEATHMATCH) return "tdm";
- else if(t == MAPINFO_TYPE_DOMINATION) return "dom";
- else if(t == MAPINFO_TYPE_CTF) return "ctf";
- else if(t == MAPINFO_TYPE_RUNEMATCH) return "rune";
- else if(t == MAPINFO_TYPE_LMS) return "lms";
- else if(t == MAPINFO_TYPE_ARENA) return "arena";
- else if(t == MAPINFO_TYPE_CA) return "ca";
- else if(t == MAPINFO_TYPE_KEYHUNT) return "kh";
- else if(t == MAPINFO_TYPE_ASSAULT) return "as";
- else if(t == MAPINFO_TYPE_ONSLAUGHT) return "ons";
- else if(t == MAPINFO_TYPE_RACE) return "rc";
- else if(t == MAPINFO_TYPE_NEXBALL) return "nexball";
- else if(t == MAPINFO_TYPE_CTS) return "cts";
- else if(t == MAPINFO_TYPE_FREEZETAG) return "freezetag";
- else if(t == MAPINFO_TYPE_KEEPAWAY) return "keepaway";
- else if(t == MAPINFO_TYPE_ALL) return "all";
- else return "";
+ entity e;
+ if(t == MAPINFO_TYPE_ALL)
+ return "all";
+ for(e = MapInfo_Type_first; e; e = e.enemy)
+ if(t == e.weapons)
+ return e.mdl;
+ return "";
+}
+
+string MapInfo_Type_ToText(float t)
+{
+ entity e;
+ for(e = MapInfo_Type_first; e; e = e.enemy)
+ if(t == e.weapons)
+ return e.message;
+ return _("@!#%'n Tuba Throwing");
}
void _MapInfo_Parse_Settemp(string pFilename, string acl, float type, string s, float recurse)
float MapInfo_CurrentGametype()
{
- if(cvar("g_domination"))
- return MAPINFO_TYPE_DOMINATION;
- else if(cvar("g_ctf"))
- return MAPINFO_TYPE_CTF;
- else if(cvar("g_runematch"))
- return MAPINFO_TYPE_RUNEMATCH;
- else if(cvar("g_tdm"))
- return MAPINFO_TYPE_TEAM_DEATHMATCH;
- else if(cvar("g_assault"))
- return MAPINFO_TYPE_ASSAULT;
- else if(cvar("g_lms"))
- return MAPINFO_TYPE_LMS;
- else if(cvar("g_arena"))
- return MAPINFO_TYPE_ARENA;
- else if(cvar("g_ca"))
- return MAPINFO_TYPE_CA;
- else if(cvar("g_keyhunt"))
- return MAPINFO_TYPE_KEYHUNT;
- else if(cvar("g_onslaught"))
- return MAPINFO_TYPE_ONSLAUGHT;
- else if(cvar("g_race"))
- return MAPINFO_TYPE_RACE;
- else if(cvar("g_nexball"))
- return MAPINFO_TYPE_NEXBALL;
- else if(cvar("g_cts"))
- return MAPINFO_TYPE_CTS;
- else if(cvar("g_freezetag"))
- return MAPINFO_TYPE_FREEZETAG;
- else if(cvar("g_keepaway"))
- return MAPINFO_TYPE_KEEPAWAY;
- else
- return MAPINFO_TYPE_DEATHMATCH;
+ float prev;
+ entity e;
+ prev = cvar("gamecfg");
+ for(e = MapInfo_Type_first; e; e = e.enemy)
+ if(cvar(e.netname))
+ if(prev != e.weapons)
+ return e.weapons;
+ if(prev)
+ return prev;
+ return MAPINFO_TYPE_DEATHMATCH;
}
float _MapInfo_CheckMap(string s) // returns 0 if the map can't be played with the current settings, 1 otherwise
return r;
}
-string MapInfo_GetGameTypeCvar(float t)
-{
- switch(t)
- {
- case MAPINFO_TYPE_DEATHMATCH: return "g_dm";
- case MAPINFO_TYPE_TEAM_DEATHMATCH: return "g_tdm";
- case MAPINFO_TYPE_DOMINATION: return "g_domination";
- case MAPINFO_TYPE_CTF: return "g_ctf";
- case MAPINFO_TYPE_RUNEMATCH: return "g_runematch";
- case MAPINFO_TYPE_LMS: return "g_lms";
- case MAPINFO_TYPE_ARENA: return "g_arena";
- case MAPINFO_TYPE_CA: return "g_ca";
- case MAPINFO_TYPE_KEYHUNT: return "g_kh";
- case MAPINFO_TYPE_ASSAULT: return "g_assault";
- case MAPINFO_TYPE_ONSLAUGHT: return "g_onslaught";
- case MAPINFO_TYPE_RACE: return "g_race";
- case MAPINFO_TYPE_NEXBALL: return "g_nexball";
- case MAPINFO_TYPE_FREEZETAG: return "g_freezetag";
- case MAPINFO_TYPE_CTS: return "g_cts";
- case MAPINFO_TYPE_KEEPAWAY: return "g_keepaway";
- default: return "";
- }
-}
-
void MapInfo_SwitchGameType(float t)
{
- cvar_set("gamecfg", "0");
- cvar_set("g_dm", (t == MAPINFO_TYPE_DEATHMATCH) ? "1" : "0");
- cvar_set("g_tdm", (t == MAPINFO_TYPE_TEAM_DEATHMATCH) ? "1" : "0");
- cvar_set("g_domination", (t == MAPINFO_TYPE_DOMINATION) ? "1" : "0");
- cvar_set("g_ctf", (t == MAPINFO_TYPE_CTF) ? "1" : "0");
- cvar_set("g_runematch", (t == MAPINFO_TYPE_RUNEMATCH) ? "1" : "0");
- cvar_set("g_lms", (t == MAPINFO_TYPE_LMS) ? "1" : "0");
- cvar_set("g_arena", (t == MAPINFO_TYPE_ARENA) ? "1" : "0");
- cvar_set("g_ca", (t == MAPINFO_TYPE_CA) ? "1" : "0");
- cvar_set("g_keyhunt", (t == MAPINFO_TYPE_KEYHUNT) ? "1" : "0");
- cvar_set("g_assault", (t == MAPINFO_TYPE_ASSAULT) ? "1" : "0");
- cvar_set("g_onslaught", (t == MAPINFO_TYPE_ONSLAUGHT) ? "1" : "0");
- cvar_set("g_race", (t == MAPINFO_TYPE_RACE) ? "1" : "0");
- cvar_set("g_nexball", (t == MAPINFO_TYPE_NEXBALL) ? "1" : "0");
- cvar_set("g_cts", (t == MAPINFO_TYPE_CTS) ? "1" : "0");
- cvar_set("g_freezetag", (t == MAPINFO_TYPE_FREEZETAG) ? "1" : "0");
- cvar_set("g_keepaway", (t == MAPINFO_TYPE_KEEPAWAY) ? "1" : "0");
+ entity e;
+ for(e = MapInfo_Type_first; e; e = e.enemy)
+ cvar_set(e.netname, (t == e.weapons) ? "1" : "0");
}
void MapInfo_LoadMap(string s, float reinit)
// MapInfo_SwitchGameType(MAPINFO_TYPE_DEATHMATCH);
//}
+ cvar_settemp_restore();
if(reinit)
- localcmd(strcat("\nsettemp_restore\nmap ", s, "\n"));
+ localcmd(strcat("\nmap ", s, "\n"));
else
- localcmd(strcat("\nsettemp_restore\nchangelevel ", s, "\n"));
+ localcmd(strcat("\nchangelevel ", s, "\n"));
}
string MapInfo_ListAllowedMaps(float pRequiredFlags, float pForbiddenFlags)
return substring(out, 1, strlen(out) - 1);
}
+void MapInfo_LoadMapSettings_SaveGameType(float t)
+{
+ MapInfo_SwitchGameType(t);
+ cvar_set("gamecfg", ftos(t));
+ MapInfo_LoadedGametype = t;
+}
+
void MapInfo_LoadMapSettings(string s) // to be called from worldspawn
{
- float t, t0;
+ float t;
+
+ t = MapInfo_CurrentGametype();
+ MapInfo_LoadMapSettings_SaveGameType(t);
+
if(!_MapInfo_CheckMap(s)) // with underscore, it keeps temps
{
+ if(cvar("g_mapinfo_allow_unsupported_modes_and_let_stuff_break"))
+ {
+ print("EMERGENCY: can't play the selected map in the given game mode. Working with only the override settings.\n");
+ _MapInfo_Map_ApplyGametypeEx("", t, t);
+ return; // do not call Get_ByName!
+ }
+
if(MapInfo_Map_supportedGametypes == 0)
{
print("Mapinfo system is not functional at all. Assuming deathmatch.\n");
MapInfo_Map_supportedGametypes = MAPINFO_TYPE_DEATHMATCH;
- _MapInfo_Map_ApplyGametypeEx("", t0, t0);
+ MapInfo_LoadMapSettings_SaveGameType(MAPINFO_TYPE_DEATHMATCH);
+ _MapInfo_Map_ApplyGametypeEx("", MAPINFO_TYPE_DEATHMATCH, MAPINFO_TYPE_DEATHMATCH);
return; // do not call Get_ByName!
}
t *= 2;
MapInfo_Map_supportedGametypes = floor(MapInfo_Map_supportedGametypes / 2);
}
+
// t is now a supported mode!
- t0 = MapInfo_CurrentGametype();
- if(cvar("g_mapinfo_allow_unsupported_modes_and_let_stuff_break"))
- {
- print("EMERGENCY: can't play the selected map in the given game mode. Working with only the override settings.\n");
- cvar_settemp_restore();
- _MapInfo_Map_ApplyGametypeEx("", t0, t0);
- return; // do not call Get_ByName!
- }
- else
- {
- print("EMERGENCY: can't play the selected map in the given game mode. Falling back to a supported mode.\n");
- MapInfo_SwitchGameType(t);
- }
+ print("EMERGENCY: can't play the selected map in the given game mode. Falling back to a supported mode.\n");
+ MapInfo_LoadMapSettings_SaveGameType(t);
}
- cvar_settemp_restore();
- MapInfo_Get_ByName(s, 1, MapInfo_CurrentGametype());
+ MapInfo_Get_ByName(s, 1, t);
}
void MapInfo_ClearTemps()
-float MAPINFO_TYPE_DEATHMATCH = 1;
-float MAPINFO_TYPE_LMS = 2;
-float MAPINFO_TYPE_ARENA = 4;
-float MAPINFO_TYPE_RUNEMATCH = 8;
-float MAPINFO_TYPE_RACE = 16;
-float MAPINFO_TYPE_CTS = 32;
-float MAPINFO_TYPE_TEAM_DEATHMATCH = 64;
-float MAPINFO_TYPE_CTF = 128;
-float MAPINFO_TYPE_CA = 256;
-float MAPINFO_TYPE_DOMINATION = 512;
-float MAPINFO_TYPE_KEYHUNT = 1024;
-float MAPINFO_TYPE_ASSAULT = 2048;
-float MAPINFO_TYPE_ONSLAUGHT = 4096;
-float MAPINFO_TYPE_NEXBALL = 8192;
-float MAPINFO_TYPE_FREEZETAG = 16384;
-float MAPINFO_TYPE_KEEPAWAY = 32768;
-float MAPINFO_TYPE_ALL = 65535; // this has to include all above bits
+var float MAPINFO_TYPE_ALL = 0;
+entity MapInfo_Type_first;
+entity MapInfo_Type_last;
+.entity enemy; // internal next pointer
+
+.float weapons; // game type ID
+.string netname; // game type name as in cvar (with g_ prefix)
+.string mdl; // game type short name
+.string message; // human readable name
+.string model2; // game type defaults
+
+#define REGISTER_GAMETYPE(hname,sname,g_name,NAME,defaults) \
+ var float MAPINFO_TYPE_##NAME; \
+ var entity MapInfo_Type##g_name; \
+ void RegisterGametypes_##g_name() \
+ { \
+ MAPINFO_TYPE_##NAME = MAPINFO_TYPE_ALL + 1; \
+ MAPINFO_TYPE_ALL |= MAPINFO_TYPE_##NAME; \
+ MapInfo_Type##g_name = spawn(); \
+ MapInfo_Type##g_name.weapons = MAPINFO_TYPE_##NAME; \
+ MapInfo_Type##g_name.netname = #g_name; \
+ MapInfo_Type##g_name.mdl = #sname; \
+ MapInfo_Type##g_name.message = hname; \
+ MapInfo_Type##g_name.model2 = defaults; \
+ if(!MapInfo_Type_first) \
+ MapInfo_Type_first = MapInfo_Type##g_name; \
+ if(MapInfo_Type_last) \
+ MapInfo_Type_last.enemy = MapInfo_Type##g_name; \
+ MapInfo_Type_last = MapInfo_Type##g_name; \
+ } \
+ ACCUMULATE_FUNCTION(RegisterGametypes, RegisterGametypes_##g_name)
+
+#define IS_GAMETYPE(NAME) \
+ (MapInfo_LoadedGametype == MAPINFO_TYPE_##NAME)
+
+REGISTER_GAMETYPE(_("Deathmatch"),dm,g_dm,DEATHMATCH,"timelimit=20 pointlimit=30 leadlimit=0")
+#define g_dm IS_GAMETYPE(DEATHMATCH)
+
+REGISTER_GAMETYPE(_("Last Man Standing"),lms,g_lms,LMS,"timelimit=20 lives=9 leadlimit=0")
+#define g_lms IS_GAMETYPE(LMS)
+
+REGISTER_GAMETYPE(_("Arena"),arena,g_arena,ARENA,"timelimit=20 pointlimit=10 leadlimit=0")
+#define g_arena IS_GAMETYPE(ARENA)
+
+REGISTER_GAMETYPE(_("Runematch"),rune,g_runematch,RUNEMATCH,"timelimit=20 pointlimit=200 leadlimit=0")
+#define g_runematch IS_GAMETYPE(RUNEMATCH)
+
+REGISTER_GAMETYPE(_("Race"),rc,g_race,RACE,"timelimit=20 qualifying_timelimit=5 laplimit=7 teamlaplimit=15 leadlimit=0")
+#define g_race IS_GAMETYPE(RACE)
+
+REGISTER_GAMETYPE(_("Race CTS"),cts,g_cts,CTS,"timelimit=20 skill=-1")
+#define g_cts IS_GAMETYPE(CTS)
+
+REGISTER_GAMETYPE(_("Team Deathmatch"),tdm,g_tdm,TEAM_DEATHMATCH,"timelimit=20 pointlimit=50 teams=2 leadlimit=0")
+#define g_tdm IS_GAMETYPE(TEAM_DEATHMATCH)
+
+REGISTER_GAMETYPE(_("Capture the Flag"),ctf,g_ctf,CTF,"timelimit=20 caplimit=10 leadlimit=0")
+#define g_ctf IS_GAMETYPE(CTF)
+
+REGISTER_GAMETYPE(_("Clan Arena"),ca,g_ca,CA,"timelimit=20 pointlimit=10 leadlimit=0")
+#define g_ca IS_GAMETYPE(CA)
+
+REGISTER_GAMETYPE(_("Domination"),dom,g_domination,DOMINATION,"timelimit=20 pointlimit=200 teams=2 leadlimit=0")
+#define g_domination IS_GAMETYPE(DOMINATION)
+
+REGISTER_GAMETYPE(_("Key Hunt"),kh,g_keyhunt,KEYHUNT,"timelimit=20 pointlimit=1000 teams=3 leadlimit=0")
+#define g_keyhunt IS_GAMETYPE(KEYHUNT)
+
+REGISTER_GAMETYPE(_("Assault"),as,g_assault,ASSAULT,"timelimit=20")
+#define g_assault IS_GAMETYPE(ASSAULT)
+
+REGISTER_GAMETYPE(_("Onslaught"),ons,g_onslaught,ONSLAUGHT,"timelimit=20")
+#define g_onslaught IS_GAMETYPE(ONSLAUGHT)
+
+REGISTER_GAMETYPE(_("Nexball"),nexball,g_nexball,NEXBALL,"timelimit=20 pointlimit=5 leadlimit=0")
+#define g_nexball IS_GAMETYPE(NEXBALL)
+
+REGISTER_GAMETYPE(_("Freeze Tag"),freezetag,g_freezetag,FREEZETAG,"timelimit=20 pointlimit=10 teams=2 leadlimit=0")
+#define g_freezetag IS_GAMETYPE(FREEZETAG)
+
+REGISTER_GAMETYPE(_("Keepaway"),keepaway,g_keepaway,KEEPAWAY,"timelimit=20 pointlimit=30")
+#define g_keepaway IS_GAMETYPE(KEEPAWAY)
float MAPINFO_FEATURE_WEAPONS = 1; // not defined for minstagib-only maps
float MAPINFO_FEATURE_VEHICLES = 2;
// gets a gametype from a string
float MapInfo_Type_FromString(string t);
string MapInfo_Type_ToString(float t);
-string MapInfo_GetGameTypeCvar(float t);
+string MapInfo_Type_ToText(float t);
void MapInfo_SwitchGameType(float t);
// to be called from worldspawn to set up cvars
void MapInfo_LoadMapSettings(string s);
+float MapInfo_LoadedGametype; // game type that was active during map load
void MapInfo_Cache_Destroy(); // disable caching
void MapInfo_Cache_Create(); // enable caching
void MapInfo_Shutdown(); // call this in the shutdown handler
#define MAPINFO_SETTEMP_ACL_USER cvar_string("g_mapinfo_settemp_acl")
-#define MAPINFO_SETTEMP_ACL_SYSTEM "-g_mapinfo_* -rcon_* -settemp_* -_* -g_ban* +*"
+#define MAPINFO_SETTEMP_ACL_SYSTEM "-g_mapinfo_* -rcon_* -_* -g_ban* +*"
fclose(fh);
}
-string GametypeNameFromType(float g)
-{
- if (g == GAME_DEATHMATCH) return "dm";
- else if (g == GAME_TEAM_DEATHMATCH) return "tdm";
- else if (g == GAME_DOMINATION) return "dom";
- else if (g == GAME_CTF) return "ctf";
- else if (g == GAME_RUNEMATCH) return "rune";
- else if (g == GAME_LMS) return "lms";
- else if (g == GAME_ARENA) return "arena";
- else if (g == GAME_CA) return "ca";
- else if (g == GAME_KEYHUNT) return "kh";
- else if (g == GAME_ONSLAUGHT) return "ons";
- else if (g == GAME_ASSAULT) return "as";
- else if (g == GAME_RACE) return "rc";
- else if (g == GAME_NEXBALL) return "nexball";
- else if (g == GAME_CTS) return "cts";
- else if (g == GAME_FREEZETAG) return "freezetag";
- else if (g == GAME_KEEPAWAY) return "ka";
- return "dm";
-}
-
string mmsss(float tenths)
{
float minutes;
vector decompressShortVector(float data)
{
vector out;
- float pitch, yaw, len;
+ float p, y, len;
if(data == 0)
return '0 0 0';
- pitch = (data & 0xF000) / 0x1000;
- yaw = (data & 0x0F80) / 0x80;
- len = (data & 0x007F);
+ p = (data & 0xF000) / 0x1000;
+ y = (data & 0x0F80) / 0x80;
+ len = (data & 0x007F);
- //print("\ndecompress: pitch ", ftos(pitch)); print("yaw ", ftos(yaw)); print("len ", ftos(len), "\n");
+ //print("\ndecompress: p ", ftos(p)); print("y ", ftos(y)); print("len ", ftos(len), "\n");
- if(pitch == 0)
+ if(p == 0)
{
out_x = 0;
out_y = 0;
- if(yaw == 31)
+ if(y == 31)
out_z = -1;
else
out_z = +1;
}
else
{
- yaw = .19634954084936207740 * yaw;
- pitch = .19634954084936207740 * pitch - 1.57079632679489661922;
- out_x = cos(yaw) * cos(pitch);
- out_y = sin(yaw) * cos(pitch);
- out_z = -sin(pitch);
+ y = .19634954084936207740 * y;
+ p = .19634954084936207740 * p - 1.57079632679489661922;
+ out_x = cos(y) * cos(p);
+ out_y = sin(y) * cos(p);
+ out_z = -sin(p);
}
//print("decompressed: ", vtos(out), "\n");
float compressShortVector(vector vec)
{
vector ang;
- float pitch, yaw, len;
+ float p, y, len;
if(vlen(vec) == 0)
return 0;
//print("compress: ", vtos(vec), "\n");
error("BOGUS vectoangles");
//print("angles: ", vtos(ang), "\n");
- pitch = floor(0.5 + (ang_x + 90) * 16 / 180) & 15; // -90..90 to 0..14
- if(pitch == 0)
+ p = floor(0.5 + (ang_x + 90) * 16 / 180) & 15; // -90..90 to 0..14
+ if(p == 0)
{
if(vec_z < 0)
- yaw = 31;
+ y = 31;
else
- yaw = 30;
+ y = 30;
}
else
- yaw = floor(0.5 + ang_y * 32 / 360) & 31; // 0..360 to 0..32
+ y = floor(0.5 + ang_y * 32 / 360) & 31; // 0..360 to 0..32
len = invertLengthLog(vlen(vec));
- //print("compressed: pitch ", ftos(pitch)); print("yaw ", ftos(yaw)); print("len ", ftos(len), "\n");
+ //print("compressed: p ", ftos(p)); print("y ", ftos(y)); print("len ", ftos(len), "\n");
- return (pitch * 0x1000) + (yaw * 0x80) + len;
+ return (p * 0x1000) + (y * 0x80) + len;
}
void compressShortVector_init()
}
#endif
-#ifdef CSQC
-void cvar_settemp(string pKey, string pValue)
-{
- error("cvar_settemp called from CSQC - use cvar_clientsettemp instead!");
-}
-void cvar_settemp_restore()
-{
- error("cvar_settemp_restore called from CSQC - use cvar_clientsettemp instead!");
-}
-#else
-void cvar_settemp(string pKey, string pValue)
+void cvar_settemp(string cv, string val)
{
- float i;
- string settemp_var;
- if(cvar_string(pKey) == pValue)
- return;
- i = cvar("settemp_idx");
- cvar_set("settemp_idx", ftos(i+1));
- settemp_var = strcat("_settemp_x", ftos(i));
-#ifdef MENUQC
- registercvar(settemp_var, "", 0);
-#else
- registercvar(settemp_var, "");
-#endif
- cvar_set("settemp_list", strcat("1 ", pKey, " ", settemp_var, " ", cvar_string("settemp_list")));
- cvar_set(settemp_var, cvar_string(pKey));
- cvar_set(pKey, pValue);
+ entity e;
+ for(e = world; (e = find(e, classname, "saved_cvar_value")); )
+ if(e.netname == cv)
+ goto saved;
+ e = spawn();
+ e.classname = "saved_cvar_value";
+ e.netname = strzone(cv);
+ e.message = strzone(cvar_string(cv));
+:saved
+ cvar_set(cv, val);
}
void cvar_settemp_restore()
{
- // undo what cvar_settemp did
- float n, i;
- n = tokenize_console(cvar_string("settemp_list"));
- for(i = 0; i < n - 3; i += 3)
- cvar_set(argv(i + 1), cvar_string(argv(i + 2)));
- cvar_set("settemp_list", "0");
+ entity e;
+ while((e = find(world, classname, "saved_cvar_value")))
+ {
+ cvar_set(e.netname, e.message);
+ remove(e);
+ }
}
-#endif
float almost_equals(float a, float b)
{
float isGametypeInFilter(float gt, float tp, float ts, string pattern)
{
string subpattern, subpattern2, subpattern3, subpattern4;
- subpattern = strcat(",", GametypeNameFromType(gt), ",");
+ subpattern = strcat(",", MapInfo_Type_ToString(gt), ",");
if(tp)
subpattern2 = ",teams,";
else
subpattern3 = ",teamspawns,";
else
subpattern3 = ",noteamspawns,";
- if(gt == GAME_RACE || gt == GAME_CTS)
+ if(gt == MAPINFO_TYPE_RACE || gt == MAPINFO_TYPE_CTS)
subpattern4 = ",race,";
else
subpattern4 = string_null;
return v;
}
#else
-void WriteInt24_t(float dest, float val)
+void WriteInt24_t(float dst, float val)
{
float v;
- WriteShort(dest, (v = floor(val / 256)));
- WriteByte(dest, val - v * 256); // 0..255
+ WriteShort(dst, (v = floor(val / 256)));
+ WriteByte(dst, val - v * 256); // 0..255
}
#endif
#endif
return findfloat(world, entnum, f);
}
#endif
+
+float shutdown_running;
+#ifdef SVQC
+void SV_Shutdown()
+#endif
+#ifdef CSQC
+void CSQC_Shutdown()
+#endif
+#ifdef MENUQC
+void m_shutdown()
+#endif
+{
+ if(shutdown_running)
+ {
+ print("Recursive shutdown detected! Only restoring cvars...\n");
+ }
+ else
+ {
+ shutdown_running = 1;
+ Shutdown();
+ }
+ cvar_settemp_restore(); // this must be done LAST, but in any case
+}
float mod(float a, float b) { return a - (floor(a / b) * b); }
#endif
-string GametypeNameFromType(float g);
#define TIME_TO_NTHS(t,n) floor((t) * (n) + 0.4)
string mmsss(float t);
string mmssss(float t);
#endif
string fixPriorityList(string pl, float from, float to, float subtract, float complete);
+string mapPriorityList(string order, string(string) mapfunc);
string swapInPriorityList(string order, float i, float j);
float cvar_value_issafe(string s);
#define sound(e,c,s,v,a) sound7(e,c,s,v,a,0,0)
#endif
+float lowestbit(float f);
+
#ifdef CSQC
entity ReadCSQCEntity()
#endif
+
+// generic shutdown handler
+void Shutdown();
self.csqcmodel_teleported = 0;
}
-void CSQCModel_Read()
+void CSQCModel_Read(float isnew)
{
float sf;
sf = ReadShort();
* IN THE SOFTWARE.
*/
-void CSQCModel_Read();
+void CSQCModel_Read(float isnew);
#define CSQCMODEL_IF(cond)
#define CSQCMODEL_ENDIF
view = CSQCModel_server2csqc(player_localentnum);
#endif
+ if(view != csqcplayer)
+ {
+ entity oldself = self;
+ self = view;
+ InterpolateOrigin_Do();
+ self.view_ofs = '0 0 1' * getstati(STAT_VIEWHEIGHT);
+ self = oldself;
+ }
+
#ifdef COMPAT_XON050_ENGINE
if(view && !(checkextension("DP_CSQC_V_CALCREFDEF") || checkextension("DP_CSQC_V_CALCREFDEF_WIP1")))
{
void CSQCPlayer_Remove()
{
- if(self.entnum != player_localnum + 1)
- return;
csqcplayer = world;
- cvar_clientsettemp("cl_movement_replay", "1");
+ cvar_settemp("cl_movement_replay", "1");
}
float CSQCPlayer_PreUpdate()
{
- if(self.entnum != player_localnum + 1)
+ if(self != csqcplayer)
return 0;
- cvar_clientsettemp("cl_movement_replay", "0");
if(csqcplayer_status != CSQCPLAYERSTATUS_FROMSERVER)
CSQCPlayer_Unpredict();
return 1;
float CSQCPlayer_PostUpdate()
{
- if(self.entnum != player_localentnum)
+ if(self.entnum != player_localnum + 1)
return 0;
- csqcplayer_status = CSQCPLAYERSTATUS_FROMSERVER;
csqcplayer = self;
+ csqcplayer_status = CSQCPLAYERSTATUS_FROMSERVER;
+ cvar_settemp("cl_movement_replay", "0");
self.entremove = CSQCPlayer_Remove;
return 1;
}
// For conversions s and c, the flag # makes precision and width interpreted
// as byte count, by default it is interpreted as character count in UTF-8
// enabled engines. No other conversions can create wide characters, and #
-// has another meaning in these.
+// has another meaning in these. When in character count mode, color codes
+// are ignored. To get UTF-8 semantics WITHOUT color code parsing, use
+// the + flag.
//DP_QC_STRFTIME
//idea: LordHavoc
//globals:
//new movetypes:
const float MOVETYPE_PHYSICS = 32; // need to be set before any physics_* builtins applied
-//new solid types:
+//new solid types (deprecated):
const float SOLID_PHYSICS_BOX = 32;
const float SOLID_PHYSICS_SPHERE = 33;
const float SOLID_PHYSICS_CAPSULE = 34;
const float SOLID_PHYSICS_TRIMESH = 35;
const float SOLID_PHYSICS_CYLINDER = 36;
+//geometry types:
+const float GEOMTYPE_NULL = 0;
+const float GEOMTYPE_BOX = 1;
+const float GEOMTYPE_SPHERE = 2;
+const float GEOMTYPE_CAPSULE = 3;
+const float GEOMTYPE_TRIMESH = 4;
+const float GEOMTYPE_CYLINDER = 5;
//SOLID_BSP;
//joint types:
const float JOINTTYPE_POINT = 1;
// movedir_z = stop position (+/-), set to 0 for no stop
// note that ODE does not support both in one anyway
//field definitions:
+.float geomtype; // see GEOMTYPE_*, a more correct way to set collision shape, allows to set SOLID_CORPSE and trimesh collisions
.float mass; // ODE mass, standart value is 1
.vector massofs; // offsets a mass center out of object center, if not set a center of model bounds is used
.float friction;
entity spawn(void) = #22;
void remove(entity e) = #23;
-entity findstring(entity start, .string field, string match) = #24;
+entity find(entity start, .string field, string match) = #24;
entity findfloat(entity start, .float field, float match) = #25;
entity findentity(entity start, .entity field, entity match) = #25;
string(string serveraddress) crypto_getencryptlevel = #635; // 0 if never encrypting, 1 supported, 2 requested, 3 required, appended by list of allowed methods in order of preference ("AES128"), preceded by a space each
string(float i) crypto_getmykeyfp = #636; // retrieves the CA key fingerprint of a given CA slot, or "" if slot is unused but more to come, or string_null if end of list
string(float i) crypto_getmyidfp = #637; // retrieves the ID fingerprint of a given CA slot, or "" if slot is unused but more to come, or string_null if end of list
+float CRYPTO_IDSTATUS_OUTOFRANGE = -1;
+float CRYPTO_IDSTATUS_EMPTY = 0;
+float CRYPTO_IDSTATUS_UNSIGNED = 1;
+float CRYPTO_IDSTATUS_SIGNED = 2;
+float(float i) crypto_getmyidstatus = #641; // retrieves the ID's status of a given CA slot, or 0 if slot is unused but more to come, or -1 if end of list
float(string url, float id, string content_type, string delim, float buf, float keyid) crypto_uri_postbuf = #513;
//description:
//use -1 as buffer handle to justs end delim as postdata
-void GameCommand_Init()
-{
- // make gg call menu QC theCommands
- localcmd("alias qc_cmd \"menu_cmd $*\"\n");
-}
-
string _dumptree_space;
void _dumptree_open(entity pass, entity me)
{
-void GameCommand_Init();
void GameCommand(string command);
dprint(s, ": ", getgamedirinfo(i, GETGAMEDIRINFO_DESCRIPTION));
}
}
+
+ // needs to be done so early because of the constants they create
+ RegisterWeapons();
+ RegisterGametypes();
}
float MENU_ASPECT = 1.25; // 1280x1024
if(!preMenuInit())
return;
menuInitialized = 1;
- GameCommand_Init();
-
- RegisterWeapons();
fh = -1;
if(cvar_string("menu_skin") != "")
}
}
-void m_shutdown()
+void Shutdown()
{
entity e;
}
else
{
- for(e = NULL; (e = findstring(e, name, itemname)); )
+ for(e = NULL; (e = find(e, name, itemname)); )
if(e.classname != "vtbl")
break;
if(e)
vector sz, rgb;
float a;
- rgb = stov(cvar_string("crosshair_color"));
- a = cvar("crosshair_alpha");
- if(!me.checked && !me.focused && me.cvarValueFloat != -1)
+ if(me.cvarValueFloat == -1)
+ {
+ rgb = stov(cvar_string("crosshair_color"));
+ a = cvar("crosshair_alpha");
+ }
+ else if(me.checked || me.focused)
{
- a *= me.disabledAlpha;
+ a = 1;
+ rgb = '1 1 1';
+ }
+ else
+ {
+ a = me.disabledAlpha;
rgb = '1 1 1';
}
SUPER(XonoticCrosshairButton).draw(me);
sz = draw_PictureSize(me.src3);
- sz = globalToBoxSize(sz, draw_scale);
+ sz = globalToBoxSize(sz, me.size);
if(me.cvarValueFloat == -1)
{
- sz = (6 * '1 1 0' + sz * cvar("crosshair_size")) * 0.08; // (6 * '1 1 0' + ...) * 0.08 here to make visible size changes happen also at bigger sizes
+ sz = sz * cvar("crosshair_size"); // (6 * '1 1 0' + ...) * 0.08 here to make visible size changes happen also at bigger sizes
+ /*
if(sz_x > 0.95)
sz = sz * (0.95 / sz_x);
if(sz_y > 0.95)
sz = sz * (0.95 / sz_y);
+ */
}
else // show the crosshair picker at full size
- sz = '0.95 0.95 0';
+ {
+ sz = sz * (0.95 / sz_x);
+ if(sz_y > 0.95)
+ sz = sz * (0.95 / sz_y);
+ }
draw_Picture('0.5 0.5 0' - 0.5 * sz, me.src3, sz, rgb, a);
if(cvar("crosshair_dot"))
me.TR(me);
me.TDempty(me, 0.2);
}
- me.TD(me, 1, wgt, e = makeXonoticTextLabel(0, GameType_GetName(i)));
+ me.TD(me, 1, wgt, e = makeXonoticTextLabel(0, MapInfo_Type_ToText(GameType_GetID(i))));
me.(typeLabels[i]) = e;
}
me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "crosshair_per_weapon", _("Per weapon")));
me.TR(me);
me.TDempty(me, 0.2);
- for(i = 1; i <= 10; ++i) {
- me.TDNoMargin(me, 1, 2 / 10, e = makeXonoticCrosshairButton(3, i), '1 1 0');
+ for(i = 1; i <= 13; ++i) {
+ me.TDNoMargin(me, 1, 2 / 13, e = makeXonoticCrosshairButton(3, i), '1 1 0');
setDependent(e, "crosshair_per_weapon", 0, 0);
}
// show a larger preview of the selected crosshair
setDependent(e, "crosshair_per_weapon", 0, 0);
me.TR(me);
me.TDempty(me, 0.2);
- for(i = 11; i <= 20; ++i) {
- me.TDNoMargin(me, 1, 2 / 10, e = makeXonoticCrosshairButton(3, i), '1 1 0');
+ for(i = 14; i <= 26; ++i) {
+ me.TDNoMargin(me, 1, 2 / 13, e = makeXonoticCrosshairButton(3, i), '1 1 0');
setDependent(e, "crosshair_per_weapon", 0, 0);
}
me.TR(me);
me.TDempty(me, 0.2);
me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Crosshair size:")));
- me.TD(me, 1, 1.8, e = makeXonoticSlider(0.10, 1.5, 0.05, "crosshair_size"));
+ me.TD(me, 1, 1.8, e = makeXonoticSlider(0.1, 1.0, 0.01, "crosshair_size"));
me.TR(me);
me.TDempty(me, 0.2);
me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Crosshair alpha:")));
string s;
if(isSelected)
draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, SKINALPHA_LISTBOX_SELECTED);
- s = GameType_GetName(i);
+ s = MapInfo_Type_ToText(GameType_GetID(i));
draw_Text(me.realUpperMargin * eY + (me.columnNameOrigin + (me.columnNameSize - draw_TextWidth(s, 0, me.realFontSize)) * 0.5) * eX, s, me.realFontSize, '1 1 1', SKINALPHA_TEXT, 0);
}
void XonoticGametypeList_resizeNotify(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
else
s = "";
- for(i = 1; ; ++i) // 20 modes ought to be enough for anyone
+ for(i = 1; ; i *= 2) // 20 modes ought to be enough for anyone
{
- t = GametypeNameFromType(i);
+ t = MapInfo_Type_ToString(i);
if(i > 1)
- if(t == GametypeNameFromType(0)) // it repeats (default case)
+ if(t == "") // it repeats (default case)
{
// no type was found
// choose the first one
- s = t;
+ s = MapInfo_Type_ToString(1);
break;
}
- if(s == GametypeNameFromType(i))
+ if(s == t)
{
// the type was found
// choose the next one
- s = GametypeNameFromType(i + 1);
- if(s == GametypeNameFromType(0))
- s = "";
+ s = MapInfo_Type_ToString(i * 2);
+ if(s == "")
+ s = MapInfo_Type_ToString(1);
break;
}
}
// note: include only those that should be in the menu!
#define GAMETYPES \
- GAMETYPE(MAPINFO_TYPE_ARENA, _("Arena")) \
- GAMETYPE(MAPINFO_TYPE_ASSAULT, _("Assault")) \
- GAMETYPE(MAPINFO_TYPE_CTF, _("Capture The Flag")) \
- GAMETYPE(MAPINFO_TYPE_CA, _("Clan Arena")) \
- GAMETYPE(MAPINFO_TYPE_DEATHMATCH, _("Deathmatch")) \
- GAMETYPE(MAPINFO_TYPE_DOMINATION, _("Domination")) \
- GAMETYPE(MAPINFO_TYPE_FREEZETAG, _("Freeze Tag")) \
- GAMETYPE(MAPINFO_TYPE_KEEPAWAY, _("Keepaway")) \
- GAMETYPE(MAPINFO_TYPE_KEYHUNT, _("Key Hunt")) \
- GAMETYPE(MAPINFO_TYPE_LMS, _("Last Man Standing")) \
- GAMETYPE(MAPINFO_TYPE_NEXBALL, _("Nexball")) \
- GAMETYPE(MAPINFO_TYPE_ONSLAUGHT, _("Onslaught")) \
- GAMETYPE(MAPINFO_TYPE_RACE, _("Race")) \
- GAMETYPE(MAPINFO_TYPE_CTS, _("Race CTS")) \
- GAMETYPE(MAPINFO_TYPE_RUNEMATCH, _("Runematch")) \
- GAMETYPE(MAPINFO_TYPE_TEAM_DEATHMATCH, _("Team Deathmatch")) \
+ GAMETYPE(MAPINFO_TYPE_ARENA) \
+ GAMETYPE(MAPINFO_TYPE_ASSAULT) \
+ GAMETYPE(MAPINFO_TYPE_CTF) \
+ GAMETYPE(MAPINFO_TYPE_CA) \
+ GAMETYPE(MAPINFO_TYPE_DEATHMATCH) \
+ GAMETYPE(MAPINFO_TYPE_DOMINATION) \
+ GAMETYPE(MAPINFO_TYPE_FREEZETAG) \
+ GAMETYPE(MAPINFO_TYPE_KEEPAWAY) \
+ GAMETYPE(MAPINFO_TYPE_KEYHUNT) \
+ GAMETYPE(MAPINFO_TYPE_LMS) \
+ GAMETYPE(MAPINFO_TYPE_NEXBALL) \
+ GAMETYPE(MAPINFO_TYPE_ONSLAUGHT) \
+ GAMETYPE(MAPINFO_TYPE_RACE) \
+ GAMETYPE(MAPINFO_TYPE_CTS) \
+ GAMETYPE(MAPINFO_TYPE_RUNEMATCH) \
+ GAMETYPE(MAPINFO_TYPE_TEAM_DEATHMATCH) \
/* nothing */
float GameType_GetID(float cnt)
{
float i;
i = 0;
-#define GAMETYPE(id,name) if(i++ == cnt) return id;
+#define GAMETYPE(id) if(i++ == cnt) return id;
GAMETYPES
#undef GAMETYPE
return 0;
}
-string GameType_GetName(float cnt)
-{
- float i;
- i = 0;
-#define GAMETYPE(id,name) if(i++ == cnt) return name;
- GAMETYPES
-#undef GAMETYPE
- return _("@!#%'n Tuba Throwing");
-}
float GameType_GetCount()
{
float i;
i = 0;
-#define GAMETYPE(id,name) ++i;
+#define GAMETYPE(id) ++i;
GAMETYPES
#undef GAMETYPE
return i;
// game type list box stuff (does not NEED to contain all game types, other
// types stay available via console)
float GameType_GetID(float cnt);
-string GameType_GetName(float cnt);
float GameType_GetCount();
void dialog_hudpanel_common_notoggle(entity me, string panelname);
float autocvar_g_chat_nospectators;
float autocvar_g_chat_teamcolors;
float autocvar_g_ctf_captimerecord_always;
-float autocvar_g_ctf_capture_leadlimit;
-float autocvar_g_ctf_capture_limit;
float autocvar_g_ctf_dynamiclights;
string autocvar_g_ctf_flag_blue_model;
float autocvar_g_ctf_flag_blue_skin;
float autocvar_g_weapon_throwable;
#define autocvar_g_weaponarena cvar_string("g_weaponarena")
string autocvar_g_xonoticversion;
-float autocvar_gamecfg;
float autocvar_gameversion;
float autocvar_gameversion_min;
float autocvar_gameversion_max;
self.pauseregen_finished = 0;
self.damageforcescale = 0;
self.death_time = 0;
- self.dead_frame = 0;
self.alpha = 0;
self.scale = 0;
self.fade_time = 0;
}
self.damageforcescale = 2;
self.death_time = 0;
- self.dead_frame = 0;
self.alpha = 0;
self.scale = 0;
self.fade_time = 0;
else
stuffcmd(self, "set _teams_available 0\n");
- stuffcmd(self, strcat("set gametype ", ftos(game), "\n"));
-
if(g_arena || g_ca)
{
self.classname = "observer";
stuffcmd(self, strcat("name ", self.netname, substring(ftos(random()), 2, -1), "\n"));
}
- if(sv_maxidle && frametime)
+ if(sv_maxidle && frametime) // WORKAROUND: only use dropclient in server frames (frametime set). Never use it in cl_movement frames (frametime zero).
{
- // WORKAROUND: only use dropclient in server frames (frametime set). Never use it in cl_movement frames (frametime zero).
- float timeleft;
if (time - self.parm_idlesince < 1) // instead of (time == self.parm_idlesince) to support sv_maxidle <= 10
{
if(self.idlekick_lasttimeleft)
Send_CSQC_Centerprint_Generic_Expire(self, CPID_DISCONNECT_IDLING);
self.idlekick_lasttimeleft = 0;
}
- return;
- }
- timeleft = ceil(sv_maxidle - (time - self.parm_idlesince));
- if(timeleft == min(10, sv_maxidle - 1)) // - 1 to support sv_maxidle <= 10
- {
- if(!self.idlekick_lasttimeleft)
- Send_CSQC_Centerprint_Generic(self, CPID_DISCONNECT_IDLING, "^3Stop idling!\n^3Disconnecting in %d seconds...", 1, timeleft);
- }
- if(timeleft <= 0)
- {
- bprint("^3", self.netname, "^3 was kicked for idling.\n");
- AnnounceTo(self, "terminated");
- dropclient(self);
- return;
}
- else if(timeleft <= 10)
+ else
{
- if(timeleft != self.idlekick_lasttimeleft)
- AnnounceTo(self, ftos(timeleft));
- self.idlekick_lasttimeleft = timeleft;
+ float timeleft;
+ timeleft = ceil(sv_maxidle - (time - self.parm_idlesince));
+ if(timeleft == min(10, sv_maxidle - 1)) // - 1 to support sv_maxidle <= 10
+ {
+ if(!self.idlekick_lasttimeleft)
+ Send_CSQC_Centerprint_Generic(self, CPID_DISCONNECT_IDLING, "^3Stop idling!\n^3Disconnecting in %d seconds...", 1, timeleft);
+ }
+ if(timeleft <= 0)
+ {
+ bprint("^3", self.netname, "^3 was kicked for idling.\n");
+ AnnounceTo(self, "terminated");
+ dropclient(self);
+ return;
+ }
+ else if(timeleft <= 10)
+ {
+ if(timeleft != self.idlekick_lasttimeleft)
+ AnnounceTo(self, ftos(timeleft));
+ self.idlekick_lasttimeleft = timeleft;
+ }
}
}
#ifdef TETRIS
if(self.impulse == 100)
ImpulseCommands();
- if (TetrisPostFrame())
- return;
+ if (!TetrisPostFrame())
+ {
#endif
CheatFrame();
//do nothing
}
+#ifdef TETRIS
+ }
+#endif
+
/*
float i;
for(i = 0; i < 1000; ++i)
swampspd_mod = self.swamp_slowdown; //cvar("g_balance_swamp_moverate");
}
+ // conveyors: first fix velocity
+ if(self.conveyor.state)
+ self.velocity -= self.conveyor.movedir;
+
if(self.classname != "player")
{
maxspd_mod = autocvar_sv_spectator_speed_multiplier;
self.velocity = self.velocity * f;
else
self.velocity = '0 0 0';
+ /*
+ Mathematical analysis time!
+
+ Our goal is to invert this mess.
+
+ For the two cases we get:
+ v = v0 * (1 - frametime * (autocvar_sv_stopspeed / v0) * autocvar_sv_friction)
+ = v0 - frametime * autocvar_sv_stopspeed * autocvar_sv_friction
+ v0 = v + frametime * autocvar_sv_stopspeed * autocvar_sv_friction
+ and
+ v = v0 * (1 - frametime * autocvar_sv_friction)
+ v0 = v / (1 - frametime * autocvar_sv_friction)
+
+ These cases would be chosen ONLY if:
+ v0 < autocvar_sv_stopspeed
+ v + frametime * autocvar_sv_stopspeed * autocvar_sv_friction < autocvar_sv_stopspeed
+ v < autocvar_sv_stopspeed * (1 - frametime * autocvar_sv_friction)
+ and, respectively:
+ v0 >= autocvar_sv_stopspeed
+ v / (1 - frametime * autocvar_sv_friction) >= autocvar_sv_stopspeed
+ v >= autocvar_sv_stopspeed * (1 - frametime * autocvar_sv_friction)
+ */
}
// acceleration
if(self.flags & FL_ONGROUND)
self.lastground = time;
+ // conveyors: then break velocity again
+ if(self.conveyor.state)
+ self.velocity += self.conveyor.movedir;
+
self.lastflags = self.flags;
self.lastclassname = self.classname;
}
self.animstate_override = oldself.animstate_override;
self.animstate_looping = oldself.animstate_looping;
self.frame = oldself.frame;
- self.dead_frame = oldself.dead_frame;
self.pain_finished = oldself.pain_finished;
self.health = oldself.health;
self.armorvalue = oldself.armorvalue;
Drag_MoveDrag(oldself, self);
if(self.colormap <= maxclients && self.colormap > 0)
- self.colormap = 1024 + self.clientcolors;
+ self.colormap = 1024 + oldself.clientcolors;
CSQCMODEL_AUTOINIT();
self.CopyBody_nextthink = oldself.nextthink;
self.anim_runbackwards = animfixfps(self, '14 1 1');
self.anim_strafeleft = animfixfps(self, '15 1 1');
self.anim_straferight = animfixfps(self, '16 1 1');
- self.anim_dead1 = animfixfps(self, '17 1 1');
- self.anim_dead2 = animfixfps(self, '18 1 1');
+ //self.anim_dead1 = animfixfps(self, '17 1 1');
+ //self.anim_dead2 = animfixfps(self, '18 1 1');
self.anim_forwardright = animfixfps(self, '19 1 1');
self.anim_forwardleft = animfixfps(self, '20 1 1');
self.anim_backright = animfixfps(self, '21 1 1');
updateanim(self.weaponentity);
if (self.deadflag != DEAD_NO)
- {
- if (time > self.animstate_endtime)
- {
- if (self.maxs_z > 5)
- {
- self.maxs_z = 5;
- setsize(self, self.mins, self.maxs);
- }
- self.frame = self.dead_frame;
- }
return;
- }
if (!self.animstate_override)
{
{
// don't use any animations as a gib
self.frame = 0;
- self.dead_frame = 0;
// view just above the floor
self.view_ofs = '0 0 4';
else
self.respawn_countdown = -1; // do not count down
if (random() < 0.5)
- {
setanim(self, self.anim_die1, FALSE, TRUE, TRUE);
- self.dead_frame = self.anim_dead1_x;
- }
else
- {
setanim(self, self.anim_die2, FALSE, TRUE, TRUE);
- self.dead_frame = self.anim_dead2_x;
+ if (self.maxs_z > 5)
+ {
+ self.maxs_z = 5;
+ setsize(self, self.mins, self.maxs);
}
// set damage function to corpse damage
self.event_damage = PlayerCorpseDamage;
//float GAME_FULLBRIGHT_PLAYERS = 64; /// makes the players model fullbright
//float GAME_TEAMS = 128; /// Teams, red/green/yellow/blue
-float game; // set to "gamecfg" on spawnfunc_worldspawn
-
//float POWERUP_STRENGTH_DAMAGE = 2; // damage multiplier for strength powerup
//float POWERUP_STRENGTH_FORCE = 4; // force multiplier for strength powerup
float ctf_score_value(string parameter)
{
- if(g_ctf_win_mode != 2)
- return cvar(strcat("g_ctf_personal", parameter));
- else
- return cvar(strcat("g_ctf_flag", parameter));
+ return cvar(strcat("g_ctf_personal", parameter));
}
void FakeTimeLimit(entity e, float t)
captureshield_min_negscore = autocvar_g_ctf_shield_min_negscore;
captureshield_max_ratio = autocvar_g_ctf_shield_max_ratio;
captureshield_force = autocvar_g_ctf_shield_force;
-
-
-//#NO AUTOCVARS START
- g_ctf_win_mode = cvar("g_ctf_win_mode");
-//#NO AUTOCVARS END
}
void ctf_setstatus2(entity flag, float shift)
float ctf_score_value(string parameter);
-float g_dm, g_domination, g_ctf, g_tdm, g_keyhunt, g_onslaught, g_assault, g_arena, g_ca, g_lms, g_runematch, g_race, g_nexball, g_cts, g_freezetag, g_keepaway;
float g_cloaked, g_footsteps, g_jump_grunt, g_grappling_hook, g_midair, g_minstagib, g_pinata, g_norecoil, g_minstagib_invis_alpha, g_bloodloss;
float g_warmup_limit;
float g_warmup_allguns;
float g_warmup_allow_timeout;
-float g_ctf_win_mode;
float g_ctf_ignore_frags;
float g_ctf_reverse;
float g_race_qualifying;
.float play_time;
.float death_time;
-.float dead_frame;
.float fade_time;
.float fade_rate;
.vector anim_runbackwards; // player running backward
.vector anim_strafeleft; // player shuffling left quickly
.vector anim_straferight; // player shuffling right quickly
-.vector anim_dead1; // player dead (must be identical to last frame of die1)
-.vector anim_dead2; // player dead (must be identical to last frame of die2)
+//.vector anim_dead1; // player dead (must be identical to last frame of die1)
+//.vector anim_dead2; // player dead (must be identical to last frame of die2)
.vector anim_forwardright; // player running forward and right
.vector anim_forwardleft; // player running forward and left
.vector anim_backright; // player running backward and right
typedef vector(entity player, entity spot, vector current) spawn_evalfunc_t;
.spawn_evalfunc_t spawn_evalfunc;
+
+.entity conveyor;
BADPREFIX("g_respawn_ghosts");
BADPREFIX("g_voice_flood_");
BADPREFIX("rcon_");
- BADPREFIX("settemp_");
BADPREFIX("sv_allowdownloads");
BADPREFIX("sv_autodemo");
BADPREFIX("sv_curl_");
BADCVAR("g_balance_kill_delay");
BADCVAR("g_ca_point_leadlimit");
BADCVAR("g_ctf_captimerecord_always");
- BADCVAR("g_ctf_capture_leadlimit");
BADCVAR("g_ctf_flag_capture_effects");
BADCVAR("g_ctf_flag_glowtrails");
BADCVAR("g_ctf_flag_pickup_effects");
BADCVAR("g_balance_teams_force");
BADCVAR("g_ban_sync_trusted_servers");
BADCVAR("g_ban_sync_uri");
- BADCVAR("g_ctf_capture_limit");
BADCVAR("g_ctf_ignore_frags");
- BADCVAR("g_ctf_win_mode");
BADCVAR("g_domination_point_limit");
BADCVAR("g_friendlyfire");
BADCVAR("g_fullbrightitems");
self.classname = "worldspawn"; // safeguard against various stuff ;)
+ // needs to be done so early because of the constants they create
+ RegisterWeapons();
+ RegisterGametypes();
+
MapInfo_Enumerate();
MapInfo_FilterGametype(MapInfo_CurrentGametype(), MapInfo_CurrentFeatures(), MapInfo_RequiredFlags(), MapInfo_ForbiddenFlags(), 0);
}
head = nextent(head);
}
- // needs to be done so early as they would still spawn
+ // needs to be done so early because of the constants they create
RegisterWeapons();
+ RegisterGametypes();
ServerProgsDB = db_load(strcat("server.db", autocvar_sessionid));
string GetGametype()
{
- return GametypeNameFromType(game);
+ return MapInfo_Type_ToString(MapInfo_LoadedGametype);
}
string getmapname_stored;
Map_Goto_SetStr(argv(position));
}
-void GameResetCfg()
-{
- // settings persist, except...
- localcmd("\nsettemp_restore\n");
-}
-
void Map_Goto(float reinit)
{
- GameResetCfg();
MapInfo_LoadMap(getmapname_stored, reinit);
}
}
if(autocvar_lastlevel)
{
- GameResetCfg();
- localcmd("set lastlevel 0\ntogglemenu\n");
+ cvar_settemp_restore();
+ localcmd("set lastlevel 0\ntogglemenu 1\n");
alreadychangedlevel = TRUE;
return TRUE;
}
TargetMusic_RestoreGame();
}
-void SV_Shutdown()
+void Shutdown()
{
entity e;
- if(gameover > 1) // shutting down already?
- return;
-
- gameover = 2; // 2 = server shutting down
+ gameover = 2;
if(world_initialized > 0)
{
campaign.qh
../common/campaign_common.qh
../common/mapinfo.qh
-../common/util.qc
accuracy.qh
csqcprojectile.qh
../warpzonelib/util_server.qc
../warpzonelib/server.qc
+../common/util.qc
+
../common/if-this-file-errors-scroll-up-and-fix-the-warnings.fteqccfail
{
float i;
WriteByte(MSG_ENTITY, ENT_CLIENT_SCORES_INFO);
- WriteByte(MSG_ENTITY, game);
+ WriteInt24_t(MSG_ENTITY, MapInfo_LoadedGametype);
for(i = 0; i < MAX_SCORE; ++i)
{
WriteString(MSG_ENTITY, scores_label[i]);
#define SP_CTF_RETURNS 8
void ScoreRules_ctf()
{
- float sp_score, sp_caps;
- sp_score = sp_caps = 0;
- switch(g_ctf_win_mode)
- {
- case 0: // caps only
- sp_caps = SFL_SORT_PRIO_PRIMARY;
- break;
- case 1: // caps, then score
- sp_caps = SFL_SORT_PRIO_PRIMARY;
- sp_score = SFL_SORT_PRIO_SECONDARY;
- break;
- case 2: // score only
- default:
- sp_caps = SFL_SORT_PRIO_SECONDARY; // looks better ;)
- sp_score = SFL_SORT_PRIO_PRIMARY;
- break;
- }
-
CheckAllowedTeams(world);
- ScoreRules_basics(2 + (c3>=0), SFL_SORT_PRIO_PRIMARY, sp_score, TRUE); // NOTE this assumes that the rogue team is team 3
- ScoreInfo_SetLabel_TeamScore (ST_CTF_CAPS, "caps", sp_caps);
+ ScoreRules_basics(2 + (c3>=0), SFL_SORT_PRIO_PRIMARY, 0, TRUE); // NOTE this assumes that the rogue team is team 3
+ ScoreInfo_SetLabel_TeamScore (ST_CTF_CAPS, "caps", SFL_SORT_PRIO_PRIMARY);
ScoreInfo_SetLabel_PlayerScore(SP_CTF_CAPS, "caps", SFL_SORT_PRIO_SECONDARY);
ScoreInfo_SetLabel_PlayerScore(SP_CTF_PICKUPS, "pickups", 0);
ScoreInfo_SetLabel_PlayerScore(SP_CTF_FCKILLS, "fckills", 0);
float DoesQ3ARemoveThisEntity();
void SV_OnEntityPreSpawnFunction()
{
- if(self.gametypefilter != "")
- if not(isGametypeInFilter(game, teamplay, have_team_spawns, self.gametypefilter))
+ if (self)
+ if (self.gametypefilter != "")
+ if not(isGametypeInFilter(MapInfo_LoadedGametype, teamplay, have_team_spawns, self.gametypefilter))
{
remove(self);
return;
void spawnfunc_path_corner() { }
void spawnfunc_func_plat()
{
- if (!self.t_length)
- self.t_length = 80;
- if (!self.t_width)
- self.t_width = 10;
-
if (self.sounds == 0)
self.sounds = 2;
if (!self.speed)
self.speed = 150;
+ if (!self.lip)
+ self.lip = 16;
+ if (!self.height)
+ self.height = self.size_z - self.lip;
self.pos1 = self.origin;
self.pos2 = self.origin;
- self.pos2_z = self.origin_z - self.size_z + 8;
+ self.pos2_z = self.origin_z - self.height;
plat_spawn_inside_trigger (); // the "start moving" trigger
InitializeEntity(self, func_vectormamamam_findtarget, INITPRIO_FINDTARGET);
}
+
+void conveyor_think()
+{
+ entity e;
+
+ // set myself as current conveyor where possible
+ for(e = world; (e = findentity(e, conveyor, self)); )
+ e.conveyor = world;
+
+ if(self.state)
+ {
+ for(e = findradius((self.absmin + self.absmax) * 0.5, vlen(self.absmax - self.absmin) * 0.5); e; e = e.chain)
+ if(!e.conveyor.state)
+ if(isPushable(e))
+ {
+ vector emin = e.absmin;
+ vector emax = e.absmax;
+ if(self.solid == SOLID_BSP)
+ {
+ emin -= '1 1 1';
+ emax += '1 1 1';
+ }
+ if(boxesoverlap(emin, emax, self.absmin, self.absmax)) // quick
+ if(WarpZoneLib_BoxTouchesBrush(emin, emax, self, e)) // accurate
+ e.conveyor = self;
+ }
+
+ for(e = world; (e = findentity(e, conveyor, self)); )
+ {
+ if(e.flags & FL_CLIENT) // doing it via velocity has quite some advantages
+ continue; // done in SV_PlayerPhysics
+
+ setorigin(e, e.origin + self.movedir * sys_frametime);
+ move_out_of_solid(e);
+ UpdateCSQCProjectile(e);
+ /*
+ // stupid conveyor code
+ tracebox(e.origin, e.mins, e.maxs, e.origin + self.movedir * sys_frametime, MOVE_NORMAL, e);
+ if(trace_fraction > 0)
+ setorigin(e, trace_endpos);
+ */
+ }
+ }
+
+ self.nextthink = time;
+}
+
+void conveyor_use()
+{
+ self.state = !self.state;
+}
+
+void conveyor_reset()
+{
+ self.state = (self.spawnflags & 1);
+}
+
+void conveyor_init()
+{
+ if (!self.speed)
+ self.speed = 200;
+ self.movedir = self.movedir * self.speed;
+ self.think = conveyor_think;
+ self.nextthink = time;
+ IFTARGETED
+ {
+ self.use = conveyor_use;
+ self.reset = conveyor_reset;
+ conveyor_reset();
+ }
+ else
+ self.state = 1;
+}
+
+void spawnfunc_trigger_conveyor()
+{
+ SetMovedir();
+ EXACTTRIGGER_INIT;
+ conveyor_init();
+}
+
+void spawnfunc_func_conveyor()
+{
+ SetMovedir();
+ InitMovingBrushTrigger();
+ self.movetype = MOVETYPE_NONE;
+ conveyor_init();
+}
GameLogEcho(strcat(":team:", ftos(player_id), ":", ftos(team_number), ":", ftos(type)));
}
-void WriteGameCvars()
-{
- cvar_set("g_dm", ftos(g_dm));
- cvar_set("g_tdm", ftos(g_tdm));
- cvar_set("g_domination", ftos(g_domination));
- cvar_set("g_ctf", ftos(g_ctf));
- cvar_set("g_runematch", ftos(g_runematch));
- cvar_set("g_lms", ftos(g_lms));
- cvar_set("g_arena", ftos(g_arena));
- cvar_set("g_ca", ftos(g_ca));
- cvar_set("g_keyhunt", ftos(g_keyhunt));
- cvar_set("g_assault", ftos(g_assault));
- cvar_set("g_onslaught", ftos(g_onslaught));
- cvar_set("g_race", ftos(g_race));
- cvar_set("g_nexball", ftos(g_nexball));
- cvar_set("g_cts", ftos(g_cts));
- cvar_set("g_freezetag", ftos(g_freezetag));
- cvar_set("g_keepaway", ftos(g_keepaway));
-}
-
-void ReadGameCvars()
-{
- float found;
- float prev;
- float i;
-
- found = 0;
- prev = autocvar_gamecfg;
- for(i = 0; i < 2; ++i)
- {
-//#NO AUTOCVARS START
- found += (g_dm = (!found && (prev != GAME_DEATHMATCH) && cvar("g_dm")));
- found += (g_tdm = (!found && (prev != GAME_TEAM_DEATHMATCH) && cvar("g_tdm")));
- found += (g_domination = (!found && (prev != GAME_DOMINATION) && cvar("g_domination")));
- found += (g_ctf = (!found && (prev != GAME_CTF) && cvar("g_ctf")));
- found += (g_runematch = (!found && (prev != GAME_RUNEMATCH) && cvar("g_runematch")));
- found += (g_lms = (!found && (prev != GAME_LMS) && cvar("g_lms")));
- found += (g_arena = (!found && (prev != GAME_ARENA) && cvar("g_arena")));
- found += (g_ca = (!found && (prev != GAME_CA) && cvar("g_ca")));
- found += (g_keyhunt = (!found && (prev != GAME_KEYHUNT) && cvar("g_keyhunt")));
- found += (g_assault = (!found && (prev != GAME_ASSAULT) && cvar("g_assault")));
- found += (g_onslaught = (!found && (prev != GAME_ONSLAUGHT) && cvar("g_onslaught")));
- found += (g_race = (!found && (prev != GAME_RACE) && cvar("g_race")));
- found += (g_nexball = (!found && (prev != GAME_NEXBALL) && cvar("g_nexball")));
- found += (g_cts = (!found && (prev != GAME_CTS) && cvar("g_cts")));
- found += (g_freezetag = (!found && (prev != GAME_FREEZETAG) && cvar("g_freezetag")));
- found += (g_keepaway = (!found && (prev != GAME_KEEPAWAY) && cvar("g_keepaway")));
-//#NO AUTOCVARS END
-
- if(found)
- break;
-
- prev = -1; // second attempt takes place WITHOUT prev set
- }
-
- if(!found)
- g_dm = 1;
-
- teamplay = 0;
- serverflags &~= SERVERFLAG_TEAMPLAY;
-}
-
void default_delayedinit()
{
if(!scores_initialized)
VoteReset();
- // make sure only ONE type is selected
- ReadGameCvars();
- WriteGameCvars();
-
// find out good world mins/maxs bounds, either the static bounds found by looking for solid, or the mapinfo specified bounds
get_mi_min_max(1);
world.mins = mi_min;
world.maxs = mi_max;
MapInfo_LoadMapSettings(mapname);
+ teamplay = 0;
+ serverflags &~= SERVERFLAG_TEAMPLAY;
if not(cvar_value_issafe(world.fog))
{
MapInfo_ClearTemps();
- // in case mapinfo switched the type
- ReadGameCvars();
-
// set both here, gamemode can override it later
timelimit_override = autocvar_timelimit_override;
fraglimit_override = autocvar_fraglimit_override;
leadlimit_override = autocvar_leadlimit_override;
+ gamemode_name = MapInfo_Type_ToText(MapInfo_LoadedGametype);
if(g_dm)
{
- game = GAME_DEATHMATCH;
- gamemode_name = "Deathmatch";
}
if(g_tdm)
{
- game = GAME_TEAM_DEATHMATCH;
- gamemode_name = "Team Deathmatch";
ActivateTeamplay();
tdm_init();
if(autocvar_g_tdm_team_spawns)
if(g_domination)
{
- game = GAME_DOMINATION;
- gamemode_name = "Domination";
ActivateTeamplay();
fraglimit_override = autocvar_g_domination_point_limit;
leadlimit_override = autocvar_g_domination_point_leadlimit;
if(g_ctf)
{
- game = GAME_CTF;
- gamemode_name = "Capture the Flag";
ActivateTeamplay();
g_ctf_ignore_frags = autocvar_g_ctf_ignore_frags;
- if(g_ctf_win_mode == 2)
- {
- fraglimit_override = autocvar_g_ctf_capture_limit;
- leadlimit_override = autocvar_g_ctf_capture_leadlimit;
- }
- else
- {
- fraglimit_override = autocvar_capturelimit_override;
- leadlimit_override = autocvar_captureleadlimit_override;
- }
+ fraglimit_override = autocvar_capturelimit_override;
+ leadlimit_override = autocvar_captureleadlimit_override;
ctf_init();
have_team_spawns = -1; // request team spawns
}
if(g_runematch)
{
- game = GAME_RUNEMATCH;
- gamemode_name = "Rune Match";
// ActivateTeamplay();
fraglimit_override = autocvar_g_runematch_point_limit;
leadlimit_override = autocvar_g_runematch_point_leadlimit;
if(g_lms)
{
- game = GAME_LMS;
- gamemode_name = "Last Man Standing";
fraglimit_override = autocvar_g_lms_lives_override;
leadlimit_override = 0; // not supported by LMS
if(fraglimit_override == 0)
if(g_arena)
{
- game = GAME_ARENA;
- gamemode_name = "Arena";
fraglimit_override = autocvar_g_arena_point_limit;
leadlimit_override = autocvar_g_arena_point_leadlimit;
maxspawned = autocvar_g_arena_maxspawned;
if(g_ca)
{
- game = GAME_CA;
- gamemode_name = "Clan Arena";
ActivateTeamplay();
fraglimit_override = autocvar_g_ca_point_limit;
leadlimit_override = autocvar_g_ca_point_leadlimit;
}
if(g_keyhunt)
{
- game = GAME_KEYHUNT;
- gamemode_name = "Key Hunt";
ActivateTeamplay();
fraglimit_override = autocvar_g_keyhunt_point_limit;
leadlimit_override = autocvar_g_keyhunt_point_leadlimit;
if(g_freezetag)
{
- game = GAME_FREEZETAG;
- gamemode_name = "Freeze Tag";
ActivateTeamplay();
fraglimit_override = autocvar_g_freezetag_point_limit;
leadlimit_override = autocvar_g_freezetag_point_leadlimit;
if(g_assault)
{
- game = GAME_ASSAULT;
- gamemode_name = "Assault";
ActivateTeamplay();
ScoreRules_assault();
have_team_spawns = -1; // request team spawns
if(g_onslaught)
{
- game = GAME_ONSLAUGHT;
- gamemode_name = "Onslaught";
ActivateTeamplay();
have_team_spawns = -1; // request team spawns
}
if(g_race)
{
- game = GAME_RACE;
- gamemode_name = "Race";
if(autocvar_g_race_teams)
{
if(g_cts)
{
- game = GAME_CTS;
- gamemode_name = "CTS";
g_race_qualifying = 1;
fraglimit_override = 0;
leadlimit_override = 0;
if(g_nexball)
{
- game = GAME_NEXBALL;
- gamemode_name = "Nexball";
fraglimit_override = autocvar_g_nexball_goallimit;
leadlimit_override = autocvar_g_nexball_goalleadlimit;
ActivateTeamplay();
if(g_keepaway)
{
- game = GAME_KEEPAWAY;
- gamemode_name = "Keepaway";
MUTATOR_ADD(gamemode_keepaway);
}
if(teamplay)
entcs_init();
- // save it (for the next startup)
- cvar_set("gamecfg", ftos(game));
-
cache_mutatormsg = strzone("");
cache_lastmutatormsg = strzone("");
}
// CSQC
- self.SendFlags = TNSF_ANG;
+ self.SendFlags |= TNSF_ANG;
return;
0
-\XonoticSingleplayerDialog\Egyjátékos kampány vagy azonnali meccs botok ellen
+\XonoticSingleplayerDialog\Egyjátékos mód vagy azonnali játék gépi vezérlésű botok ellen
-\XonoticMultiplayerDialog\Meccsek neten, a barátaid elleni LAN-on, demó nézés, vagy a játékos beállítások finomítása
-\XonoticMultiplayerDialog/Kiszolgálók\Szervereket keresése a játékhoz
+\XonoticMultiplayerDialog\Meccsek neten, a barátaid elleni helyi hálózaton, demó nézés, vagy a karaktered beállításainak finomítása
+\XonoticMultiplayerDialog/Szerverek keresése a játékhoz
\menu_slist_showempty\Üres szerverek mutatása
-\menu_slist_showfull\Teli szerverek mutatása, amelyeken nincs már szabad hely
-\net_slist_pause\Megállítja a szerver lista frissítés, hogy ne 'ugráljanak össze-vissza'
+\menu_slist_showfull\Teli szerverek is mutatása, amelyeken nincs már szabad férőhely
+\net_slist_pause\Megállítja a szerver lista frissítését, hogy a szerverek ne 'ugráljanak össze-vissza' a listában
\XonoticMultiplayerDialog/Adatok...\Több adat az éppen kiválasztott szerverről
\XonoticMultiplayerDialog/Könyvjelzők\Az éppen kiválasztott szerver megjelölése, hogy a jövőben könnyebben megtalálható legyen
\XonoticMultiplayerDialog/Létrehozás\Saját játékszerver indítása
\XonoticMultiplayerDialog/Demók\Demók böngészése és megtekintése
\XonoticMultiplayerDialog/Játékos beállítások\Játékoskarakter testreszabása
-\XonoticTeamSelectDialog/A 'legjobb' csapathoz csatlakozás (auto-választás)\Önmüködő csapatválasztás (ajánlott)
-\XonoticTeamSelectDialog/piros\Csatlakozás a piros csapathoz
+\XonoticTeamSelectDialog/A 'legjobb' csapathoz csatlakozás (auto-választás)\Önműködő csapatválasztás (ajánlott)
+\XonoticTeamSelectDialog/piros\Csatlakozás a vörös csapathoz
\XonoticTeamSelectDialog/kék\Csatlakozás a kék csapathoz
\XonoticTeamSelectDialog/sárga\Csatlakozás a sárga csapathoz
-\XonoticTeamSelectDialog/rózsaszín\Csatlakozás a Rózsaszín csapathoz
+\XonoticTeamSelectDialog/rózsaszín\Csatlakozás a rózsaszín csapathoz
\timelimit_override\Időhatár percben, aminek elérése után vége a meccsnek
-\fraglimit_override\Pontok száma, amit a meccs vége előtt el kell érni
+\fraglimit_override\Gyilokok száma, amit a meccs vége előtt el kell érni
\menu_maxplayers\A játékosok és botok maximális összszáma, ahányan egyszerre a szerverre csatlakozhatnak
\bot_number\Botok száma a szervereden
-\skill\A botok tapasztaltságának meghatározása
-\g_maplist_votable\Pályaválasztásnál megjelenő térképek száma egy meccs után
+\skill\A botok ügyességi szintjének meghatározása
+\g_maplist_votable\Pályaválasztásnál megjelenő lehetőségek száma egy meccs után
\sv_vote_simple_majority_factor\Egyszerű többség nyerjen egy szavazásban
\XonoticMultiplayerDialog/Haladó beállítások...\Haladó szerverbeállítások
\XonoticMultiplayerDialog/Módosítók...\Módosítók és fegyverarénák
-\g_dodging\Kitérés engedélyezése
+\g_dodging\El tudsz szökkenni jobbra-balra a lövések elől
\g_cloaked\Minden játékos majdnem láthatatlan
\g_footsteps\Lépészaj engedélyezése
-\g_midair\Csak addig lehet sebzés okozni az ellenségen, míg a levegőben van
-\g_vampire\ Annyi pont adódik életerődhöz, amennyi sebzést a másiknak okozol
+\g_midair\Csak addig tudod az ellenséged megsebezni, amíg az levegőben tartózkodik
+\g_vampire\Annyi pont adódik életerődhöz, amennyi sebzést a másiknak okozol
\g_bloodloss\Életerőpont, ami alatt a játékos elkábul a vérveszteségtől
-\sv_gravity\ A tárgyak lassabban esnek a földre, kisebb érték alacsonyabb gravitációt jelent
-\g_grappling_hook\A játékosok megkapják induláskor a vonókampót
-\g_jetpack\A játékosok megkapják induláskor a sugárhajtóműves hátizsákot
+\sv_gravity\A tárgyak lassabban esnek a földre, kisebb érték alacsonyabb gravitációt jelent
+\g_grappling_hook\A játékosok arzenáljában a vonóhorog is szerepelni fog
+\g_jetpack\A játékosok hátán sugárhajtóműves hátizsák van
\g_pinata\A játékosok eldobnak minden fegyvert, amit birtokoltak a haláluk előtt
\g_weapon_stay\A fegyverek a helyükön maradnak, még azután is, hogy valaki felvette őket
\g_weaponarena\ A kiválasztott fegyver aréna minden játékosnak ugyanazt a fegyvert biztosítja korlátlan lőszerrel, és letiltja minden más fegyver felvételét
\menu_weaponarena_with_laser\A lézer is engedélyezett a fegyver arénában
-\g_minstagib\A játékosok egy Minstanex-et kapnak, ami egy railgun végtelen sérülés okozással. Ha a játékos kifogy a lőszerből, van 10 másodperce találni, vagy meghal. A másodlagos tűz mód a lézer, amely nem okoz kárt, de jól jön trükkök végrehajtásánál
-\g_nix\Xonotic cuccok nélkül – Ahelyett hogy a cuccokat szednék fel, mindenki ugyanazzal a fegyverrel játszik. Egy idő után, egy visszaszámlálás indul, ami után mindenki vált egy másik fegyverre
+\g_minstagib\A játékosok egy Minstanex-et kapnak, ami egy azonnal ölő mesterlövész fegyver. Ha a játékos kifogy a lőszerből, 10 másodperce van muníciót találni, vagy meghal. A másodlagos tűz mód a lézer, amely nem okoz kárt, de jól jön trükkös ugrások végrehajtásánál
+\g_nix\Xonotic felvehető fegyverek nélkül – Mindenki ugyanazzal a fegyverrel játszik. Kis idő után visszaszámlálás indul, amely végén mindenki fegyvert vált
\g_nix_with_laser\Mindig legyen a lézer a Nix mellett kiegészítésül
-\XonoticMultiplayerDialog/Mind jelölve\Minden térkép kiválasztása
-\XonoticMultiplayerDialog/Egysem jelölve\Egyik térkép sincs kiválasztva
+\XonoticMultiplayerDialog/Mind jelölve\Minden pálya kiválasztása
+\XonoticMultiplayerDialog/Egyet se jelölj be\Egyik pálya sincs kiválasztva
-\XonoticMultiplayerDialog/Timedemo\Leméri, hogy a számítógéped milyen gyorsan képes futtatni a kiválasztott demók.
+\XonoticMultiplayerDialog/Timedemo\Leméri, hogy a számítógéped milyen gyorsan képes futtatni a kiválasztott demót.
\fov\A látószög fokban mérve 60-tól 130-ig, alapérték 90
-\cl_bobcycle\Nézet kilengés gyakorisága, letiltás esetén nincs kilengés
-\cl_zoomfactor\ Mekkora a nagyítási tényező a ráközelítés gomb megnyomása esetén
-\cl_zoomsensitivity\Mennyire változtatja a nagyítás az érzékenységet, 0-tól (kisebb érzékenység) 1-ig (nem változik az érzékenység)
-\cl_zoomspeed\Milyen gyorsan hajtsa végre a nagyítást, eltiltás esetén azonnali nagyítás
-\XonoticMultiplayerDialog/ Fegyver beállítások...\A legkedveltebb fegyver, önműködő fegyverváltás és fegyvermodell beállítások
+\cl_bobcycle\A megjelenített kép biccentése járás közben.
+\cl_zoomfactor\A nagyítási szorzó a ráközelítés gomb megnyomása esetén
+\cl_zoomsensitivity\Mennyire változtatja a nagyítás az egér érzékenységet, 0-tól (kisebb érzékenység) 1-ig (nem változik az érzékenység)
+\cl_zoomspeed\Milyen gyorsan hajtsa végre a távcső a nagyítást. Tiltás esetén a nagyítás azonnal végbemegy
+\XonoticMultiplayerDialog/Fegyver beállítások...\A legkedveltebb fegyver, önműködő fegyverváltás és fegyvermodell pozíciójának beállításai
-\cl_weaponpriority_useforcycling\ A fenti lista használata, amikor az egérgörgővel lépkedsz a fegyverek között
+\cl_weaponpriority_useforcycling\A fenti lista használata, amikor az egérgörgővel lépkedsz a fegyverek között
\cl_autoswitch\Önmagától átvált az újonnan felvett fegyverekre, ha azok jobbak az addig használtnál
\r_drawviewmodel\Fegyvermodell kirajzolása
-\cl_gunalign\Fegyvermodell helyzete; újracsatlakozás szükséges
+\cl_gunalign\Fegyvermodell helyzete; játék közben újracsatlakozás szükséges az adott szerverhez
-\crosshair_per_weapon\Különböző célkereszt beállítása az éppen tartott fegyverhez; hasznos a fegyvermodell nélküli játékban
-\crosshair_color_per_weapon\A célkereszt színének változtatása az éppen tartott fegyvertől függően
-\crosshair_size\ A célkereszt méretének változtatása
-\crosshair_alpha\A célkereszt átlátszatlanságának változtatása
-\crosshair_color\A célkereszt színének változtatása
+\crosshair_per_weapon\Különböző célkeresztek beállítása az éppen kézben tartott fegyverhez; hasznos lehet fegyvermodell nélküli játék során
+\crosshair_color_per_weapon\A célkereszt színének változtatása az éppen kézben tartott fegyvertől függően
+\crosshair_size\ A célkereszt méretének megváltoztatása
+\crosshair_alpha\A célkereszt átlátszóságának megváltoztatása
+\crosshair_color\A célkereszt színének megváltoztatása
\sbar_hudselector\A régi HUD elrendezés használata
-\XonoticMultiplayerDialog/Iránypont beállítások...\-
+\XonoticMultiplayerDialog/Irányjelzők beállításai...\-
\_cl_name\A név, amivel szerepelsz a játékban
-\XonoticSettingsDialog\A beállítások változtatása
-\XonoticCreditsDialog\A Xonotic készítésében résztvettek
+\XonoticSettingsDialog\A beállítások megváltoztatása
+\XonoticCreditsDialog\A Xonotic készítőinek és segítségnyújtóinak listája
\XonoticTeamSelectDialog\-
\XonoticMutatorsDialog\-
\XonoticMapInfoDialog\-
\XonoticSettingsDialog/Bemenet\Bemenet szabályozása
\sensitivity\Egér sebesség többszörözése
-\menu_mouse_speed\Egér sebesség többszörözése a menüben, nincs hatással a játékbeli célzásra
+\menu_mouse_speed\Egér sebessége a menüben, nincs hatással a játékbeli célzásra
\m_filter\Elsimítja az egérmozgást, de a célzás érzékenység némiképp csökken
-\m_pitch\Forditott egérmozgás az Y-tengely mentén
+\m_pitch\Fordított egérmozgás az Y-tengely mentén
\vid_dgamouse\Segíti a DGA egér bemenet használatát
\con_closeontoggleconsole\Lehetővé teszi, hogy a konzolnyitó billentyű, a következő megnyomásra visszazárja azt
\vid_width\Képernyő felbontás
\vid_bitsperpixel\Hány bit per pixel(BPP)-el jelenítse meg a képet, 32 az ajánlott
\vid_fullscreen\Teljes képernyős mód engedélyezése (alapértelmezett: engedélyezve)
-\vid_vsync\A függőleges szinkronizáció engedélyezése, hogy megelőzze a kép szétesést, a másodpercenkénti képkockák számát a képernyő frissítési rátához igazítja (alapértelmezett: letiltva)
+\vid_vsync\A függőleges szinkronizáció engedélyezése, hogy megelőzze a kép szétesését, a másodpercenkénti képkockák számát a képernyő frissítési rátához igazítja (alapértelmezett: letiltva)
\r_glsl\Az OpenGL 2.0 pixel árnyalók alkalmazása a világításhoz (alapértelmezett: engedélyezve)
\gl_vbo\A statikus geometriákhoz Vertex Buffer Object-eket használ a videómemóriában a gyorsabb számítás érdekében (alapértelmezett: Csúcspontok és háromszögek)
\r_depthfirst\Eltávolítja a kép csak a távolban tartozó részeit, mielőtt a normál számítás kezdődne (alapértelmezett: letiltva)
\gl_texturecompression\Textúrák tömörítése, hogy a videokártyán található memóriából kevesebbet használjon (alapértelmezett: nem)
-\gl_finish\A CPU megvárja amíg a GPU befejezi a képkockát, ez segít egyes gépeken jelentkező furcsa bemeneti és videó késés elkerülésében (alapértelmezett: letiltva)
+\gl_finish\A CPU megvárja amíg a GPU befejezi a képkockát leképzését, ez segít egyes gépeken jelentkező furcsa bemeneti és videó késés elkerülésében (alapértelmezett: letiltva)
\v_brightness\A fekete fényessége (alapérték: 0)
\v_contrast\A fehér fényessége (alapérték: 1)
\v_gamma\Fordított gamma korrekciós érték, egy fényességi hatás , ami nem befolyásolja a fehéret vagy feketét (alapérték: 1.125)
****
\XonoticSettingsDialog/Hatások\Hatások beállítása
\r_subdivisions_tolerance\Az ívek finomságának változtatása a pályán (alapértelmezett: normál)
-\gl_picmip\ A textúrák élességének változtatása . Kisebb érték hatásosan csökkenti a textúra memória használatot, de a textúrák megjelenése homályosabb lehet. (alapértelmezett: jó)
+\gl_picmip\ A textúrák élességének változtatása. Kisebb érték hatásosan csökkenti a textúra memória használatot, de a textúrák megjelenése homályosabb lehet. (alapértelmezett: jó)
\r_picmipworld\Ha ha be van állítva, csak a modellek textúra minősége csökken (alapértelmezett: engedélyezve)
-\mod_q3bsp_nolightmaps\Magas felbontású fény térképek használata, ami szépen fog kinézni, de megemeli a szükséges videó memória mennyiségét (alapértelmezett: engedélyezve)
-\cl_particles_quality\ A részecskék számának megtöbbszörözése. Kisebb érték kevesebb részecskét jelent, ami jobb teljesítményt ad (alapérték: 0,5)
+\mod_q3bsp_nolightmaps\Magas felbontású fény térképek használata, ami szépen néz ki, de megemeli a szükséges videó memória mennyiségét (alapértelmezett: engedélyezve)
+\cl_particles_quality\A részecskék számának megtöbbszörözése. Kisebb érték kevesebb részecskét jelent, ami jobb teljesítményt ad (alapérték: 0,5)
\r_drawparticles_drawdistance\A részecskék csak eddig a távolsági rajzolódnak ki (alapérték: 1000)
-\cl_decals\A minták engedélyzése (lövés nyomok és vér) (alapértelmezett: engedélyezve)
+\cl_decals\Foltok engedélyzése (égési és robbanási nyomok, vérfoltok) (alapértelmezett: engedélyezve)
\r_drawdecals_drawdistance\A minták csak eddig a távolsági rajzolódnak ki (alapérték: 300)
-\cl_decals_time\Időtartam másodpercben,ami után a minták sötétülnek (alapérték: 2)
+\cl_decals_time\A foltok eltűnésének kezdetének időtartama másodpercben (alapérték: 2)
\cl_gentle\Kicseréli a vért és húscafatokat olyan tartalomra, ami nem tartalmaz vérontást (alapértelmezett: letiltva)
\cl_nogibs\A húscafatok mennyiségének csökkentése vagy teljesen eltávolítása (alapértelmezett: sok)
\v_kicktime\Mennyi ideig legyen a kép kiütve a sérülés után (alapérték: 0)
-\gl_texture_anisotropy\Aniszotropikus szűrés minősége (alapérték: 1x)
+\gl_texture_anisotropy\Anizotropikus szűrés minősége (alapérték: 1x)
\r_glsl_deluxemapping\Képpontokkénti világítás hatások használata (alapértelmezett: engedélyezve)
-\r_shadow_gloss\Fényesség térkép használat a textúrákon, amik támogatják azt (alapértelmezett: engedélyezve)
+\r_shadow_gloss\Csillogás a textúrákon, amik támogatják azt (alapértelmezett: engedélyezve)
\gl_flashblend\A gyorsabb, de csúnyább dinamikus fények engedélyezése a világos fénykörök számításához, a valós dinamikus világítás helyett (alapértelmezett: letiltva)
-\r_shadow_realtime_dlight\A dinamikus világítások engedélyezése, mint robbanások és rakéták fényei (alapértelmezett: engedélyezve)
+\r_shadow_realtime_dlight\A dinamikus világítások engedélyezése, mint robbanások és rakéták fényei (alapértelmezett: engedélyezve)
\r_shadow_realtime_dlight_shadows\Árnyékok számítása a dinamikus fényekből (alapértelmezett: letiltva)
\r_shadow_realtime_world\A teljes valósidejű világ világítások engedélyezése azokon a térképeken, amik támogatják Megjegyzendő, hogy jelentősen csökkenheti a teljesítményt (alapértelmezett: letiltva)
\r_shadow_realtime_world_shadows\A valósidejű világ fényekhez tartozó árnyékok engedélyezése (alapértelmezett: letiltva)
\r_showsurfaces\Textúra összetettség letiltása nagyon lassú gépeken. Ez egy nagy gyorsulást hozz a teljesítményben, de nagyon csúnyán néz ki. (alapértelmezett: letiltva)
\r_glsl_offsetmapping\Offset mapping hatás , ami rücskössé teszi a textúrák megjelenését, mintha kiállna a 2D-s felületből (alapértelmezett: letiltva)
\r_glsl_offsetmapping_reliefmapping\Magasabb minőségű offset mapping, ami szintén óriási hatása van a teljesítményre (alapértelmezett: letiltva)
-\r_water\Tükröződések és fénytörések minősége, óriási hatással van a teljesítményre azokon a térképeken,ahol vannak tükröződő felületek (alapértelmezett: letiltva)
+\r_water\Tükröződések és fénytörések minősége, óriási hatással van a teljesítményre azokon a pályákon, ahol vannak tükröződő felületek (alapértelmezett: letiltva)
\r_water_resolutionmultiplier\Tükröződések/fénytörések felbontása (alapértelmezett: jó)
\r_coronas\A fényudvar engedélyezése bizonyos világítás körül. (alapértelmezett: engedélyezve)
\r_coronas_occlusionquery\A fényudvar elhalványodik a láthatósága szerint (alapértelmezett: engedélyezve)
\r_bloom\A bloom hatás engedélyezése, aminél a nagyon világos pixelek növelik a szomszédaik világosságát is. Nagy hatással van a teljesítményre. (alapértelmezett: letiltva)
\r_hdr\A bloom magas minőségű verziója, ami óriási hatással van a teljesítményre. (alapértelmezett: letiltva)
-\r_motionblur\ Mozgási elmosódás nagysága - ajánlott értéke 0.5
+\r_motionblur\Mozgási elmosódás nagysága - ajánlott értéke 0.5
\r_damageblur\Mozgási elmosódás mértéke sérülés esetén – ajánlott értéke 0.4
****
FruitieX
MirceaKitsune
Jakob "tZork" Markström Gröhn
+Ruszkai "C.Brutail" Ákos
*Music / Sound FX
mand1nga
*Marketing / PR
Tyler "-z-" Mulligan
mand1nga
+Ruszkai "C.Brutail" Ákos
*Legal
Rudolf "divVerent" Polzer
*Hungarian
xaN1C4n3
+Ruszkai "C.Brutail" Ákos
*Italian
Antonio "terencehill" Piu
Paul Scott
PlasmaSheep
Przemysław "atheros" Grzywacz
-Ruszkai "C.Brutail" Ákos
{SC0RP} - Ian "ID" Dorrell
Severin "sev" Meyer
SoulKeeper_p
*Création des cartes
FruitieX
MirceaKitsune
+Ruszkai "C.Brutail" Ákos
*Musique / Sons
mand1nga
*Marketing / Management du Projet
Tyler "-z-" Mulligan
mand1nga
+Ruszkai "C.Brutail" Ákos
*Légalité
Rudolf "divVerent" Polzer
kojn
Maik "SavageX" Merten
MrBougo
-Ruszkai "C.Brutail" Ákos
Samual Lenks
Severin "sev" Meyer
Stephan "esteel" Stahl
-**Csapat magja
+**A Csapat magja - Team Xonotic
Rudolf "divVerent" Polzer
Tyler "-z-" Mulligan
Saulo "mand1nga" Gil
Jakob "tZork" Markström Gröhn
-**Feladat felelösök
+**Feladat felelősök
*Művészet
Sahil "DiaboliK" Singhal
FruitieX
MirceaKitsune
Jakob "tZork" Markström Gröhn
+Ruszkai "C.Brutail" Ákos
*Zene / Hang effekt
mand1nga
*Marketing / PR
Tyler "-z-" Mulligan
mand1nga
+Ruszkai "C.Brutail" Ákos
-*Engedélyek
+*Jogi engedélyek
Rudolf "divVerent" Polzer
Merlijn Hofstra
by Forest "LordHavoc" Hale
-**Forditók
+**Fordítók
*Finn
Henry "Exitium" Sanmark
*Magyar
xaN1C4n3
+Ruszkai "C.Brutail" Ákos
*Német
Rudolf "divVerent" Polzer
Paul Scott
PlasmaSheep
Przemysław "atheros" Grzywacz
-Ruszkai "C.Brutail" Ákos
{SC0RP} - Ian "ID" Dorrell
Severin "sev" Meyer
SoulKeeper_p
FruitieX
MirceaKitsune
Jakob "tZork" Markström Gröhn
+Ruszkai "C.Brutail" Ákos
*Музика / Звукові ефекти
mand1nga
*Маркетинг / PR
Tyler "-z-" Mulligan
mand1nga
+Ruszkai "C.Brutail" Ákos
*Правові питання
Rudolf "divVerent" Polzer
Paul Scott
PlasmaSheep
Przemysław "atheros" Grzywacz
-Ruszkai "C.Brutail" Ákos
{SC0RP} - Ian "ID" Dorrell
Severin "sev" Meyer
SoulKeeper_p