-Tue Jul 7 07:23:45 CEST 2020
+Thu Jul 16 07:23:56 CEST 2020
#
# Translators:
# 77960155d0a4db79ed901e7c2ee242e7_4b8c532, 2016
+# aaa627661149cfc7c57d1c75ef650b07_039425b, 2018
# Hector Champipis <hector-hab@hotmail.com>, 2019
# 77960155d0a4db79ed901e7c2ee242e7_4b8c532, 2016
# Vindex <kon14.inside@gmail.com>, 2014
# Konstantinos Mihalenas <ldinos99@gmail.com>, 2014
# Marinus Savoritias, 2018
-# Marinus Savoritias, 2018
+# aaa627661149cfc7c57d1c75ef650b07_039425b, 2018
# MasterWord, 2016
# Mensious Mensious <ektoras@tutanota.com>, 2018-2019
# Vindex <kon14.inside@gmail.com>, 2014
"Project-Id-Version: Xonotic\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-07 07:23+0200\n"
-"PO-Revision-Date: 2020-07-06 21:37+0000\n"
+"PO-Revision-Date: 2020-07-14 22:31+0000\n"
"Last-Translator: LegendGuard\n"
"Language-Team: Spanish (http://www.transifex.com/team-xonotic/xonotic/"
"language/es/)\n"
#: qcsrc/common/notifications/all.inc:302
#, c-format
msgid "^BG%s^K1 hit the ground with a bit too much force%s%s"
-msgstr "^BG%s^K1 chocó contra el suelo con un poca fuerza%s%s"
+msgstr "^BG%s^K1 chocó contra el suelo con poca fuerza%s%s"
#: qcsrc/common/notifications/all.inc:302
#, c-format
#: qcsrc/common/notifications/all.inc:333
#, c-format
msgid "^BG%s^K1 got turned into smoldering gibs by an MLRS turret%s%s"
-msgstr "^BG%s^K1 fue convertido en entrañas ardientes por una torreta MLRS%s%s"
+msgstr "^BG%s^K1 fue convertido en vísceras ardientes por una torreta MLRS%s%s"
#: qcsrc/common/notifications/all.inc:334
#, c-format
#: qcsrc/common/notifications/all.inc:395
#, c-format
msgid "^BG%s^F3 forfeited"
-msgstr "^BG%s^F3 perdido"
+msgstr "^BG%s^F3 ha abandonado"
#: qcsrc/common/notifications/all.inc:396
#, c-format
#: qcsrc/common/notifications/all.inc:417
#, c-format
msgid "^BG%s^F3 was kicked for excessive teamkilling"
-msgstr "^BG%s^F3 ha sido expulsado por matar a sus propios compañeros"
+msgstr "^BG%s^F3 ha sido expulsado por matar a tus propios compañeros"
#: qcsrc/common/notifications/all.inc:418
#, c-format
#: qcsrc/common/notifications/all.inc:432
msgid "^TC^TT ^BGteam scores!"
-msgstr "¡El equipo ^TC^TT^BG ha anotado!"
+msgstr "¡El equipo ^TC^TT^BG ha acertado!"
#: qcsrc/common/notifications/all.inc:434
#, c-format
#: qcsrc/common/notifications/all.inc:457
#, c-format
msgid "^BG%s^K1 blew themself up with their Devastator%s%s"
-msgstr "^BG%s^K1 se explotó a si mismo con su Devastador%s%s"
+msgstr "^BG%s^K1 se explotó a sí mismo con su Devastador%s%s"
#: qcsrc/common/notifications/all.inc:458
#, c-format
#: qcsrc/common/notifications/all.inc:469
#, c-format
msgid "^BG%s^K1 played with tiny Hagar rockets%s%s"
-msgstr "^BG%s^K1 jugó con pequeños misiles de Hagar%s%s"
+msgstr "^BG%s^K1 jugó con los pequeños misiles de Hagar%s%s"
#: qcsrc/common/notifications/all.inc:470
#, c-format
#: qcsrc/common/notifications/all.inc:471
#, c-format
msgid "^BG%s^K1 got a little jumpy with their HLAC%s%s"
-msgstr "^BG%s^K1 se puso un poco acelerado con su HLAC%s%s"
+msgstr "^BG%s^K1 se puso un poco nervioso con su HLAC%s%s"
#: qcsrc/common/notifications/all.inc:472
#, c-format
#: qcsrc/common/notifications/all.inc:475
#, c-format
msgid "^BG%s%s^K1 was sniped by ^BG%s^K1's Machine Gun%s%s"
-msgstr "^Bg%s%s^K1 fue baleado por la Ametralladora de ^BG%s^K1%s%s"
+msgstr "^Bg%s%s^K1 fue arrebatado por la Ametralladora de ^BG%s^K1%s%s"
#: qcsrc/common/notifications/all.inc:476
#, c-format
#, c-format
msgid "^BG%s%s^K1 was sniped by ^BG%s^K1's Overkill Heavy Machine Gun%s%s"
msgstr ""
-"^BG%s%s^K1 fue baleado por la Ametralladora Pesada Overkill de ^BG%s^K1%s%s"
+"^BG%s%s^K1 fue arrebatado por la Ametralladora Pesada Overkill de ^BG%s^K1%s"
+"%s"
#: qcsrc/common/notifications/all.inc:485
#, c-format
#: qcsrc/common/notifications/all.inc:494
#, c-format
msgid "^BG%s%s^K1 was sniped with a Rifle by ^BG%s^K1%s%s"
-msgstr "^BG%s%s^K1 fue baleado por ^BG%s^K1 con un Rifle%s%s"
+msgstr "^BG%s%s^K1 fue arrebatado por ^BG%s^K1 con un Rifle%s%s"
#: qcsrc/common/notifications/all.inc:495
#, c-format
#: qcsrc/common/notifications/all.inc:536
msgid "^F4Round starts in ^COUNT"
-msgstr "^F4Ronda empieza en ^COUNT"
+msgstr "^F4La ronda empieza en ^COUNT"
#: qcsrc/common/notifications/all.inc:537
msgid "^F4Round cannot start"
-msgstr "^F4Ronda no puede empezar"
+msgstr "^F4La ronda no puede empezar"
#: qcsrc/common/notifications/all.inc:542
msgid "^F2Don't camp!"
#: qcsrc/common/notifications/all.inc:626
msgid "^K1You hit the ground with a crunch!"
-msgstr "^K1¡Golpeaste la tierra con un crujido!"
+msgstr "^K1¡Chocaste contra el suelo con un crujido!"
#: qcsrc/common/notifications/all.inc:627
msgid "^K1You felt a little too hot!"
#: qcsrc/common/notifications/all.inc:656
#, c-format
msgid "^K1Moron! You fragged ^BG%s^K1, a team mate!"
-msgstr "^K1¡Imbécil! ¡Has eliminado a ^BG%s^K1, un compañero!"
+msgstr "^K1¡Imbécil! ¡Has eliminado a ^BG%s^K1, un compañero tuyo!"
#: qcsrc/common/notifications/all.inc:656
#, c-format
#: qcsrc/menu/xonotic/dialog_multiplayer_profile.qc:174
#: qcsrc/menu/xonotic/dialog_multiplayer_profile.qc:187
msgid "Undisclosed"
-msgstr "No revelado"
+msgstr "Desconocido"
#: qcsrc/common/util.qc:1439
msgid "<KEY NOT FOUND>"
#: qcsrc/menu/xonotic/dialog_settings_game_model.qc:63
msgid "Gibs:"
-msgstr "Gibs:"
+msgstr "Vísceras:"
#: qcsrc/menu/xonotic/dialog_settings_game_model.qc:65
msgid "GIBS^None"
#: qcsrc/menu/xonotic/dialog_settings_user.qc:67
msgid "Set language"
-msgstr "Elegir idioma:"
+msgstr "Elegir idioma"
#: qcsrc/menu/xonotic/dialog_settings_user.qc:72
msgid "Disable gore effects and harsh language"
-msgstr "Deshabilitar efectos sangrientos y lenguage ofensivo"
+msgstr "Deshabilitar efectos sangrientos y lenguaje ofensivo"
#: qcsrc/menu/xonotic/dialog_settings_user.qc:73
msgid "Replace blood and gibs with content that does not have any gore effects"
msgstr ""
-"Reemplazar sangre y carne por contenido que no tenga nada de efectos "
+"Reemplazar sangre y vísceras por contenido que no tenga nada de efectos "
"sangrientos"
#: qcsrc/menu/xonotic/dialog_settings_user_languagewarning.qc:10
#: qcsrc/menu/xonotic/dialog_settings_video.qc:158
msgid "Use OpenGL 2.0 shaders (GLSL)"
-msgstr "Usar shaders OpenGL2.0 (GLSL)"
+msgstr "Usar shaders OpenGL 2.0 (GLSL)"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:163
msgid "Psycho coloring (easter egg)"
"Project-Id-Version: Xonotic\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-07 07:23+0200\n"
-"PO-Revision-Date: 2020-06-07 05:23+0000\n"
-"Last-Translator: divVerent <divVerent@xonotic.org>\n"
+"PO-Revision-Date: 2020-07-09 17:30+0000\n"
+"Last-Translator: Oi Suomi On! <oisuomion@protonmail.com>\n"
"Language-Team: Finnish (http://www.transifex.com/team-xonotic/xonotic/"
"language/fi/)\n"
"Language: fi\n"
#: qcsrc/client/hud/panel/quickmenu.qc:799
msgid "QMCMD^strength soon"
-msgstr ""
+msgstr "QMCMD^voimistus pian"
#: qcsrc/client/hud/panel/quickmenu.qc:800
msgid "QMCMD^free item %x^7 (l:%y^7)"
#: qcsrc/client/hud/panel/quickmenu.qc:836
msgid "QMCMD^Change spectator camera"
-msgstr ""
+msgstr "QMCMD^Muuta katselijakameraa"
#: qcsrc/client/hud/panel/quickmenu.qc:841
#: qcsrc/client/hud/panel/quickmenu.qc:845
#: qcsrc/client/hud/panel/quickmenu.qc:844
msgid "QMCMD^Wall collision"
-msgstr ""
+msgstr "QMCMD^Seinätörmäys"
#: qcsrc/client/hud/panel/quickmenu.qc:848
msgid "QMCMD^Fullscreen"
#: qcsrc/client/hud/panel/quickmenu.qc:865
msgid "QMCMD^Spectate a player"
-msgstr ""
+msgstr "QMCMD^Katsele pelaajaa"
#: qcsrc/client/hud/panel/racetimer.qc:59
#, c-format
#: qcsrc/common/mutators/mutator/buffs/buffs.qh:11
msgid "Buff"
-msgstr "Puhvi"
+msgstr "Tsemppi"
#: qcsrc/common/mutators/mutator/damagetext/ui_damagetext.qc:8
msgid "Damage text"
#: qcsrc/common/notifications/all.inc:265
#, c-format
msgid "^BG%s%s^K1 was killed by ^BG%s^K1's ^BG%s^K1 buff ^K1%s%s"
-msgstr "^BG%s%s^K1 tapettiin ^BG%s^K1's ^BG%s^K1 puhvilla ^K1%s%s"
+msgstr "^BG%s%s^K1 tapettiin ^BG%s^K1's ^BG%s^K1 tsempillä ^K1%s%s"
#: qcsrc/common/notifications/all.inc:265
#, c-format
msgid "^BG%s%s^K1 was scored against by ^BG%s^K1's ^BG%s^K1 buff ^K1%s%s"
-msgstr "^BG%s%s^K1 otettiin pisteitä pois ^BG%s^K1's ^BG%s^K1 puhvilla ^K1%s%s"
+msgstr ""
+"^BG%s%s^K1 otettiin pisteitä pois ^BG%s^K1's ^BG%s^K1 tsempillä ^K1%s%s"
#: qcsrc/common/notifications/all.inc:266
#, c-format
#: qcsrc/common/notifications/all.inc:358
#, c-format
msgid "^BG%s^K3 was automatically revived after %s seconds"
-msgstr ""
+msgstr "^BG%s^K3 elvytettiin automaattisesti %s sekunnin kuluttua"
#: qcsrc/common/notifications/all.inc:359
#, c-format
#: qcsrc/common/notifications/all.inc:368
#, c-format
msgid "^BG%s^BG got the %s^BG buff!"
-msgstr "^BG%s^BG sai %s^BG puhvin!"
+msgstr "^BG%s^BG sai %s^BG tsempin!"
#: qcsrc/common/notifications/all.inc:369
#, c-format
msgid "^BG%s^BG lost the %s^BG buff!"
-msgstr "^BG%s^BG menetti %s^BG puhvin!"
+msgstr "^BG%s^BG menetti %s^BG tsempin!"
#: qcsrc/common/notifications/all.inc:370
#: qcsrc/common/notifications/all.inc:683
#, c-format
msgid "^BGYou dropped the %s^BG buff!"
-msgstr "^BGSinä pudotit %s^BG puhvin!"
+msgstr "^BGSinä pudotit %s^BG tsempin!"
#: qcsrc/common/notifications/all.inc:371
#: qcsrc/common/notifications/all.inc:684
#, c-format
msgid "^BGYou got the %s^BG buff!"
-msgstr "^BGSinulla on %s^BG puhvi!"
+msgstr "^BGSinulla on %s^BG tsemppi!"
#: qcsrc/common/notifications/all.inc:373
#: qcsrc/common/notifications/all.inc:687
#: qcsrc/common/notifications/all.inc:403
#, c-format
msgid "^BG%s^BG captured a control point"
-msgstr ""
+msgstr "^BG%s^BG kaappasi hallintapisteen"
#: qcsrc/common/notifications/all.inc:404
#, c-format
#: qcsrc/common/notifications/all.inc:405
#, c-format
msgid "^TC^TT^BG team control point has been destroyed by %s"
-msgstr ""
+msgstr "^TC^TT^BG joukkueen hallintapiste on tuhottu täten %s"
#: qcsrc/common/notifications/all.inc:406
msgid "^TC^TT^BG generator has been destroyed"
#: qcsrc/common/notifications/all.inc:665
#, c-format
msgid "^F2Extra lives taken: ^K1%s"
-msgstr ""
+msgstr "^F2Lisäelämiä napattu: ^K1%s"
#: qcsrc/common/notifications/all.inc:667
#, c-format
#: qcsrc/common/notifications/all.inc:670
#, c-format
msgid "^K3You were automatically revived after %s seconds"
-msgstr ""
+msgstr "^K3Sinut elvytettiin automaattisesti %s sekunnissa"
#: qcsrc/common/notifications/all.inc:672
msgid "^BGThe generator is under attack!"
#: qcsrc/common/notifications/all.inc:719 qcsrc/menu/xonotic/campaign.qc:244
#, c-format
msgid "Level %s: "
-msgstr ""
+msgstr "Taso %s: "
#: qcsrc/common/notifications/all.inc:719
#, c-format
msgid "^BGPress ^F2%s^BG to enter the game"
-msgstr ""
+msgstr "^BGPaina ^F2%s^BG liittyäksesi peliin"
#: qcsrc/common/notifications/all.inc:722
#, c-format
#: qcsrc/common/notifications/all.inc:726
msgid "^BGYou captured a control point"
-msgstr ""
+msgstr "^BGSinä kaappasit hallintapisteen"
#: qcsrc/common/notifications/all.inc:727
#, c-format
#: qcsrc/common/notifications/all.inc:728
msgid "^TC^TT^BG team captured a control point"
-msgstr ""
+msgstr "^TC^TT^BG joukkue kaappasi hallintapisteen"
#: qcsrc/common/notifications/all.inc:729
msgid "^BGThis control point currently cannot be captured"
#: qcsrc/menu/xonotic/dialog_disconnect.qc:16
msgid "Are you sure to disconnect from server?"
-msgstr ""
+msgstr "Haluatko varmasti katkaista yhteyden palvelimelle?"
#: qcsrc/menu/xonotic/dialog_disconnect.qc:19
msgid "I would disconnect from server..."
-msgstr ""
+msgstr "Katkaisisin palvelinyhteyden..."
#: qcsrc/menu/xonotic/dialog_disconnect.qc:22
msgid "I would play more!"
-msgstr ""
+msgstr "Pelaisin lisää!"
#: qcsrc/menu/xonotic/dialog_disconnect.qh:6
#: qcsrc/menu/xonotic/dialog_multiplayer_media_demo_startconfirm.qh:6
#: qcsrc/menu/xonotic/dialog_disconnect.qh:7
msgid "Disconnect from the server you are connected to"
-msgstr ""
+msgstr "Katkaise yhteys palvelimeen johon olet yhdistettynä"
#: qcsrc/menu/xonotic/dialog_firstrun.qc:39
msgid ""
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:93
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:175
msgid "Buffs"
-msgstr "Puhvit"
+msgstr "Tsempit"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:95
msgid "Overkill"
"Enable dodging (quick acceleration in a given direction). Double-tap a "
"directional key to dodge"
msgstr ""
+"Kytke päälle väistöt (pikakiihdytys annettuun suuntaan). \n"
+"Kaksoistäppää nuolinäppäintä väistääksesi"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:168
msgid "An explosion occurs when two players collide"
-msgstr ""
+msgstr "Tapahtuu räjähdys kahden pelaajan törmätessä"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:172
msgid "All players are almost invisible"
"Enable buff pickups (random bonuses like Medic, Invisible, etc.) on the maps "
"that support it"
msgstr ""
+"Kytke tsemppipoimittavat päälle (satunnaisia lisäetuja kuten ensiapu, "
+"näkymättömyys, jne.) niitä tukevissa kartoissa"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:181
msgid "Only possible to inflict damage on your enemy while they're airborne"
"Amount of health below which players start bleeding out (health rots and "
"they can't jump)"
msgstr ""
+"Terveyden määrä jonka alittuessa pelaajat alkavat vuotamaan kuiviin (vointi "
+"repsahtaa eivätkä kykene hyppäämään)"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:199
msgid "Make things fall to the ground slower (percentage of normal gravity)"
msgstr ""
+"Aseta esineet putoamaan maahan hitaammin (prosenttimäärä perinteiseen "
+"painovoimaan nähden)"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:208
msgid "Weapon & item mutators:"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:212
msgid "Players spawn with the grappling hook. Press the 'hook' key to use it"
msgstr ""
+"Pelaajat syntyvät heittokoukun kera. Paina 'koukku' näppäintä sitä "
+"käyttääksesi "
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:216
msgid ""
"Players spawn with the jetpack. Double-tap 'jump' or press the 'jetpack' key "
"to use it"
msgstr ""
+"Pelaajat syntyvät lentopakkauksen kera. Kaksoistäppää 'hyppy' tai paina "
+"'lentopakkaus' näppäintä sitä käyttääksesi"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:220
msgid ""
"Projectiles can't be destroyed. However, you can still explode Electro orbs "
"with the Electro primary fire"
msgstr ""
+"Ammuksia ei voi tuhota. Voit, siltikin, räjäyttää sähköpalloja "
+"ensisijaisella sähkötulituksella "
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:225
msgid ""
"Some weapon spawns will be randomly replaced with new weapons: Heavy Laser "
"Assault Cannon, Mine Layer, Rifle, T.A.G. Seeker"
msgstr ""
+"Jotkut asesyntymät tullaan vaihtamaan satunnaisesti uusilla aseilla: Raskas-"
+"laser rynnäkkökanuuna, Miinanlevittäjä, Kivääri, T.A.G. Hakeutuja "
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:230
msgid ""
"delay). This allows players to fire and detonate a Devastator rocket while "
"in the air for a strong mid-air boost even while moving fast"
msgstr ""
+"Hävittäjäraketit voidaan räjäyttää välittömästi (muutoin, ilmenee pieni "
+"viive). Tämä antaa pelaajalle mahdollisuuden ampua ja räjäyttää "
+"Hävittäjäraketin ilmassa ollessaan, tuottaakseen voimakkaan lisäpotkun "
+"keskikorkeudessa jopa liikkuessaan nopeasti"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:235
msgid "Players will drop all weapons they possessed when they are killed"
#: qcsrc/menu/xonotic/dialog_multiplayer_profile.qc:136
msgid "Allow player statistics to rank you in leaderboards"
-msgstr ""
+msgstr "Anna lupa sijoittaa sinut pelaajatilastoissa "
#: qcsrc/menu/xonotic/dialog_multiplayer_profile.qc:152
msgid "Country"
#: qcsrc/menu/xonotic/dialog_settings_effects.qc:129
msgid "Disable sky for performance and visibility"
-msgstr ""
+msgstr "Kytke taivas pois päältä suorituskyvyn ja näkyvyyden lisäämiseksi"
#: qcsrc/menu/xonotic/dialog_settings_effects.qc:129
msgid "Show sky"
-msgstr ""
+msgstr "Näytä taivas"
#: qcsrc/menu/xonotic/dialog_settings_effects.qc:132
msgid "Show surfaces"
#: qcsrc/menu/xonotic/dialog_settings_game_weapons.qc:77
msgid "Weapon model opacity:"
-msgstr ""
+msgstr "Asemallin läpikuultavuus:"
#: qcsrc/menu/xonotic/dialog_settings_game_weapons.qc:91
msgid "Gun model swaying"
#: qcsrc/menu/xonotic/keybinder.qc:93
msgid "Communication"
-msgstr ""
+msgstr "Keskustelu"
#: qcsrc/menu/xonotic/keybinder.qc:94
msgid "public chat"
#: qcsrc/menu/xonotic/keybinder.qc:120
msgid "drop key/flag, exit vehicle"
-msgstr ""
+msgstr "pudota avain/lippu, poistu ajoneuvosta"
#: qcsrc/menu/xonotic/keybinder.qc:121
msgid "suicide / respawn"
-msgstr ""
+msgstr "itsari / uudelleensynty"
#: qcsrc/menu/xonotic/keybinder.qc:122
msgid "quick menu"
#: qcsrc/menu/xonotic/keybinder.qc:132
msgid "Development"
-msgstr ""
+msgstr "Kehitys"
#: qcsrc/menu/xonotic/keybinder.qc:133
msgid "sandbox menu"
#: qcsrc/menu/xonotic/keybinder.qc:134
msgid "drag object (sandbox)"
-msgstr ""
+msgstr "raahaa kohde (hiekkalaatikko)"
#: qcsrc/menu/xonotic/keybinder.qc:135
msgid "waypoint editor menu"
-msgstr ""
+msgstr "välietapin muokkausvalikko"
#: qcsrc/menu/xonotic/mainwindow.qc:96 qcsrc/menu/xonotic/mainwindow.qc:99
msgid "Do not press this button again!"
#: qcsrc/menu/xonotic/serverlist.qc:256
msgid "SERVER^Remove favorite"
-msgstr ""
+msgstr "PALVELIN^Poista lemppari"
#: qcsrc/menu/xonotic/serverlist.qc:257
msgid "Remove the currently highlighted server from bookmarks"
-msgstr ""
+msgstr "Poista tämänhetkinen korostettu palvelin kirjanmerkeistä"
#: qcsrc/menu/xonotic/serverlist.qc:261
msgid "SERVER^Favorite"
-msgstr ""
+msgstr "PALVELIN^Lemppari"
#: qcsrc/menu/xonotic/serverlist.qc:262
msgid ""
#: qcsrc/menu/xonotic/statslist.qc:46
#, no-c-format
msgid "DATE^%m %d, %Y"
-msgstr ""
+msgstr "PÄIVÄYS^%k %d, %V"
#: qcsrc/menu/xonotic/statslist.qc:97
msgid "Joined:"
"Project-Id-Version: Xonotic\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-07 07:23+0200\n"
-"PO-Revision-Date: 2020-07-06 22:07+0000\n"
+"PO-Revision-Date: 2020-07-15 22:42+0000\n"
"Last-Translator: LegendGuard\n"
"Language-Team: Japanese (Japan) (http://www.transifex.com/team-xonotic/"
"xonotic/language/ja_JP/)\n"
#: qcsrc/client/hud/panel/infomessages.qc:95
msgid "^1Observing"
-msgstr "^1観察してる"
+msgstr "^1観察中"
#: qcsrc/client/hud/panel/infomessages.qc:97
#, c-format
msgid "^1Spectating: ^7%s"
-msgstr "^7%s ^1を観戦してる"
+msgstr "^1観戦中: ^7%s"
#: qcsrc/client/hud/panel/infomessages.qc:108
#, c-format
msgid "^1Press ^3%s^1 to spectate"
-msgstr "^3%s ^1を押して観戦する"
+msgstr "観戦するために ^3%s ^1を押して"
#: qcsrc/client/hud/panel/infomessages.qc:108
#: qcsrc/menu/xonotic/keybinder.qc:47
#: qcsrc/client/hud/panel/infomessages.qc:110
#, c-format
msgid "^1Press ^3%s^1 or ^3%s^1 for next or previous player"
-msgstr "^3%s ^1または ^3%s ^1を押すと、次または前の選手を表示される"
+msgstr "^1次または前の選手を表示されるために ^3%s ^1または ^3%s ^1を押して"
#: qcsrc/client/hud/panel/infomessages.qc:110
#: qcsrc/client/hud/panel/infomessages.qc:114
#: qcsrc/client/hud/panel/infomessages.qc:116
#, c-format
msgid "^1Press ^3%s^1 to observe, ^3%s^1 to change camera mode"
-msgstr "^3%s ^1を押して観戦する、^3%s ^1を押してカメラモードを変更する"
+msgstr ""
+"^1観戦するために ^3%s ^1を押して、カメラモードを変更するために ^3%s ^1を押し"
+"て"
#: qcsrc/client/hud/panel/infomessages.qc:116
#: qcsrc/common/vehicles/cl_vehicles.qc:190
#: qcsrc/client/hud/panel/infomessages.qc:119
#, c-format
msgid "^1Press ^3%s^1 for gamemode info"
-msgstr "^3%s ^1を押すとゲームモード情報が表示される"
+msgstr "^1ゲームモード情報が表示されるために ^3%s ^1を押して"
#: qcsrc/client/hud/panel/infomessages.qc:119
#: qcsrc/menu/xonotic/keybinder.qc:103
#: qcsrc/client/hud/panel/infomessages.qc:132
msgid "^1Match has already begun"
-msgstr "^1試合はすでに始まっています"
+msgstr "^1試合はすでに開始しています"
#: qcsrc/client/hud/panel/infomessages.qc:134
msgid "^1You have no more lives left"
#: qcsrc/client/hud/panel/infomessages.qc:139
#, c-format
msgid "^1Press ^3%s^1 to join"
-msgstr "^3%s ^1を押してゲームに参加する"
+msgstr "^1参加するために ^3%s ^1を押して"
#: qcsrc/client/hud/panel/infomessages.qc:136
#: qcsrc/client/hud/panel/infomessages.qc:139
#: qcsrc/client/hud/panel/infomessages.qc:168
#, c-format
msgid "%sPress ^3%s%s to end warmup"
-msgstr "%s^3%s%s を押して準備運動を終了する"
+msgstr "%s準備運動を終了するために ^3%s%s を押して"
#: qcsrc/client/hud/panel/infomessages.qc:168
#: qcsrc/client/hud/panel/infomessages.qc:170
#: qcsrc/client/hud/panel/infomessages.qc:170
#, c-format
msgid "%sPress ^3%s%s once you are ready"
-msgstr "%sæº\96å\82\99ã\81\8cã\81§ã\81\8dã\81\9fã\82\89 ^3%s%s ã\82\92æ\8a¼ã\81\99ã\82\8b"
+msgstr "%sæº\96å\82\99ã\81\8cã\81§ã\81\8dã\81\9fã\82\89 ^3%s%s ã\82\92æ\8a¼ã\81\97ã\81¦"
#: qcsrc/client/hud/panel/infomessages.qc:175
msgid "^2Waiting for others to ready up to end warmup..."
-msgstr "^2準備演習が終了する前に、全員の準備ができるまで待ちます..."
+msgstr "^2準備演習が終了する前に、全員の準備ができるまで待ち中..."
#: qcsrc/client/hud/panel/infomessages.qc:177
msgid "^2Waiting for others to ready up..."
-msgstr "^2全員の準備ができるまで待ちます..."
+msgstr "^2全員の準備ができるまで待ち中..."
#: qcsrc/client/hud/panel/infomessages.qc:183
#, c-format
msgid "^2Press ^3%s^2 to end warmup"
-msgstr "^2^3%s ^2を押して準備運動を終了する"
+msgstr "^2準備運動を終了するために ^2^3%s ^2を押して"
#: qcsrc/client/hud/panel/infomessages.qc:204
msgid "Teamnumbers are unbalanced!"
#: qcsrc/client/hud/panel/infomessages.qc:207
#, c-format
msgid " Press ^3%s%s to adjust"
-msgstr " ^3%s%s を押して調整する"
+msgstr " 調整するために ^3%s%s を押して"
#: qcsrc/client/hud/panel/infomessages.qc:207
#: qcsrc/menu/xonotic/keybinder.qc:115
#: qcsrc/client/hud/panel/infomessages.qc:217
msgid "^1Spectating this player:"
-msgstr "^1この選手を観戦する:"
+msgstr "^1この選手を観戦中:"
#: qcsrc/client/hud/panel/infomessages.qc:217
msgid "^1Spectating you:"
-msgstr "^1あなたを観戦する:"
+msgstr "^1あなたを観戦中:"
#: qcsrc/client/hud/panel/infomessages.qc:233
msgid "^7Press ^3ESC ^7to show HUD options."
-msgstr "^3ESC ^7を押してHUDオプションを表示する。"
+msgstr "^7HUDオプションを表示するために ^3ESC ^7を押して。"
#: qcsrc/client/hud/panel/infomessages.qc:234
msgid "^3Doubleclick ^7a panel for panel-specific options."
#: qcsrc/client/hud/panel/quickmenu.qc:807
msgid "QMCMD^defending (l:%l^7) (h:%h^7 a:%a^7 w:%w^7)"
-msgstr "QMCMD^å®\88ã\81£ã\81¦ã\82\8b (l:%l^7) (h:%h^7 a:%a^7 w:%w^7)"
+msgstr "QMCMD^å®\88ã\82\8aä¸ (l:%l^7) (h:%h^7 a:%a^7 w:%w^7)"
#: qcsrc/client/hud/panel/quickmenu.qc:807
msgid "QMCMD^defending, icon"
-msgstr "QMCMD^å®\88ã\81£ã\81¦ã\82\8b、アイコン"
+msgstr "QMCMD^å®\88ã\82\8aä¸、アイコン"
#: qcsrc/client/hud/panel/quickmenu.qc:808
msgid "QMCMD^roaming (l:%l^7) (h:%h^7 a:%a^7 w:%w^7)"
-msgstr "QMCMD^動きてる (l:%l^7) (h:%h^7 a:%a^7 w:%w^7)"
+msgstr "QMCMD^動き中 (l:%l^7) (h:%h^7 a:%a^7 w:%w^7)"
#: qcsrc/client/hud/panel/quickmenu.qc:808
msgid "QMCMD^roaming, icon"
-msgstr "QMCMD^動きてる、アイコン"
+msgstr "QMCMD^動き中、アイコン"
#: qcsrc/client/hud/panel/quickmenu.qc:809
msgid "QMCMD^attacking (l:%l^7) (h:%h^7 a:%a^7 w:%w^7)"
-msgstr "QMCMD^攻撃してる (l:%l^7) (h:%h^7 a:%a^7 w:%w^7)"
+msgstr "QMCMD^攻撃中 (l:%l^7) (h:%h^7 a:%a^7 w:%w^7)"
#: qcsrc/client/hud/panel/quickmenu.qc:809
msgid "QMCMD^attacking, icon"
-msgstr "QMCMD^攻撃してる、アイコン"
+msgstr "QMCMD^攻撃中、アイコン"
#: qcsrc/client/hud/panel/quickmenu.qc:810
msgid "QMCMD^killed flagcarrier (l:%y^7)"
"ト、\n"
"次にスラッシュを配置して、フィールドをこれらにのみ表示することができます。ま"
"たは、\n"
-"ã\81\93ã\82\8cã\82\89ã\81®ã\82²ã\83¼ã\83 ã\82¿ã\82¤ã\83\97以å¤\96ã\81®å\85¨ã\81¦ã\80\82ã\81¾ã\81\9fã\80\81ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¨ã\81\97ã\81¦ã\80\8cå\85¨ã\81¦ã\80\8dã\82\92æ\8c\87å®\9aã\81\97ã\81¦ã\80\81\n"
+"これらのゲームタイプ以外の全て。また、フィールドとして「全」を指定して、\n"
"現在のゲームモードで使用可能な全てのフィールドを表示することもできます。"
#: qcsrc/client/hud/panel/scoreboard.qc:350
#: qcsrc/client/hud/panel/scoreboard.qc:1870
#, c-format
msgid "^1Respawning in ^3%s^1..."
-msgstr "^3%s^1 後に再表示されてる..."
+msgstr "^3%s^1 後に再び現れ中..."
#: qcsrc/client/hud/panel/scoreboard.qc:1880
#, c-format
#: qcsrc/client/mapvoting.qc:531
msgid "Requesting preview..."
-msgstr "プレビューをリクエストしている..."
+msgstr "プレビューをリクエスト中..."
#: qcsrc/client/miscfunctions.qc:111
msgid "Trying to remove a team which is not in the teamlist!"
#: qcsrc/common/mapinfo.qh:115
msgid "Score as many frags as you can"
-msgstr "ã\81§ã\81\8dã\82\8bã\81 ã\81\91å¤\9aã\81\8fã\81®å\89\8aé\99¤ã\82\92å¾\97ç\82¹ã\81\99ã\82\8b"
+msgstr "ã\81§ã\81\8dã\82\8bã\81 ã\81\91å¤\9aã\81\8fã\81®å\89\8aé\99¤ã\82\92å¾\97ç\82¹ã\81\97ã\81¦"
#: qcsrc/common/mapinfo.qh:128
msgid "Last Man Standing"
"Kill enemies to freeze them, stand next to frozen teammates to revive them; "
"freeze all enemies to win"
msgstr ""
-"æ\95µã\82\92å\87\8dã\82\89ã\81\9bã\81¦ã\81\9fã\82\81ã\81«æ®ºã\81\97ã\81¦ã\80\81ã\83\81ã\83¼ã\83 ã\83¡ã\82¤ã\83\88ã\82\92復活ã\81\95ã\81\9bã\82\8bã\81\9fã\82\81ã\81«å\87\8dã\81£ã\81\9fã\83\81ã\83¼ã\83 ã\83¡ã\82¤ã\83\88ã\81®"
-"隣に立って;勝つために全ての敵を凍結して"
+"æ\95µã\82\92å\86·å\87\8dã\81\97ã\81¦ã\81\9fã\82\81ã\81«æ®ºã\81\97ã\81¦ã\80\81ã\83\81ã\83¼ã\83 ã\83¡ã\82¤ã\83\88ã\82\92復活ã\81\95ã\81\9bã\82\8bã\81\9fã\82\81ã\81«å\86·å\87\8dã\81\97ã\81\9fã\83\81ã\83¼ã\83 ã\83¡ã\82¤ã\83\88"
+"の隣に立って;勝つために全ての敵を冷凍して"
#: qcsrc/common/mapinfo.qh:545
msgid "Hold the ball to get points for kills"
#: qcsrc/common/notifications/all.inc:251
#, c-format
msgid "^BG%s^BG got the ^TC^TT^BG flag"
-msgstr "^BG%s^BG が ^TC^TT^BG 旗を取得した"
+msgstr "^BG%s^BG が ^TC^TT^BG 旗を手に入れた"
#: qcsrc/common/notifications/all.inc:252
#, c-format
msgid "^BG%s^BG got the flag"
-msgstr "^BG%s^BG が旗を取得した"
+msgstr "^BG%s^BG が旗を手に入れた"
#: qcsrc/common/notifications/all.inc:253
#: qcsrc/common/notifications/all.inc:254
#: qcsrc/common/notifications/all.inc:544
#, c-format
msgid "^F2Throwing coin... Result: %s^F2!"
-msgstr "^F2硬貨を投げている... 結果: %s^F2!"
+msgstr "^F2硬貨を投げ中... 結果: %s^F2!"
#: qcsrc/common/notifications/all.inc:258
msgid "^BGYou don't have any fuel for the ^F1Jetpack"
#: qcsrc/common/notifications/all.inc:275
#, c-format
msgid "^BG%s%s^K1 was frozen to death by ^BG%s^K1's Ice Nade%s%s"
-msgstr "^BG%s%s^K1 は ^BG%s^K1 の氷手榴弾%s%sにより凍死された"
+msgstr "^BG%s%s^K1 ã\81¯ ^BG%s^K1 ã\81®æ°·æ\89\8b榴弾%s%sã\81«ã\82\88ã\82\8aå\86·å\87\8dæ»ã\81\95ã\82\8cã\81\9f"
#: qcsrc/common/notifications/all.inc:276
#, c-format
msgid "^BG%s%s^K1 has not been healed by ^BG%s^K1's Healing Nade%s%s"
-msgstr "^BG%s%s^K1 は ^BG%s^K1 の癒し手榴弾%s%sによって癒されなかった"
+msgstr "^BG%s%s^K1 は ^BG%s^K1 の治癒手榴弾%s%sによって癒されなかった"
#: qcsrc/common/notifications/all.inc:277
#, c-format
#: qcsrc/common/notifications/all.inc:317
#, c-format
msgid "^BG%s^K1 was frozen to death by their own Ice Nade%s%s"
-msgstr "^BG%s^K1 は自分の氷手榴弾%s%sによって凍死された"
+msgstr "^BG%s^K1 ã\81¯è\87ªå\88\86ã\81®æ°·æ\89\8b榴弾%s%sã\81«ã\82\88ã\81£ã\81¦å\86·å\87\8dæ»ã\81\95ã\82\8cã\81\9f"
#: qcsrc/common/notifications/all.inc:318
#, c-format
msgid "^BG%s^K1's Healing Nade didn't quite heal them%s%s"
-msgstr "^BG%s^K1 の癒し手榴弾はそれら%s%sを完全には癒しなかった"
+msgstr "^BG%s^K1 の治癒手榴弾はそれら%s%sを完全には癒しなかった"
#: qcsrc/common/notifications/all.inc:319
#, c-format
#: qcsrc/common/notifications/all.inc:319
#, c-format
msgid "^BG%s^K1 ran out of ammo%s%s"
-msgstr "^BG%s^K1 の弾薬%s%sがなくなった"
+msgstr "^BG%s^K1 の弾薬%s%sが切った"
#: qcsrc/common/notifications/all.inc:320
#, c-format
#: qcsrc/common/notifications/all.inc:337
#, c-format
msgid "^BG%s^K1 got served a lead enrichment by a Walker turret%s%s"
-msgstr ""
+msgstr "^BG%s^K1 はウォーカー砲塔%s%sから鉛強化を受けた"
#: qcsrc/common/notifications/all.inc:338
#, c-format
msgid "^BG%s^K1 was impaled by a Walker turret%s%s"
-msgstr ""
+msgstr "^BG%s^K1 はウォーカー砲塔%s%sによって釘付けされた"
#: qcsrc/common/notifications/all.inc:339
#, c-format
msgid "^BG%s^K1 was blasted away by a Walker turret%s%s"
-msgstr ""
+msgstr "^BG%s^K1 はウォーカー砲塔%s%sによって爆破された"
#: qcsrc/common/notifications/all.inc:340
#, c-format
msgid "^BG%s^K1 got caught in the blast of a Bumblebee explosion%s%s"
-msgstr ""
+msgstr "^BG%s^K1 はバンブルビー爆発%s%sの爆風に巻き込まれた"
#: qcsrc/common/notifications/all.inc:341
#, c-format
msgid "^BG%s^K1 was crushed by a vehicle%s%s"
-msgstr ""
+msgstr "^BG%s^K1 は乗り物%s%sによって粉砕された"
#: qcsrc/common/notifications/all.inc:342
#, c-format
msgid "^BG%s^K1 was caught in a Raptor cluster bomb%s%s"
-msgstr ""
+msgstr "^BG%s^K1 はラプターのクラスター爆弾%s%sに捕まられた"
#: qcsrc/common/notifications/all.inc:343
#, c-format
msgid "^BG%s^K1 got caught in the blast of a Raptor explosion%s%s"
-msgstr ""
+msgstr "^BG%s^K1 はラプター爆発%s%sの爆風に巻き込まれた"
#: qcsrc/common/notifications/all.inc:344
#, c-format
msgid "^BG%s^K1 got caught in the blast of a Spiderbot explosion%s%s"
-msgstr ""
+msgstr "^BG%s^K1 は蜘蛛ボットの爆発%s%sの爆風に巻き込まれた"
#: qcsrc/common/notifications/all.inc:345
#, c-format
msgid "^BG%s^K1 was blasted to bits by a Spiderbot rocket%s%s"
-msgstr ""
+msgstr "^BG%s^K1 は蜘蛛ボットロケット%s%sによって爆破された"
#: qcsrc/common/notifications/all.inc:346
#, c-format
msgid "^BG%s^K1 got caught in the blast of a Racer explosion%s%s"
-msgstr ""
+msgstr "^BG%s^K1 はレーサー爆発%s%sの爆風に巻き込まれた"
#: qcsrc/common/notifications/all.inc:347
#, c-format
msgid "^BG%s^K1 couldn't find shelter from a Racer rocket%s%s"
msgstr ""
+"^BG%s^K1 はレーサーロケット%s%sからの避難所を見つけることができませんでした"
#: qcsrc/common/notifications/all.inc:350
#, c-format
msgid "^BG%s^K1 was betrayed by ^BG%s^K1%s%s"
-msgstr ""
+msgstr "^BG%s^K1 は ^BG%s^K1%s%s に裏切られた"
#: qcsrc/common/notifications/all.inc:352
#, c-format
msgid "^BG%s^BG%s^BG (%s %s every %s seconds)"
-msgstr ""
+msgstr "^BG%s^BG%s^BG (%s %s、%s 秒ごと)"
#: qcsrc/common/notifications/all.inc:354
#, c-format
msgid "^BG%s^K1 was frozen by ^BG%s"
-msgstr ""
+msgstr "^BG%s^K1 は ^BG%s によって凍結された"
#: qcsrc/common/notifications/all.inc:355
#, c-format
msgid "^BG%s^K3 was revived by ^BG%s"
-msgstr ""
+msgstr "^BG%s^K3 は ^BG%s によって復活された"
#: qcsrc/common/notifications/all.inc:356
#, c-format
msgid "^BG%s^K3 was revived by falling"
-msgstr ""
+msgstr "^BG%s^K3 は落下によって復活された"
#: qcsrc/common/notifications/all.inc:357
#, c-format
msgid "^BG%s^K3 was revived by their Nade explosion"
-msgstr ""
+msgstr "^BG%s^K3 は手榴弾の爆発で復活された"
#: qcsrc/common/notifications/all.inc:358
#, c-format
msgid "^BG%s^K3 was automatically revived after %s seconds"
-msgstr ""
+msgstr "^BG%s^K3 は %s 秒後に自動的に復活された"
#: qcsrc/common/notifications/all.inc:359
#, c-format
msgid "^BG%s^K1 froze themself"
-msgstr ""
+msgstr "^ BG%s^K1 が凍結した"
#: qcsrc/common/notifications/all.inc:361
#: qcsrc/common/notifications/all.inc:675
msgid "^TC^TT^BG team wins the round"
-msgstr ""
+msgstr "^TC^TT^BG チームがラウンドに勝利した"
#: qcsrc/common/notifications/all.inc:362
#: qcsrc/common/notifications/all.inc:676
#, c-format
msgid "^BG%s^BG wins the round"
-msgstr ""
+msgstr "^BG%s^BG がラウンドに勝利した"
#: qcsrc/common/notifications/all.inc:363
#: qcsrc/common/notifications/all.inc:539
msgid "^BGRound tied"
-msgstr ""
+msgstr "^BGラウンドに引き分けになりました"
#: qcsrc/common/notifications/all.inc:364
#: qcsrc/common/notifications/all.inc:540
msgid "^BGRound over, there's no winner"
-msgstr ""
+msgstr "^BGラウンド終了、勝者はいません"
#: qcsrc/common/notifications/all.inc:366
#, c-format
msgid "^BGGodmode saved you %s units of damage, cheater!"
-msgstr ""
+msgstr "^BG神モードはあなたに %s ユニットのダメージを保存した、詐欺師!"
#: qcsrc/common/notifications/all.inc:368
#, c-format
msgid "^BG%s^BG got the %s^BG buff!"
-msgstr ""
+msgstr "^BG%s^BG が %s^BG バフを手に入れた!"
#: qcsrc/common/notifications/all.inc:369
#, c-format
msgid "^BG%s^BG lost the %s^BG buff!"
-msgstr ""
+msgstr "^BG%s^BG は %s^BG バフを失った!"
#: qcsrc/common/notifications/all.inc:370
#: qcsrc/common/notifications/all.inc:683
#, c-format
msgid "^BGYou dropped the %s^BG buff!"
-msgstr ""
+msgstr "^BGあなたは %s^BG バフを落とした!"
#: qcsrc/common/notifications/all.inc:371
#: qcsrc/common/notifications/all.inc:684
#, c-format
msgid "^BGYou got the %s^BG buff!"
-msgstr ""
+msgstr "^BGあなたは %s^BG バフを手に入れた!"
#: qcsrc/common/notifications/all.inc:373
#: qcsrc/common/notifications/all.inc:687
#, c-format
msgid "^BGYou do not have the ^F1%s"
-msgstr ""
+msgstr "^BGあなたは ^F1%s がない"
#: qcsrc/common/notifications/all.inc:374
#: qcsrc/common/notifications/all.inc:688
#, c-format
msgid "^BGYou dropped the ^F1%s^BG%s"
-msgstr ""
+msgstr "^BGあなたは ^F1%s^BG%s を落とした"
#: qcsrc/common/notifications/all.inc:375
#: qcsrc/common/notifications/all.inc:689
#, c-format
msgid "^BGYou got the ^F1%s"
-msgstr ""
+msgstr "^BGあなたは ^F1%s を手に入れた"
#: qcsrc/common/notifications/all.inc:376
#: qcsrc/common/notifications/all.inc:690
#, c-format
msgid "^BGYou don't have enough ammo for the ^F1%s"
-msgstr ""
+msgstr "^BGあなたは ^F1%s に必要な弾薬が不足しています"
#: qcsrc/common/notifications/all.inc:377
#: qcsrc/common/notifications/all.inc:691
#, c-format
msgid "^F1%s %s^BG is unable to fire, but its ^F1%s^BG can"
-msgstr ""
+msgstr "^F1%s %s^BG は発砲できませんが、^F1%s^BG は発砲できます"
#: qcsrc/common/notifications/all.inc:378
#: qcsrc/common/notifications/all.inc:692
#, c-format
msgid "^F1%s^BG is ^F4not available^BG on this map"
-msgstr ""
+msgstr "^F1%s^BG はこのマップで ^F4使用できません^BG"
#: qcsrc/common/notifications/all.inc:380
#, c-format
msgid "^BG%s^BG is connecting..."
-msgstr ""
+msgstr "^BG%s^BG が接続中..."
#: qcsrc/common/notifications/all.inc:381
#, c-format
msgid "^BG%s^F3 connected"
-msgstr ""
+msgstr "^BG%s^F3 が接続されました"
#: qcsrc/common/notifications/all.inc:382
#, c-format
msgid "^BG%s^F3 is now playing"
-msgstr ""
+msgstr "^BG%s^F3 は遊び中です"
#: qcsrc/common/notifications/all.inc:383
#, c-format
msgid "^BG%s^F3 is now playing on the ^TC^TT team"
-msgstr ""
+msgstr "^BG%s^F3 は ^TC^TT チームでが遊び中です"
#: qcsrc/common/notifications/all.inc:385
#: qcsrc/common/notifications/all.inc:697
#, c-format
msgid "^BG%s^BG has dropped the ball!"
-msgstr ""
+msgstr "^BG%s^BG がボールを落とした!"
#: qcsrc/common/notifications/all.inc:386
#: qcsrc/common/notifications/all.inc:698
#, c-format
msgid "^BG%s^BG has picked up the ball!"
-msgstr ""
+msgstr "^BG%s^BG はボールを拾いた!"
#: qcsrc/common/notifications/all.inc:388
#, c-format
msgid "^BG%s^BG captured the keys for the ^TC^TT team"
-msgstr ""
+msgstr "^BG%s^BG は ^TC^TT チームの鍵を手に入った"
#: qcsrc/common/notifications/all.inc:389
#, c-format
msgid "^BG%s^BG dropped the ^TC^TT Key"
-msgstr ""
+msgstr "^BG%s^BG が ^TC^TT 鍵を落とした"
#: qcsrc/common/notifications/all.inc:390
#, c-format
msgid "^BG%s^BG lost the ^TC^TT Key"
-msgstr ""
+msgstr "^BG%s^BG は ^TC^TT 鍵を失った"
#: qcsrc/common/notifications/all.inc:391
#, c-format
msgid "^BG%s^BG pushed %s^BG causing the ^TC^TT Key ^BGdestruction"
-msgstr ""
+msgstr "^BG%s^BG が %s^BG を押したため、^TC^TT 鍵の^BG破壊を引き起こしている"
#: qcsrc/common/notifications/all.inc:392
#, c-format
msgid "^BG%s^BG destroyed the ^TC^TT Key"
-msgstr ""
+msgstr "^BG%s^BG は ^TC^TT 鍵を破壊した"
#: qcsrc/common/notifications/all.inc:393
#, c-format
msgid "^BG%s^BG picked up the ^TC^TT Key"
-msgstr ""
+msgstr "^BG%s^BG は ^TC^TT 鍵を拾いた"
#: qcsrc/common/notifications/all.inc:395
#, c-format
msgid "^BG%s^F3 forfeited"
-msgstr ""
+msgstr "^BG%s^F3 は捨てた"
#: qcsrc/common/notifications/all.inc:396
#, c-format
msgid "^BG%s^F3 has no more lives left"
-msgstr ""
+msgstr "^BG%s^F3 の寿命は残っていない"
#: qcsrc/common/notifications/all.inc:398
msgid "^BGMonsters are currently disabled"
-msgstr ""
+msgstr "^BGモンスターは現在無効になっています"
#: qcsrc/common/notifications/all.inc:400
msgid "^BGThe ^TC^TT^BG team held the ball for too long"
-msgstr ""
+msgstr "^BG ^TC^TT^BG チームがボールを長時間保持した"
#: qcsrc/common/notifications/all.inc:402
#, c-format
msgid "^BG%s^BG captured %s^BG control point"
-msgstr ""
+msgstr "^BG%s^BG が %s^BG コントロールポイントを取れた"
#: qcsrc/common/notifications/all.inc:403
#, c-format
msgid "^BG%s^BG captured a control point"
-msgstr ""
+msgstr "^BG%s^BG がコントロールポイントを取れた"
#: qcsrc/common/notifications/all.inc:404
#, c-format
msgid "^TC^TT^BG team %s^BG control point has been destroyed by %s"
-msgstr ""
+msgstr "^TC^TT^BG チーム %s^BG コントロールポイントが %s によって破壊された"
#: qcsrc/common/notifications/all.inc:405
#, c-format
msgid "^TC^TT^BG team control point has been destroyed by %s"
-msgstr ""
+msgstr "^TC^TT^BG チームコントロールポイントが %s によって破壊された"
#: qcsrc/common/notifications/all.inc:406
msgid "^TC^TT^BG generator has been destroyed"
-msgstr ""
+msgstr "^TC^TT^BG 発生器が破壊された"
#: qcsrc/common/notifications/all.inc:407
msgid "^TC^TT^BG generator spontaneously combusted due to overtime!"
-msgstr ""
+msgstr "^TC^TT^BG 発生器は自発的に残業により燃焼した"
#: qcsrc/common/notifications/all.inc:409
#, c-format
msgid "^BG%s^K1 picked up Invisibility"
-msgstr ""
+msgstr "^BG%s^K1 は「不可視」を拾いた"
#: qcsrc/common/notifications/all.inc:410
#, c-format
msgid "^BG%s^K1 picked up Shield"
-msgstr ""
+msgstr "^BG%s^K1 は「盾」を拾いた"
#: qcsrc/common/notifications/all.inc:411
#, c-format
msgid "^BG%s^K1 picked up Speed"
-msgstr ""
+msgstr "^BG%s^K1 は「速度」を拾いた"
#: qcsrc/common/notifications/all.inc:412
#, c-format
msgid "^BG%s^K1 picked up Strength"
-msgstr ""
+msgstr "^BG%s^K1 は「力」を拾いた"
#: qcsrc/common/notifications/all.inc:414
#, c-format
#: qcsrc/common/notifications/all.inc:415
#, c-format
msgid "^BG%s^F3 was kicked for idling"
-msgstr ""
+msgstr "^BG%s^F3 は非活動な状態で追い出された"
#: qcsrc/common/notifications/all.inc:416
msgid ""
"^F2You were kicked from the server because you are a spectator and "
"spectators aren't allowed at the moment."
msgstr ""
+"^F2あなたは観客であり、観客は現在許可されていないため、サーバーから追い出され"
+"た。"
#: qcsrc/common/notifications/all.inc:417
#, c-format
msgid "^BG%s^F3 was kicked for excessive teamkilling"
-msgstr ""
+msgstr "^BG%s^F3 はチームメイトを殺したために追い出された"
#: qcsrc/common/notifications/all.inc:418
#, c-format
msgid "^BG%s^F3 is now spectating"
-msgstr ""
+msgstr "^BG%s^F3 は観戦中です"
#: qcsrc/common/notifications/all.inc:420
#, c-format
msgid "^BG%s^BG has abandoned the race"
-msgstr ""
+msgstr "^BG%^BG はレースを放棄した"
#: qcsrc/common/notifications/all.inc:421
#, c-format
msgid "^BG%s^BG couldn't break their %s%s^BG place record of %s%s %s"
-msgstr ""
+msgstr "^BG%s^BG は %s%s %s の %s%s^BG 場所の記録を破ることができなかった"
#: qcsrc/common/notifications/all.inc:422
#, c-format
msgid "^BG%s^BG couldn't break the %s%s^BG place record of %s%s %s"
-msgstr ""
+msgstr "^BG%s^BG は %s%s %s の %s%s^BG 場所の記録を破ることができなかった"
#: qcsrc/common/notifications/all.inc:423
#, c-format
msgid "^BG%s^BG has finished the race"
-msgstr ""
+msgstr "^BG%^BG はレースを終了した"
#: qcsrc/common/notifications/all.inc:424
#, c-format
msgid "^BG%s^BG broke %s^BG's %s%s^BG place record with %s%s %s"
-msgstr ""
+msgstr "^BG%s^BG は %s%s %s で %s^BG の %s%s^BG 場所の記録を破った"
#: qcsrc/common/notifications/all.inc:425
#, c-format
msgid "^BG%s^BG improved their %s%s^BG place record with %s%s %s"
-msgstr ""
+msgstr "^BG%s^BG は %s%s %s で %s%s^BG の場所の記録を改善した"
#: qcsrc/common/notifications/all.inc:426
#, c-format
"^BG%s^BG scored a new record with ^F2%s^BG, but unfortunately lacks a UID "
"and will be lost."
msgstr ""
+"^BG%s^BG は ^F2%s^BG で新しい記録を獲得したが、残念ながらUIDがなく、失われ"
+"る。"
#: qcsrc/common/notifications/all.inc:427
#, c-format
msgid ""
"^BG%s^BG scored a new record with ^F2%s^BG, but is anonymous and will be "
"lost."
-msgstr ""
+msgstr "^BG%s^BG は ^F2%s^BG で新しい記録を獲得したが、匿名で、失われる。"
#: qcsrc/common/notifications/all.inc:428
#, c-format
msgid "^BG%s^BG set the %s%s^BG place record with %s%s"
-msgstr ""
+msgstr "^BG%s^BG は %s%s で %s%s^BG 場所の記録を設定した"
#: qcsrc/common/notifications/all.inc:430
#, c-format
msgid ""
"^F4You have been invited by ^BG%s^F4 to join their game of ^F2%s^F4 "
"(^F1%s^F4)"
-msgstr ""
+msgstr "^F4あなたは ^BG%s^F4 から、^F2%s^F4 (^F1%s^F4) のゲームに招待された"
#: qcsrc/common/notifications/all.inc:432
msgid "^TC^TT ^BGteam scores!"
-msgstr ""
+msgstr "^TC^TT ^BGチームが得点した!"
#: qcsrc/common/notifications/all.inc:434
#, c-format
"^F2You have to become a player within the next %s, otherwise you will be "
"kicked, because spectating isn't allowed at this time!"
msgstr ""
+"^F2次の %s 内で選手になる必要がある。そうしないと、現時点では観戦が許可されて"
+"いないため、追い出される!"
#: qcsrc/common/notifications/all.inc:436
#, c-format
msgid "^BG%s^K1 picked up a Superweapon"
-msgstr ""
+msgstr "^BG%s^K1 はスーパー武器を拾いた"
#: qcsrc/common/notifications/all.inc:438
msgid "^BGYou cannot change to a larger team"
-msgstr ""
+msgstr "^BGあなたはより大きなチームに変更することはできません"
#: qcsrc/common/notifications/all.inc:439
msgid "^BGYou are not allowed to change teams"
-msgstr ""
+msgstr "^BGあなたはチームの変更は許可されていません"
#: qcsrc/common/notifications/all.inc:441
#, c-format
"^F4NOTE: ^BGThe server is running ^F1Xonotic %s (beta)^BG, you have "
"^F2Xonotic %s"
msgstr ""
+"^F4注: ^BGサーバーは ^F1XONOTIC %s (beta)^BG を実行しています。あなたは "
+"^F2XONOTIC %s があります。"
#: qcsrc/common/notifications/all.inc:442
#, c-format
msgid ""
"^F4NOTE: ^BGThe server is running ^F1Xonotic %s^BG, you have ^F2Xonotic %s"
msgstr ""
+"^F4注: ^BGサーバーは ^F1XONOTIC %s^BG を実行しています。あなたは ^F2XONOTIC "
+"%s があります。"
#: qcsrc/common/notifications/all.inc:443
#, c-format
"^F4NOTE: ^F1Xonotic %s^BG is out, and you still have ^F2Xonotic %s^BG - get "
"the update from ^F3http://www.xonotic.org/^BG!"
msgstr ""
+"^F4注: ^F1XONOTIC %s^BG は利用できますが、あなたは ^F2XONOTIC %s^BG がまだあ"
+"ります。 ^F3http://www.xonotic.org/ ^BGから更新を入手してください!"
#: qcsrc/common/notifications/all.inc:445
#, c-format
msgid "^F3SVQC Build information: ^F4%s"
-msgstr ""
+msgstr "^F3SVQC Build information: ^F4%s"
#: qcsrc/common/notifications/all.inc:447
#, c-format
msgid ""
"^BG%s%s^K1 died of ^BG%s^K1's great playing on the @!#%%'n Accordeon%s%s"
msgstr ""
+"^BG%s%s^K1 は@!#%%'nアコーデオン%s%sでの ^BG%s^K1 の素晴らしい演奏で死んだ"
#: qcsrc/common/notifications/all.inc:448
#, c-format
msgid "^BG%s^K1 hurt their own ears with the @!#%%'n Accordeon%s%s"
-msgstr ""
+msgstr "BG%s^K1 は@!#%%'nアコーデオン%s%sで耳を痛んだ"
#: qcsrc/common/notifications/all.inc:449
#, c-format
msgid "^BG%s%s^K1 was electrocuted by ^BG%s^K1's Arc%s%s"
-msgstr ""
+msgstr "^BG%s%s^K1 は ^BG%s^K1 のアーク%s%s によって感電された"
#: qcsrc/common/notifications/all.inc:450
#, c-format
msgid "^BG%s%s^K1 was blasted by ^BG%s^K1's Arc bolts%s%s"
-msgstr ""
+msgstr "^BG%s%s^K1 は ^BG%s^K1 のアークボルト%s%s によって爆破された"
#: qcsrc/common/notifications/all.inc:451
#, c-format
msgid "^BG%s%s^K1 was shot to death by ^BG%s^K1's Blaster%s%s"
-msgstr ""
+msgstr "^BG%s%s^K1 は ^BG%s^K1 のブラスター%s%sによって射殺された"
#: qcsrc/common/notifications/all.inc:452
#, c-format
msgid "^BG%s^K1 shot themself to hell with their Blaster%s%s"
-msgstr ""
+msgstr "^BG%s^K1 がブラスター%s%sで地獄に撃てた"
#: qcsrc/common/notifications/all.inc:453
#, c-format
msgid "^BG%s%s^K1 felt the strong pull of ^BG%s^K1's Crylink%s%s"
-msgstr ""
+msgstr "^BG%s%s^K1 は ^BG%s^K1 のクリリンク%s%sの強い引きを感じた"
#: qcsrc/common/notifications/all.inc:454
#, c-format
msgid "^BG%s^K1 felt the strong pull of their Crylink%s%s"
-msgstr ""
+msgstr "^BG%s^K1 はクリリンク%s%sの強い引きを感じた"
#: qcsrc/common/notifications/all.inc:455
#, c-format
msgid "^BG%s%s^K1 ate ^BG%s^K1's rocket%s%s"
-msgstr ""
+msgstr "^BG%s%s^K1 が ^BG%s^K1 のロケット%s%sを食べた"
#: qcsrc/common/notifications/all.inc:456
#, c-format
msgid "^BG%s%s^K1 got too close to ^BG%s^K1's rocket%s%s"
-msgstr ""
+msgstr "^BG%s%s^K1 が ^BG%s^K1 のロケット%s%sに近すぎた"
#: qcsrc/common/notifications/all.inc:457
#, c-format
msgid "^BG%s^K1 blew themself up with their Devastator%s%s"
-msgstr ""
+msgstr "^BG%s^K1 はデーバーステーター%s%sで自分自身を爆破した"
#: qcsrc/common/notifications/all.inc:458
#, c-format
msgid "^BG%s%s^K1 was blasted by ^BG%s^K1's Electro bolt%s%s"
-msgstr ""
+msgstr "^BG%s%s^K1 は ^BG%s^ K1 のエレクトロボルト%s%sによって爆破された"
#: qcsrc/common/notifications/all.inc:459
#, c-format
msgid "^BG%s%s^K1 felt the electrifying air of ^BG%s^K1's Electro combo%s%s"
-msgstr ""
+msgstr "^BG%s%s^K1 は ^BG%s^K1 の電気コンボ%s%sの電撃的にした空気を感じた"
#: qcsrc/common/notifications/all.inc:460
#, c-format
msgid "^BG%s%s^K1 got too close to ^BG%s^K1's Electro orb%s%s"
-msgstr ""
+msgstr "^BG%s%s^K1 が ^BG%s^K1 のエレクトロオーブ%s%sに近すぎた"
#: qcsrc/common/notifications/all.inc:461
#, c-format
msgid "^BG%s^K1 played with Electro bolts%s%s"
-msgstr ""
+msgstr "^BG%s^K1 はエレクトロボルト%s%sで遊びた"
#: qcsrc/common/notifications/all.inc:462
#, c-format
msgid "^BG%s^K1 could not remember where they put their Electro orb%s%s"
-msgstr ""
+msgstr "^BG%s^K1 はエレクトロオーブ%s%sをどこに置いたか思い出せなかった"
#: qcsrc/common/notifications/all.inc:463
#, c-format
msgid "^BG%s%s^K1 got too close to ^BG%s^K1's fireball%s%s"
-msgstr ""
+msgstr "^BG%s%s^K1 が ^BG%s^K1 の火の玉%s%sに近すぎた"
#: qcsrc/common/notifications/all.inc:464
#, c-format
msgid "^BG%s%s^K1 got burnt by ^BG%s^K1's firemine%s%s"
-msgstr ""
+msgstr "^BG%s%s^K1 は ^BG%s^K1 の火鉱山%s%sによって燃やされた"
#: qcsrc/common/notifications/all.inc:465
#, c-format
msgid "^BG%s^K1 should have used a smaller gun%s%s"
-msgstr ""
+msgstr "^BG%s^K1 はもっと小さな銃%s%sを使うべきだった"
#: qcsrc/common/notifications/all.inc:466
#, c-format
msgid "^BG%s^K1 forgot about their firemine%s%s"
-msgstr ""
+msgstr "^BG%s^K1 は自分の火鉱山%s%sを忘れた"
#: qcsrc/common/notifications/all.inc:467
#, c-format
msgid "^BG%s%s^K1 was pummeled by a burst of ^BG%s^K1's Hagar rockets%s%s"
msgstr ""
+"^BG%s%s^K1 は ^BG%s^K1 のハガルロケット%s%sのバーストによって打ち負かされた"
#: qcsrc/common/notifications/all.inc:468
#, c-format
msgid "^BG%s%s^K1 was pummeled by ^BG%s^K1's Hagar rockets%s%s"
-msgstr ""
+msgstr "^BG%s%s^K1 は ^BG%s^K1 のハガルロケット%s%sに衝撃された"
#: qcsrc/common/notifications/all.inc:469
#, c-format
msgid "^BG%s^K1 played with tiny Hagar rockets%s%s"
-msgstr ""
+msgstr "^BG%s^K1 が小さなハガルロケット%s%sで遊びた"
#: qcsrc/common/notifications/all.inc:470
#, c-format
msgid "^BG%s%s^K1 was cut down with ^BG%s^K1's HLAC%s%s"
-msgstr ""
+msgstr "^BG%s%s^K1 は ^BG%s^K1 のHLAC%s%sで切られた"
#: qcsrc/common/notifications/all.inc:471
#, c-format
msgid "^BG%s^K1 got a little jumpy with their HLAC%s%s"
-msgstr ""
+msgstr "^BG%s^K1 はHLAC%s%sで少しびくびくしている"
#: qcsrc/common/notifications/all.inc:472
#, c-format
msgid "^BG%s%s^K1 was caught in ^BG%s^K1's Hook gravity bomb%s%s"
-msgstr ""
+msgstr "^BG%s%s^K1 が ^BG%s^K1 のフック重力爆弾%s%sに捕まられた"
#: qcsrc/common/notifications/all.inc:473
#, c-format
msgid ""
"^BG%s%s^K1 died of ^BG%s^K1's great playing on the @!#%%'n Klein Bottle%s%s"
msgstr ""
+"^BG%s%s^K1 は@!#%%'nクラインボトル%s%sでの ^BG%s^K1 の素晴らしい演奏で死んだ"
#: qcsrc/common/notifications/all.inc:474
#, c-format
msgid "^BG%s^K1 hurt their own ears with the @!#%%'n Klein Bottle%s%s"
-msgstr ""
+msgstr "BG%s^K1 は@!#%%'nクラインボトル%s%sで耳を痛んだ"
#: qcsrc/common/notifications/all.inc:475
#, c-format
msgid "^BG%s%s^K1 was sniped by ^BG%s^K1's Machine Gun%s%s"
-msgstr ""
+msgstr "BG%s%s^K1 は ^BG%s^K1 の機関銃%s%sにひったくられた"
#: qcsrc/common/notifications/all.inc:476
#, c-format
msgid "^BG%s%s^K1 was riddled full of holes by ^BG%s^K1's Machine Gun%s%s"
-msgstr ""
+msgstr "^BG%s%s^K1 は ^BG%s^K1 の機関銃%s%sによって穴だらけになられた"
#: qcsrc/common/notifications/all.inc:477
#: qcsrc/common/notifications/all.inc:782
#, c-format
msgid "^BGYou cannot place more than ^F2%s^BG mines at a time"
-msgstr ""
+msgstr "^BGあなたは一度に ^F2%s^BG 以上の鉱山を置けません"
#: qcsrc/common/notifications/all.inc:478
#, c-format
msgid "^BG%s%s^K1 got too close to ^BG%s^K1's mine%s%s"
-msgstr ""
+msgstr "^BG%s%s^K1 が ^BG%s^K1 の鉱山%s%sに近づきすぎた"
#: qcsrc/common/notifications/all.inc:479
#, c-format
msgid "^BG%s^K1 forgot about their mine%s%s"
-msgstr ""
+msgstr "^BG%s^K1 は自分の鉱山%s%sを忘れた"
#: qcsrc/common/notifications/all.inc:480
#, c-format
msgid "^BG%s%s^K1 got too close to ^BG%s^K1's Mortar grenade%s%s"
-msgstr ""
+msgstr "^BG%s%s^K1 が ^BG%s^K1 迫撃砲手榴弾%s%sに近づきすぎた"
#: qcsrc/common/notifications/all.inc:481
#, c-format
msgid "^BG%s%s^K1 ate ^BG%s^K1's Mortar grenade%s%s"
-msgstr ""
+msgstr "^BG%s%s^K1 が ^BG%s^K1 の迫撃砲手榴弾%s%sを食べた"
#: qcsrc/common/notifications/all.inc:482
#, c-format
msgid "^BG%s^K1 didn't see their own Mortar grenade%s%s"
-msgstr ""
+msgstr "^BG%s^K1 は自分自身の迫撃砲手榴弾%s%sを見なかった"
#: qcsrc/common/notifications/all.inc:483
#, c-format
msgid "^BG%s^K1 blew themself up with their own Mortar%s%s"
-msgstr ""
+msgstr "^BG%s^K1 が自分自身の迫撃砲%s%sで爆破した"
#: qcsrc/common/notifications/all.inc:484
#, c-format
msgid "^BG%s%s^K1 was sniped by ^BG%s^K1's Overkill Heavy Machine Gun%s%s"
-msgstr ""
+msgstr "BG%s%s^K1 は ^BG%s^K1 のオーバーキル重機関銃%s%sにひったくられた"
#: qcsrc/common/notifications/all.inc:485
#, c-format
msgid ""
"^BG%s%s^K1 was torn to bits by ^BG%s^K1's Overkill Heavy Machine Gun%s%s"
-msgstr ""
+msgstr "^BG%s%s^K1 は ^BG%s^K1 のオーバーキル重機関銃%s%sによって破られた"
#: qcsrc/common/notifications/all.inc:486
#, c-format
msgid ""
"^BG%s%s^K1 was riddled full of holes by ^BG%s^K1's Overkill Machine Gun%s%s"
msgstr ""
+"^BG%s%s^K1 は ^BG%s^K1 のオーバーキル機関銃%s%sによって穴だらけになられた"
#: qcsrc/common/notifications/all.inc:487
#, c-format
msgid "^BG%s%s^K1 has been vaporized by ^BG%s^K1's Overkill Nex%s%s"
-msgstr ""
+msgstr "^BG%s%s^K1 は ^BG%s^K1 のオーバーキルネクス%s%sによって気化された"
#: qcsrc/common/notifications/all.inc:488
#, c-format
"^BG%s%s^K1 was sawn in half by ^BG%s^K1's Overkill Rocket Propelled Chainsaw"
"%s%s"
msgstr ""
+"^BG%s%s^K1 は ^BG%s^K1 のオーバーキルロケット推進チェーンソー%s%sによって半分"
+"に切断された"
#: qcsrc/common/notifications/all.inc:489
#, c-format
msgid ""
"^BG%s%s^K1 almost dodged ^BG%s^K1's Overkill Rocket Propelled Chainsaw%s%s"
msgstr ""
+"^BG%s%s^K1 は ^BG%s^K1 のオーバーキルロケット推進チェーンソー%s%sをほぼ避けた"
#: qcsrc/common/notifications/all.inc:490
#, c-format
msgid ""
"^BG%s^K1 was sawn in half by their own Overkill Rocket Propelled Chainsaw%s%s"
msgstr ""
+"^BG%s%s^K1 が自分自身のオーバーキルロケット推進チェーンソー%s%sによって半分に"
+"切断された"
#: qcsrc/common/notifications/all.inc:491
#, c-format
msgid ""
"^BG%s^K1 blew themself up with their Overkill Rocket Propelled Chainsaw%s%s"
msgstr ""
+"^BG%s^K1 が自分自身のオーバーキルロケット推進チェーンソー%s%sで爆破した"
#: qcsrc/common/notifications/all.inc:493
#, c-format
msgid "^BG%s%s^K1 was gunned down by ^BG%s^K1's Overkill Shotgun%s%s"
msgstr ""
+"^BG%s%s^K1 は ^BG%s^K1 のオーバーキルショットガン%s%sによって射殺された"
#: qcsrc/common/notifications/all.inc:494
#, c-format
msgid "^BG%s%s^K1 was sniped with a Rifle by ^BG%s^K1%s%s"
-msgstr ""
+msgstr "BG%s%s^K1 は ^BG%s^K1 のライフル%s%sでひったくられた"
#: qcsrc/common/notifications/all.inc:495
#, c-format
msgid "^BG%s%s^K1 died in ^BG%s^K1's Rifle bullet hail%s%s"
-msgstr ""
+msgstr "^BG%s%s^K1 が ^BG%s^K1 からのライフル弾雨%s%sで死亡した"
#: qcsrc/common/notifications/all.inc:496
#, c-format
msgid "^BG%s%s^K1 failed to hide from ^BG%s^K1's Rifle bullet hail%s%s"
-msgstr ""
+msgstr "^BG%s%s^K1 は ^BG%s^K1 のライフル弾雨%s%sから非表示にできなかった"
#: qcsrc/common/notifications/all.inc:497
#, c-format
msgid "^BG%s%s^K1 failed to hide from ^BG%s^K1's Rifle%s%s"
-msgstr ""
+msgstr "^BG%s%s^K1 は ^BG%s^K1 のライフル%s%sから非表示にできなかった"
#: qcsrc/common/notifications/all.inc:498
#, c-format
msgid "^BG%s%s^K1 was pummeled by ^BG%s^K1's Seeker rockets%s%s"
-msgstr ""
+msgstr "^BG%s%s^K1 は ^BG%s^K1 のシーカーロケット%s%sに衝撃された"
#: qcsrc/common/notifications/all.inc:499
#, c-format
msgid "^BG%s%s^K1 was tagged by ^BG%s^K1's Seeker%s%s"
-msgstr ""
+msgstr "^BG%s%s^K1 は ^BG%s^K1 のシーカー%s%sタグ付たれた"
#: qcsrc/common/notifications/all.inc:500
#, c-format
msgid "^BG%s^K1 played with tiny Seeker rockets%s%s"
-msgstr ""
+msgstr "^BG%s^K1 が小さなシーカーロケット%s%sで遊びた"
#: qcsrc/common/notifications/all.inc:501
#, c-format
msgid "^BG%s%s^K1 was gunned down by ^BG%s^K1's Shockwave%s%s"
-msgstr ""
+msgstr "^BG%s%s^K1 は ^BG%s^K1 の衝撃波%s%sによって射殺された"
#: qcsrc/common/notifications/all.inc:502
#, c-format
msgid "^BG%s%s^K1 slapped ^BG%s^K1 around a bit with a large Shockwave%s%s"
-msgstr ""
+msgstr "^BG%s%s^K1 が ^BG%s^K1 は大きな衝撃波%s%sで少し叩かれた"
#: qcsrc/common/notifications/all.inc:503
#, c-format
msgid "^BG%s%s^K1 was gunned down by ^BG%s^K1's Shotgun%s%s"
-msgstr ""
+msgstr "^BG%s%s^K1 は ^BG%s^K1 のショットガン%s%sによって射殺された"
#: qcsrc/common/notifications/all.inc:504
#, c-format
msgid "^BG%s%s^K1 slapped ^BG%s^K1 around a bit with a large Shotgun%s%s"
-msgstr ""
+msgstr "^BG%s%s^K1 が ^BG%s^K1 は大きなショットガン%s%sで少し叩かれた"
#: qcsrc/common/notifications/all.inc:505
#, c-format
msgid "^BG%s^K1 is now thinking with portals%s%s"
-msgstr ""
+msgstr "^BG%s^K1 はポータル%s%sで考えている"
#: qcsrc/common/notifications/all.inc:506
#, c-format
msgid "^BG%s%s^K1 died of ^BG%s^K1's great playing on the @!#%%'n Tuba%s%s"
-msgstr ""
+msgstr "^BG%s%s^K1 は@!#%%'nチューバ%s%sでの ^BG%s^K1 の素晴らしい演奏で死んだ"
#: qcsrc/common/notifications/all.inc:507
#, c-format
msgid "^BG%s^K1 hurt their own ears with the @!#%%'n Tuba%s%s"
-msgstr ""
+msgstr "BG%s^K1 は@!#%%'nチューバ%s%sで耳を痛んだ"
#: qcsrc/common/notifications/all.inc:508
#, c-format
msgid "^BG%s%s^K1 has been sublimated by ^BG%s^K1's Vaporizer%s%s"
-msgstr ""
+msgstr "^BG%s%s^K1 は ^BG%s^K1 の気化器%s%sによって昇華された"
#: qcsrc/common/notifications/all.inc:509
#, c-format
msgid "^BG%s%s^K1 has been vaporized by ^BG%s^K1's Vortex%s%s"
-msgstr ""
+msgstr "^BG%s%s^K1 は ^BG%s^K1 のボーテックス%s%sによって気化された"
#: qcsrc/common/notifications/all.inc:528
msgid "^F4You are now alone!"
-msgstr ""
+msgstr "^F4あなたは一人になった!"
#: qcsrc/common/notifications/all.inc:530
msgid "^BGYou are attacking!"
-msgstr ""
+msgstr "^BGあなたは攻撃している!"
#: qcsrc/common/notifications/all.inc:531
msgid "^BGYou are defending!"
-msgstr ""
+msgstr "^BGあなたは守っている!"
#: qcsrc/common/notifications/all.inc:532
#, c-format
msgid "^BGObjective destroyed in ^F4%s^BG!"
-msgstr ""
+msgstr "^F4%s^BG で^BG目的を破壊された"
#: qcsrc/common/notifications/all.inc:534
msgid "^F4Begin!"
-msgstr "^F4スタート!"
+msgstr "^F4開始!"
#: qcsrc/common/notifications/all.inc:535
msgid "^F4Game starts in ^COUNT"
-msgstr ""
+msgstr "^F4ゲームは ^COUNT で開始します"
#: qcsrc/common/notifications/all.inc:536
msgid "^F4Round starts in ^COUNT"
-msgstr ""
+msgstr "^F4ラウンドは ^COUNT で開始します"
#: qcsrc/common/notifications/all.inc:537
msgid "^F4Round cannot start"
-msgstr ""
+msgstr "^F4ラウンドを開始できません"
#: qcsrc/common/notifications/all.inc:542
msgid "^F2Don't camp!"
-msgstr ""
+msgstr "^F2キャンプしないで!"
#: qcsrc/common/notifications/all.inc:546
msgid ""
"^BGFeel free to ^F2try to capture^BG the flag again\n"
"^BGif you think you will succeed."
msgstr ""
+"^BG今、あなたは自由です。\n"
+"^BG成功すると思われる場合\n"
+"^BG旗を^F2もう一度取ってみてください^BG。"
#: qcsrc/common/notifications/all.inc:547
msgid "^BGThis flag is currently inactive"
-msgstr ""
+msgstr "^BGこの旗は現在非活動だ"
#: qcsrc/common/notifications/all.inc:548
msgid ""
"^BGfor ^F2too many unsuccessful attempts^BG to capture.\n"
"^BGMake some defensive scores before trying again."
msgstr ""
+"^BGあなたは取るしようとして^F2失敗した回数が多すぎる^BGため、\n"
+"旗から^F1守っていた^BG。再試行する前にいくつかの防御得点を作成してください。"
#: qcsrc/common/notifications/all.inc:549
msgid "^BGYou captured the ^TC^TT^BG flag!"
-msgstr ""
+msgstr "^BGあなたが ^TC^TT^BG 旗を取れた!"
#: qcsrc/common/notifications/all.inc:550
msgid "^BGYou captured the flag!"
-msgstr ""
+msgstr "^BGあなたが旗を取れた!"
#: qcsrc/common/notifications/all.inc:551
#, c-format
msgid "^BGToo many flag throws! Throwing disabled for %s."
-msgstr ""
+msgstr "^BG旗投げが多すぎる! %s に投げが無効になっている。"
#: qcsrc/common/notifications/all.inc:552
#, c-format
msgid "^BG%s^BG passed the ^TC^TT^BG flag to %s"
-msgstr ""
+msgstr "^BG%s^BG は ^TC^TT^BG 旗を %s に渡した"
#: qcsrc/common/notifications/all.inc:553
#, c-format
msgid "^BG%s^BG passed the flag to %s"
-msgstr ""
+msgstr "^BG%s^BG は旗を %s に渡した"
#: qcsrc/common/notifications/all.inc:554
#, c-format
msgid "^BGYou received the ^TC^TT^BG flag from %s"
-msgstr ""
+msgstr "^BGあなたは %s から ^TC^TT^BG 旗を受け取った"
#: qcsrc/common/notifications/all.inc:555
#, c-format
msgid "^BGYou received the flag from %s"
-msgstr ""
+msgstr "^BGあなたは %s から旗を受け取った"
#: qcsrc/common/notifications/all.inc:556
#, c-format
msgid "^BGPress ^F2%s^BG to receive the flag from %s^BG"
-msgstr ""
+msgstr "^BG %s^BG から旗を受け取るために ^F2%s^BG を押して"
#: qcsrc/common/notifications/all.inc:557
#, c-format
msgid "^BGRequesting %s^BG to pass you the flag"
-msgstr ""
+msgstr "^BG旗を渡すよう %s^BG に要求している"
#: qcsrc/common/notifications/all.inc:558
#, c-format
msgid "^BGYou passed the ^TC^TT^BG flag to %s"
-msgstr ""
+msgstr "^BGあなたは ^TC^TT^BG 旗を %s に渡した"
#: qcsrc/common/notifications/all.inc:559
#, c-format
msgid "^BGYou passed the flag to %s"
-msgstr ""
+msgstr "^BGあなたは旗を %s に渡した"
#: qcsrc/common/notifications/all.inc:560
msgid "^BGYou got the ^TC^TT^BG flag!"
-msgstr ""
+msgstr "^BGあなたは ^TC^TT^BG 旗を手に入れた!"
#: qcsrc/common/notifications/all.inc:561
msgid "^BGYou got the flag!"
-msgstr ""
+msgstr "^BGあなたのは旗を手に入れた!"
#: qcsrc/common/notifications/all.inc:562
#, c-format
msgid "^BGYou got your %steam^BG's flag, return it!"
-msgstr ""
+msgstr "^BGあなたの%sチーム^BGの旗を手に入れた、返して!"
#: qcsrc/common/notifications/all.inc:563
#, c-format
msgid "^BGYou got the %senemy^BG's flag, return it!"
-msgstr ""
+msgstr "^BGあなたは %s敵^BG の旗を手に入れた、返して!"
#: qcsrc/common/notifications/all.inc:564
#, c-format
msgid "^BGThe %senemy^BG got your flag! Retrieve it!"
-msgstr ""
+msgstr "^BG%s敵^BGがあなたの旗を手に入れた! 取り戻せ!"
#: qcsrc/common/notifications/all.inc:565
#, c-format
msgid "^BGThe %senemy (^BG%s%s)^BG got your flag! Retrieve it!"
-msgstr ""
+msgstr "^BG%s敵 (^BG%s%s)^BG があなたの旗を手に入れた! 取り戻せ!"
#: qcsrc/common/notifications/all.inc:566
#, c-format
msgid "^BGThe %senemy^BG got the flag! Retrieve it!"
-msgstr ""
+msgstr "^BG%s敵^BGが旗を手に入れた! 取り戻せ!"
#: qcsrc/common/notifications/all.inc:567
#, c-format
msgid "^BGThe %senemy (^BG%s%s)^BG got the flag! Retrieve it!"
-msgstr ""
+msgstr "^BG%s敵 (^BG%s%s)^BG が旗を手に入れた! 取り戻せ!"
#: qcsrc/common/notifications/all.inc:568
#, c-format
msgid "^BGThe %senemy^BG got their flag! Retrieve it!"
-msgstr ""
+msgstr "^BG%s敵^BGは旗を手に入れた! 取り戻せ!"
#: qcsrc/common/notifications/all.inc:569
#, c-format
msgid "^BGThe %senemy (^BG%s%s)^BG got their flag! Retrieve it!"
-msgstr ""
+msgstr "^BG%s敵 (^B%s%sG)^BG は旗を手に入れた! 取り戻せ!"
#: qcsrc/common/notifications/all.inc:570
#, c-format
msgid "^BGYour %steam mate^BG got the ^TC^TT^BG flag! Protect them!"
-msgstr ""
+msgstr "^BGあなたの%sチームメイト^BGは ^TC^TT^BG 旗を手に入れた! 守れ!"
#: qcsrc/common/notifications/all.inc:571
#, c-format
msgid "^BGYour %steam mate (^BG%s%s)^BG got the ^TC^TT^BG flag! Protect them!"
msgstr ""
+"^BGあなたの%sチームメイト (^B%s%sG)^BG は ^TC^TT^BG 旗を手に入れた! 守れ!"
#: qcsrc/common/notifications/all.inc:572
#, c-format
msgid "^BGYour %steam mate^BG got the flag! Protect them!"
-msgstr ""
+msgstr "^BGあなたの%sチームメイト^BGは旗を手に入れた! 守れ!"
#: qcsrc/common/notifications/all.inc:573
#, c-format
msgid "^BGYour %steam mate (^BG%s%s)^BG got the flag! Protect them!"
-msgstr ""
+msgstr "^BGあなたの%sチームメイト (^B%s%sG)^BG は旗を手に入れた! 守れ!"
#: qcsrc/common/notifications/all.inc:574
msgid "^BGEnemies can now see you on radar!"
-msgstr ""
+msgstr "^BG敵はレーダーであなたを見ることができる!"
#: qcsrc/common/notifications/all.inc:575
msgid "^BGYou returned the ^TC^TT^BG flag!"
-msgstr ""
+msgstr "^BGあなたは ^TC^TT^BG 旗を返した!"
#: qcsrc/common/notifications/all.inc:576
msgid "^BGStalemate! Enemies can now see you on radar!"
-msgstr ""
+msgstr "^BG停滞! 敵はレーダーであなたを見ることができる!"
#: qcsrc/common/notifications/all.inc:577
msgid "^BGStalemate! Flag carriers can now be seen by enemies on radar!"
-msgstr ""
+msgstr "^BG停滞! 旗持ちはレーダーで敵に見られる!"
#: qcsrc/common/notifications/all.inc:581
#, c-format
msgid "^K3%sYou fragged ^BG%s"
-msgstr ""
+msgstr "^K3%sあなたは ^BG%s を削除した"
#: qcsrc/common/notifications/all.inc:582
#: qcsrc/common/notifications/all.inc:591
#: qcsrc/common/notifications/all.inc:600
#, c-format
msgid "^K3%sYou scored against ^BG%s"
-msgstr ""
+msgstr "^K3%sあなたは ^BG%s に対して得点した"
#: qcsrc/common/notifications/all.inc:583
#, c-format
msgid "^K1%sYou were fragged by ^BG%s"
-msgstr ""
+msgstr "^K1%sあなたは ^BG%s によって削除された!"
#: qcsrc/common/notifications/all.inc:584
#: qcsrc/common/notifications/all.inc:593
#: qcsrc/common/notifications/all.inc:602
#, c-format
msgid "^K1%sYou were scored against by ^BG%s"
-msgstr ""
+msgstr "^K1%sあなたは ^BG%s によって対して得点された"
#: qcsrc/common/notifications/all.inc:590
#, c-format
msgid "^K3%sYou burned ^BG%s"
-msgstr ""
+msgstr "^K3%sあなたは ^BG%s を燃やした"
#: qcsrc/common/notifications/all.inc:592
#, c-format
msgid "^K1%sYou were burned by ^BG%s"
-msgstr ""
+msgstr "^K1%sあなたは ^BG%s によって燃やされた"
#: qcsrc/common/notifications/all.inc:599
#, c-format
msgid "^K3%sYou froze ^BG%s"
-msgstr ""
+msgstr "^K3%sあなたは ^BG%s を凍結した"
#: qcsrc/common/notifications/all.inc:601
#, c-format
msgid "^K1%sYou were frozen by ^BG%s"
-msgstr ""
+msgstr "^K1%sあなたは ^BG%s によって凍結された"
#: qcsrc/common/notifications/all.inc:608
#, c-format
msgid "^K1%sYou typefragged ^BG%s"
-msgstr ""
+msgstr "^K1%sあなたは彼がタイプしている間に ^BG%s を削除した"
#: qcsrc/common/notifications/all.inc:609
#, c-format
msgid "^K1%sYou scored against ^BG%s^K1 while they were typing"
-msgstr ""
+msgstr "^K1%s彼らがタイプしていた間、あなたは ^BG%s^K1 に対して得点した"
#: qcsrc/common/notifications/all.inc:610
#, c-format
msgid "^K1%sYou were typefragged by ^BG%s"
-msgstr ""
+msgstr "^K1%sあなたはタイプしている間に ^BG%s によって削除された"
#: qcsrc/common/notifications/all.inc:611
#, c-format
msgid "^K1%sYou were scored against by ^BG%s^K1 while typing"
-msgstr ""
+msgstr "^K1%sあなたはタイプしている間、 ^BG%s^K1 によって対して得点した"
#: qcsrc/common/notifications/all.inc:617
#, c-format
msgid "^BGPress ^F2%s^BG again to toss the nade!"
-msgstr ""
+msgstr "^BG手榴弾を投げるために ^F2%s^BG をもう一度押して!"
#: qcsrc/common/notifications/all.inc:618
msgid "^F2You got a ^K1BONUS GRENADE^F2!"
-msgstr ""
+msgstr "^F2あなたは^K1ボーナス手榴弾^F2を手に入れた!"
#: qcsrc/common/notifications/all.inc:620
#, c-format
"^BGYou have been moved into a different team\n"
"You are now on: %s"
msgstr ""
+"^BGあなたは別のチームに移動された\n"
+"現在: %s"
#: qcsrc/common/notifications/all.inc:621
msgid "^K1Don't go against your team mates!"
-msgstr ""
+msgstr "^K1チームメイトに反対しないで!"
#: qcsrc/common/notifications/all.inc:621
msgid "^K1Don't shoot your team mates!"
-msgstr ""
+msgstr "^K1チームメイトを撃たないで!"
#: qcsrc/common/notifications/all.inc:622
msgid "^K1Die camper!"
-msgstr ""
+msgstr "^K1死ね、キャンパー!"
#: qcsrc/common/notifications/all.inc:622
msgid "^K1Reconsider your tactics, camper!"
-msgstr ""
+msgstr "^K1戦術を再考しろ、キャンパー!"
#: qcsrc/common/notifications/all.inc:623
msgid "^K1You unfairly eliminated yourself!"
-msgstr ""
+msgstr "^K1あなたは不当に自分を削除した!"
#: qcsrc/common/notifications/all.inc:624
#, c-format
msgid "^K1You were %s"
-msgstr ""
+msgstr "^K1あなたは %s だった"
#: qcsrc/common/notifications/all.inc:625
msgid "^K1You couldn't catch your breath!"
-msgstr ""
+msgstr "^K1あなたは息ができなかった!"
#: qcsrc/common/notifications/all.inc:626
msgid "^K1You hit the ground with a crunch!"
-msgstr ""
+msgstr "^K1あなたはクランチで地面を打ちた!"
#: qcsrc/common/notifications/all.inc:627
msgid "^K1You felt a little too hot!"
-msgstr ""
+msgstr "^K1あなたは少し暑く感じすぎた!"
#: qcsrc/common/notifications/all.inc:627
msgid "^K1You got a little bit too crispy!"
-msgstr ""
+msgstr "^K1あなたは少しカリカリになりすぎた!"
#: qcsrc/common/notifications/all.inc:628
msgid "^K1You killed your own dumb self!"
-msgstr ""
+msgstr "^K1あなたは自分の愚かな自己を殺した!"
#: qcsrc/common/notifications/all.inc:628
msgid "^K1You need to be more careful!"
-msgstr ""
+msgstr "^K1あなたはもっと注意する必要がある!"
#: qcsrc/common/notifications/all.inc:629
msgid "^K1You couldn't stand the heat!"
-msgstr ""
+msgstr "^K1あなたは暑さに耐えられなかった!"
#: qcsrc/common/notifications/all.inc:630
msgid "^K1You need to watch out for monsters!"
-msgstr ""
+msgstr "あなたはモンスターに気をつける必要がある!"
#: qcsrc/common/notifications/all.inc:630
msgid "^K1You were killed by a monster!"
-msgstr ""
+msgstr "^K1あなたはモンスターに殺された!"
#: qcsrc/common/notifications/all.inc:631
msgid "^K1Tastes like chicken!"
-msgstr ""
+msgstr "^K1チキンの味!"
#: qcsrc/common/notifications/all.inc:631
msgid "^K1You forgot to put the pin back in!"
-msgstr ""
+msgstr "^K1あなたはピンを戻すのを忘れた!"
#: qcsrc/common/notifications/all.inc:632
msgid "^K1Hanging around a napalm explosion is bad!"
-msgstr ""
+msgstr "^K1ナパーム弾の周りをぶら下がることは悪い!"
#: qcsrc/common/notifications/all.inc:633
msgid "^K1You felt a little chilly!"
-msgstr ""
+msgstr "^K1あなたは少し肌寒くなった!"
#: qcsrc/common/notifications/all.inc:633
msgid "^K1You got a little bit too cold!"
-msgstr ""
+msgstr "^K1あなたは少し寒くなった!"
#: qcsrc/common/notifications/all.inc:634
msgid "^K1Your Healing Nade is a bit defective"
-msgstr ""
+msgstr "^K1あなたの治癒手榴弾は少し欠陥だ"
#: qcsrc/common/notifications/all.inc:635
msgid "^K1You are respawning for running out of ammo..."
-msgstr "^K1あなたは弾薬がなくなったために再び現れている..."
+msgstr "^K1あなたは弾薬が切れたために再び現れている..."
#: qcsrc/common/notifications/all.inc:635
msgid "^K1You were killed for running out of ammo..."
-msgstr "^K1あなたは弾薬がなくなったために殺された..."
+msgstr "^K1あなたは弾薬が切れたために殺された..."
#: qcsrc/common/notifications/all.inc:636
msgid "^K1You grew too old without taking your medicine"
-msgstr ""
+msgstr "^K1あなたは薬を飲まずに年を取りすぎた"
#: qcsrc/common/notifications/all.inc:636
msgid "^K1You need to preserve your health"
-msgstr ""
+msgstr "^K1あなたは健康を維持する必要がある"
#: qcsrc/common/notifications/all.inc:637
msgid "^K1You became a shooting star!"
-msgstr ""
+msgstr "^K1あなたは流れ星になった!"
#: qcsrc/common/notifications/all.inc:638
msgid "^K1You melted away in slime!"
-msgstr ""
+msgstr "^K1あなたはスライムで溶かした!"
#: qcsrc/common/notifications/all.inc:639
msgid "^K1You committed suicide!"
-msgstr ""
+msgstr "^K1あなたは自殺した!"
#: qcsrc/common/notifications/all.inc:639
msgid "^K1You ended it all!"
-msgstr ""
+msgstr "^K1あなたは全て終了した!"
#: qcsrc/common/notifications/all.inc:640
msgid "^K1You got stuck in a swamp!"
-msgstr ""
+msgstr "^K1あなたは沼で立ち往生した!"
#: qcsrc/common/notifications/all.inc:641
#, c-format
msgid "^BGYou are now on: %s"
-msgstr ""
+msgstr "^BG現在: %s"
#: qcsrc/common/notifications/all.inc:642
msgid "^K1You died in an accident!"
-msgstr ""
+msgstr "^K1あなたは事故で死んだ!"
#: qcsrc/common/notifications/all.inc:643
msgid "^K1You had an unfortunate run in with a turret!"
-msgstr ""
+msgstr "^K1あなたは砲塔との不運な出会いがあった!"
#: qcsrc/common/notifications/all.inc:643
msgid "^K1You were fragged by a turret!"
-msgstr ""
+msgstr "^K1あなたは砲塔によって削除された!"
#: qcsrc/common/notifications/all.inc:644
msgid "^K1You had an unfortunate run in with an eWheel turret!"
-msgstr ""
+msgstr "^K1あなたはeWheel砲塔との不運な出会いがあった!"
#: qcsrc/common/notifications/all.inc:644
msgid "^K1You were fragged by an eWheel turret!"
-msgstr ""
+msgstr "^K1あなたはeWheel砲塔によって削除された!"
#: qcsrc/common/notifications/all.inc:645
msgid "^K1You had an unfortunate run in with a Walker turret!"
-msgstr ""
+msgstr "^K1あなたはウォーカー砲塔との不運な出会いがあった!"
#: qcsrc/common/notifications/all.inc:645
msgid "^K1You were fragged by a Walker turret!"
-msgstr ""
+msgstr "^K1あなたはウォーカー砲塔によって削除された!"
#: qcsrc/common/notifications/all.inc:646
msgid "^K1You got caught in the blast of a Bumblebee explosion!"
-msgstr ""
+msgstr "^K1あなたはバンブルビーの爆風に巻き込まれた!"
#: qcsrc/common/notifications/all.inc:647
msgid "^K1You were crushed by a vehicle!"
-msgstr ""
+msgstr "^K1あなたは乗り物に押し潰された!"
#: qcsrc/common/notifications/all.inc:648
msgid "^K1You were caught in a Raptor cluster bomb!"
-msgstr ""
+msgstr "^K1あなたはラプタークラスター爆弾に巻き込まれた!"
#: qcsrc/common/notifications/all.inc:649
msgid "^K1You got caught in the blast of a Raptor explosion!"
-msgstr ""
+msgstr "^K1あなたはラプターの爆風に巻き込まれた!"
#: qcsrc/common/notifications/all.inc:650
msgid "^K1You got caught in the blast of a Spiderbot explosion!"
-msgstr ""
+msgstr "^K1あなたはスパイダーボットの爆風に巻き込まれた!"
#: qcsrc/common/notifications/all.inc:651
msgid "^K1You were blasted to bits by a Spiderbot rocket!"
-msgstr ""
+msgstr "^K1あなたはスパイダーボットのロケットで爆破された!"
#: qcsrc/common/notifications/all.inc:652
msgid "^K1You got caught in the blast of a Racer explosion!"
-msgstr ""
+msgstr "^K1あなたはレーサーの爆風に巻き込まれた!"
#: qcsrc/common/notifications/all.inc:653
msgid "^K1You couldn't find shelter from a Racer rocket!"
-msgstr ""
+msgstr "^K1あなたはレーサーロケットからの避難所を見つけることができなかった!"
#: qcsrc/common/notifications/all.inc:654
msgid "^K1Watch your step!"
-msgstr ""
+msgstr "^K1あなたの足元に気を付けて!"
#: qcsrc/common/notifications/all.inc:656
#, c-format
msgid "^K1Moron! You fragged ^BG%s^K1, a team mate!"
-msgstr ""
+msgstr "^K1馬鹿! あなたは ^BG%s^K1 を削除した、彼があんたのチームメイトだ!"
#: qcsrc/common/notifications/all.inc:656
#, c-format
msgid "^K1Moron! You went against ^BG%s^K1, a team mate!"
-msgstr ""
+msgstr "^K1馬鹿! あなたは ^BG%s^K1 に反対した、彼があんたのチームメイトだ!"
#: qcsrc/common/notifications/all.inc:657
#, c-format
msgid "^K1You were fragged by ^BG%s^K1, a team mate"
-msgstr ""
+msgstr "^K1あなたは ^BG%s^K1 によって削除された、彼があんたのチームメイトだ"
#: qcsrc/common/notifications/all.inc:657
#, c-format
msgid "^K1You were scored against by ^BG%s^K1, a team mate"
msgstr ""
+"^K1あなたは ^BG%s^K1 によって対して得点された、彼があんたのチームメイトだ"
#: qcsrc/common/notifications/all.inc:659
msgid ""
#: qcsrc/common/notifications/all.inc:661
#, c-format
msgid "^BGYou need %s^BG!"
-msgstr ""
+msgstr "^BGあなたは %s^BG が必要だ!"
#: qcsrc/common/notifications/all.inc:662
#, c-format
msgid "^BGYou also need %s^BG!"
-msgstr ""
+msgstr "^BGあなたは %s^BG も必要だ!"
#: qcsrc/common/notifications/all.inc:663
msgid "^BGDoor unlocked!"
#: qcsrc/common/notifications/all.inc:665
#, c-format
msgid "^F2Extra lives taken: ^K1%s"
-msgstr ""
+msgstr "^F2奪った余分な命数: ^K1%s"
#: qcsrc/common/notifications/all.inc:667
#, c-format
msgid "^K3You revived ^BG%s"
-msgstr ""
+msgstr "^K3あなたは ^BG%s を復活した"
#: qcsrc/common/notifications/all.inc:668
msgid "^K3You revived yourself"
-msgstr ""
+msgstr "^K3あなた自身を復活した"
#: qcsrc/common/notifications/all.inc:669
#, c-format
msgid "^K3You were revived by ^BG%s"
-msgstr ""
+msgstr "^K3あなたは ^BG%s によって復活された"
#: qcsrc/common/notifications/all.inc:670
#, c-format
msgid "^K3You were automatically revived after %s seconds"
-msgstr ""
+msgstr "^K3あなたは %s 秒後に自動的に復活した"
#: qcsrc/common/notifications/all.inc:672
msgid "^BGThe generator is under attack!"
-msgstr ""
+msgstr "^BG発生器が攻撃を受けている!"
#: qcsrc/common/notifications/all.inc:674
msgid "^TC^TT^BG team loses the round"
-msgstr ""
+msgstr "^TC^TT^BG チームがラウンドに負けた"
#: qcsrc/common/notifications/all.inc:678
msgid "^K1You froze yourself"
-msgstr ""
+msgstr "^K1あなたは自分を冷凍した"
#: qcsrc/common/notifications/all.inc:679
msgid "^K1Round already started, you spawn as frozen"
-msgstr ""
+msgstr "^K1ラウンドはすでに開始されており、凍結状態で現れる"
#: qcsrc/common/notifications/all.inc:681
#, c-format
msgid "^K1A %s has arrived!"
-msgstr ""
+msgstr "^K1 %s が到着した!"
#: qcsrc/common/notifications/all.inc:685
msgid "^BGYou got the ^F1Fuel regenerator"
-msgstr ""
+msgstr "^BGあなたは^F1燃料再生器を手に入れた"
#: qcsrc/common/notifications/all.inc:686
msgid "^BGYou got the ^F1Jetpack"
-msgstr ""
+msgstr "^BGあなたは^F1ジェットパックを手に入れた"
#: qcsrc/common/notifications/all.inc:694
msgid ""
"^K1No spawnpoints available!\n"
"Hope your team can fix it..."
msgstr ""
+"^K1利用可能な現れられるスペースがありません!\n"
+"あなたのチームがそれを修正できることを願っています..."
#: qcsrc/common/notifications/all.inc:695
msgid ""
"^K1You may not join the game at this time.\n"
"The player limit reached maximum capacity."
msgstr ""
+"現在、ゲームに参加できません。\n"
+"選手の制限が最大容量に達しました。"
#: qcsrc/common/notifications/all.inc:699
msgid "^BGYou picked up the ball"
-msgstr ""
+msgstr "^BGあなたはボールを拾いた"
#: qcsrc/common/notifications/all.inc:700
msgid "^BGKilling people while you don't have the ball gives no points!"
-msgstr ""
+msgstr "^BGあなたにはボールを持っていない時に人を殺してもポイントを与えない!"
#: qcsrc/common/notifications/all.inc:702
msgid ""
"^BGAll keys are in your team's hands!\n"
"Help the key carriers to meet!"
msgstr ""
+"^BG全ての鍵はチームの手にある!\n"
+"鍵持ちが会うのを助けて!"
#: qcsrc/common/notifications/all.inc:703
msgid ""
"^BGAll keys are in ^TC^TT team^BG's hands!\n"
"Interfere ^F4NOW^BG!"
msgstr ""
+"^BG全ての鍵は ^TC^TT チーム^BGの手にあ全る!\n"
+"^F4今^BGすぐ干渉して!"
#: qcsrc/common/notifications/all.inc:704
msgid ""
"^BGAll keys are in your team's hands!\n"
"Meet the other key carriers ^F4NOW^BG!"
msgstr ""
+"^BG全ての鍵はチームの手にある!\n"
+"^F4今^BGすぐ他の鍵持ちに会って!"
#: qcsrc/common/notifications/all.inc:705
msgid "^F4Round will start in ^COUNT"
-msgstr ""
+msgstr "^F4ラウンドは ^COUNT から開始する"
#: qcsrc/common/notifications/all.inc:706
msgid "^BGScanning frequency range..."
-msgstr ""
+msgstr "^BG周波数範囲をスキャン中..."
#: qcsrc/common/notifications/all.inc:707
msgid "^BGYou are starting with the ^TC^TT Key"
-msgstr ""
+msgstr "^BGあなたは ^TC^TT 鍵で開始ている"
#: qcsrc/common/notifications/all.inc:709
msgid "^BGYou have no lives left, you must wait until the next match"
-msgstr ""
+msgstr "^BGあなたには残りの命がない、あなたは次の試合まで待つ必要がない"
#: qcsrc/common/notifications/all.inc:711
#, c-format
"^BGWaiting for players to join...\n"
"Need active players for: %s"
msgstr ""
+"^BG選手の参加を待ち中...\n"
+"必要活発な選手: %s"
#: qcsrc/common/notifications/all.inc:712
#, c-format
msgid "^BGWaiting for %s player(s) to join..."
-msgstr ""
+msgstr "^BG%s 選手の参加を待ち中..."
#: qcsrc/common/notifications/all.inc:714
msgid "^BGYour weapon has been downgraded until you find some ammo!"
-msgstr ""
+msgstr "^BGあなたは弾薬がいくつか見つかるまで、あなたの武器が格下げされた!"
#: qcsrc/common/notifications/all.inc:715
msgid "^F4^COUNT^BG left to find some ammo!"
-msgstr ""
+msgstr "^F4残り ^COUNT^BG で弾薬が見つかる!"
#: qcsrc/common/notifications/all.inc:716
msgid "^BGGet some ammo or you'll be dead in ^F4^COUNT^BG!"
-msgstr ""
+msgstr "^BG弾薬を入手しないと ^F4^COUNT^BG で死んでしまいる!"
#: qcsrc/common/notifications/all.inc:716
msgid "^BGGet some ammo! ^F4^COUNT^BG left!"
-msgstr ""
+msgstr "^BG弾薬を入手しろ! ^F4残り ^COUNT^BG !"
#: qcsrc/common/notifications/all.inc:717
#, c-format
msgid "^F2Extra lives remaining: ^K1%s"
-msgstr ""
+msgstr "^F2残りの余分な命: ^K1%s"
#: qcsrc/common/notifications/all.inc:719 qcsrc/menu/xonotic/campaign.qc:244
#, c-format
msgid "Level %s: "
-msgstr ""
+msgstr "レベル %s: "
#: qcsrc/common/notifications/all.inc:719
#, c-format
msgid "^BGPress ^F2%s^BG to enter the game"
-msgstr ""
+msgstr "^BG ^F2%s^BG を押してゲームに入る"
#: qcsrc/common/notifications/all.inc:722
#, c-format
"^F2^COUNT^BG until weapon change...\n"
"Next weapon: ^F1%s"
msgstr ""
+"^F2^COUNT^BG 、武器が変更されるまで...\n"
+"次の武器: ^F1%s"
#: qcsrc/common/notifications/all.inc:723
#, c-format
msgid "^F2Active weapon: ^F1%s"
-msgstr ""
+msgstr "^F2活発な武器: ^F1%s"
#: qcsrc/common/notifications/all.inc:725
#, c-format
msgid "^BGYou captured %s^BG control point"
-msgstr ""
+msgstr "^BGあなたは %s^BG コントロールポイントを取れた"
#: qcsrc/common/notifications/all.inc:726
msgid "^BGYou captured a control point"
-msgstr ""
+msgstr "^BGあなたはコントロールポイントを取れた"
#: qcsrc/common/notifications/all.inc:727
#, c-format
msgid "^TC^TT^BG team captured %s^BG control point"
-msgstr ""
+msgstr "^TC^TT^BG チームは %s^BG コントロールポイントを取れた"
#: qcsrc/common/notifications/all.inc:728
msgid "^TC^TT^BG team captured a control point"
-msgstr ""
+msgstr "^TC^TT^BG チームはコントロールポイントを取れた"
#: qcsrc/common/notifications/all.inc:729
msgid "^BGThis control point currently cannot be captured"
-msgstr ""
+msgstr "^BGこのコントロールポイントは現在取られない"
#: qcsrc/common/notifications/all.inc:730
msgid ""
"^BGThe enemy generator cannot be destroyed yet\n"
"^F2Capture some control points to unshield it"
msgstr ""
+"^BG敵の発生器はまだ破壊できない\n"
+"^F2いくつかのコントロールポイントを取れて、非シールドする"
#: qcsrc/common/notifications/all.inc:731
msgid "^BGThe ^TCenemy^BG generator is no longer shielded!"
-msgstr ""
+msgstr "^BG ^TC 敵^BGの発生器はシールドされなくなった!"
#: qcsrc/common/notifications/all.inc:732
msgid ""
"^K1Your generator is NOT shielded!\n"
"^BGRe-capture control points to shield it!"
msgstr ""
+"^K1あなたの発生器はシールドされていない!\n"
+"^BGコントロールポイントを再取れてシールドして!"
#: qcsrc/common/notifications/all.inc:733
#, c-format
msgid "^BGPress ^F2%s^BG to teleport"
-msgstr ""
+msgstr "^BG ^F2%s^BG を押してテレポートする"
#: qcsrc/common/notifications/all.inc:734
#, c-format
msgid "^BGTeleporting disabled for %s"
-msgstr ""
+msgstr "^BGテレポートは %s 間無効"
#: qcsrc/common/notifications/all.inc:736
msgid ""
"^F2Now playing ^F4OVERTIME^F2!\n"
"Keep fragging until we have a winner!"
msgstr ""
+"^F2残業中!\n"
+"勝者が出るまで削除を立て続けて!"
#: qcsrc/common/notifications/all.inc:736
msgid ""
"^F2Now playing ^F4OVERTIME^F2!\n"
"Keep scoring until we have a winner!"
msgstr ""
+"^F2残業中!\n"
+"勝者が出るまで得点を立て続けて!"
#: qcsrc/common/notifications/all.inc:737
msgid ""
"The more control points your team holds,\n"
"the faster the enemy generator decays"
msgstr ""
+"^F2残業中!\n"
+"\n"
+"発電機は現在衰退してる。\n"
+"チームが保持するコントロールポイントが多いほど、\n"
+"敵の発生器の減衰が速くなる"
#: qcsrc/common/notifications/all.inc:738
#, c-format
"^F2Now playing ^F4OVERTIME^F2!\n"
"^BGAdded ^F4%s^BG to the game!"
msgstr ""
+"^F2残業中!\n"
+"^BG F4%s^BG がゲームに追加された!"
#: qcsrc/common/notifications/all.inc:740
msgid "^K1In^BG-portal created"
-msgstr ""
+msgstr "^BGポータル^K1内^BGが作成された"
#: qcsrc/common/notifications/all.inc:741
msgid "^F3Out^BG-portal created"
-msgstr ""
+msgstr "^BGポータル^F3外^BGが作成された"
#: qcsrc/common/notifications/all.inc:742
msgid "^F1Portal creation failed"
-msgstr ""
+msgstr "^F1ポータルの作成に失敗した"
#: qcsrc/common/notifications/all.inc:744
msgid "^F2Strength infuses your weapons with devastating power"
-msgstr ""
+msgstr "^F2「力」はあなたの武器に壊滅的な力を吹き込みる"
#: qcsrc/common/notifications/all.inc:745
msgid "^F2Strength has worn off"
-msgstr ""
+msgstr "^F2「力」がすり減った"
#: qcsrc/common/notifications/all.inc:747
msgid "^F2Shield surrounds you"
-msgstr ""
+msgstr "^F2「盾」があなたを囲んでいる"
#: qcsrc/common/notifications/all.inc:748
msgid "^F2Shield has worn off"
-msgstr ""
+msgstr "^F2「盾」がすり減った"
#: qcsrc/common/notifications/all.inc:750
msgid "^F2You are on speed"
-msgstr ""
+msgstr "^F2あなたは「速度」に乗っている"
#: qcsrc/common/notifications/all.inc:751
msgid "^F2Speed has worn off"
-msgstr ""
+msgstr "^F2「速度」がすり減った"
#: qcsrc/common/notifications/all.inc:753
msgid "^F2You are invisible"
-msgstr ""
+msgstr "^F2あなたには「不可視」がある"
#: qcsrc/common/notifications/all.inc:754
msgid "^F2Invisibility has worn off"
-msgstr ""
+msgstr "^F2「不可視」がすり減った"
#: qcsrc/common/notifications/all.inc:756
msgid "^F2The race is over, finish your lap!"
-msgstr ""
+msgstr "^F2レースが終わった、ラップを終了して!"
#: qcsrc/common/notifications/all.inc:758
msgid "^BGSequence completed!"
-msgstr ""
+msgstr "^BG順序完了!"
#: qcsrc/common/notifications/all.inc:759
msgid "^BGThere are more to go..."
-msgstr ""
+msgstr "^BG続行するにはさらに必要がある..."
#: qcsrc/common/notifications/all.inc:760
#, c-format
msgid "^BGOnly %s^BG more to go..."
-msgstr ""
+msgstr "^BG後 ^BG%s だけ..."
#: qcsrc/common/notifications/all.inc:762
msgid "^F2Superweapons have broken down"
-msgstr ""
+msgstr "^F2スーパー武器が壊れられた"
#: qcsrc/common/notifications/all.inc:763
msgid "^F2Superweapons have been lost"
-msgstr ""
+msgstr "^F2スーパー武器は失われた"
#: qcsrc/common/notifications/all.inc:764
msgid "^F2You now have a superweapon"
-msgstr ""
+msgstr "^F2今、あなたはスーパー武器がある"
#: qcsrc/common/notifications/all.inc:766
msgid "^K1Changing to ^TC^TT^K1 in ^COUNT"
-msgstr ""
+msgstr "^K1 ^COUNT に ^TC^TT^K1 に変更中"
#: qcsrc/common/notifications/all.inc:767
msgid "^K1Changing team in ^COUNT"
-msgstr ""
+msgstr "^K1 ^COUNT にチームに変更中"
#: qcsrc/common/notifications/all.inc:768
msgid "^K1Spectating in ^COUNT"
-msgstr ""
+msgstr "^K1 ^COUNT に観戦中"
#: qcsrc/common/notifications/all.inc:769
msgid "^K1Suicide in ^COUNT"
-msgstr ""
+msgstr "^K1 ^COUNT に自殺中"
#: qcsrc/common/notifications/all.inc:771
msgid "^F4Timeout begins in ^COUNT"
-msgstr ""
+msgstr "^F4タイムアウトは ^COUNT から開始します"
#: qcsrc/common/notifications/all.inc:772
msgid "^F4Timeout ends in ^COUNT"
-msgstr ""
+msgstr "^F4タイムアウトは ^COUNT で終了します"
#: qcsrc/common/notifications/all.inc:774
msgid "^K1Cannot join given minigame session!"
-msgstr ""
+msgstr "^K1特定のミニゲームセッションに参加できない!"
#: qcsrc/common/notifications/all.inc:776
#, c-format
msgid "^BGPress ^F2%s^BG to enter/exit the vehicle"
-msgstr ""
+msgstr "^BG乗り物に出入りするために ^F2%s^BG を押して"
#: qcsrc/common/notifications/all.inc:777
#, c-format
msgid "^BGPress ^F2%s^BG to enter the vehicle gunner"
-msgstr ""
+msgstr "^BG乗り物の砲手に入るために ^F2%s^BG を押して"
#: qcsrc/common/notifications/all.inc:778
#, c-format
msgid "^BGPress ^F2%s^BG to steal this vehicle"
-msgstr ""
+msgstr "^BGこの乗り物を盗むために ^F2%s^BG を押して"
#: qcsrc/common/notifications/all.inc:779
msgid ""
"^F2The enemy is stealing one of your vehicles!\n"
"^F4Stop them!"
msgstr ""
+"^F2敵はあなたの乗り物を盗んでいる!\n"
+"^F4彼らを止めて!"
#: qcsrc/common/notifications/all.inc:780
msgid "^F2Intruder detected, disabling shields!"
-msgstr ""
+msgstr "^F2侵入者を検出した、シールドを無効中!"
#: qcsrc/common/notifications/all.qh:198
msgid "Notification dump command only works with cl_cmd and sv_cmd."
-msgstr ""
+msgstr "通知ダンプコマンドは cl_cmd および sv_cmd でのみ機能します。"
#: qcsrc/common/notifications/all.qh:408 qcsrc/common/notifications/all.qh:409
#, c-format
msgid " (near %s)"
-msgstr ""
+msgstr " ( %s に近い)"
#: qcsrc/common/notifications/all.qh:416 qcsrc/common/notifications/all.qh:417
msgid "primary"
#: qcsrc/common/notifications/all.qh:428
msgid "drop flag"
-msgstr ""
+msgstr "旗を落とす"
#: qcsrc/common/notifications/all.qh:429
msgid "throw nade"
-msgstr ""
+msgstr "手榴弾を投げる"
#: qcsrc/common/notifications/all.qh:455
#, c-format
msgid "%s^K1 made a TRIPLE FRAG! %s^BG"
-msgstr ""
+msgstr "%s^K1 がトリプル削除をした! %s^BG"
#: qcsrc/common/notifications/all.qh:455
#, c-format
msgid "%s^K1 made a TRIPLE SCORE! %s^BG"
-msgstr ""
+msgstr "%s^K1 がトリプル得点をした! %s^BG"
#: qcsrc/common/notifications/all.qh:455
msgid "TRIPLE FRAG! "
#: qcsrc/common/notifications/all.qh:456
#, c-format
msgid "%s^K1 made FIVE SCORES IN A ROW! %s^BG"
-msgstr ""
+msgstr "%s^K1 は5つ得点を一列にした! %s^BG"
#: qcsrc/common/notifications/all.qh:456
#, c-format
msgid "%s^K1 unlocked RAGE! %s^BG"
-msgstr ""
+msgstr "%s^K1 が激怒を解除した! %s^BG"
#: qcsrc/common/notifications/all.qh:456
msgid "RAGE! "
#: qcsrc/common/notifications/all.qh:457
#, c-format
msgid "%s^K1 made TEN SCORES IN A ROW! %s^BG"
-msgstr ""
+msgstr "%s^K1 は10つ得点を一列にした! %s^BG"
#: qcsrc/common/notifications/all.qh:457
#, c-format
msgid "%s^K1 started a MASSACRE! %s^BG"
-msgstr ""
+msgstr "%s^K1 が虐殺を開始した! %s^BG"
#: qcsrc/common/notifications/all.qh:457
msgid "MASSACRE! "
#: qcsrc/common/teams.qh:31
msgid "TEAM^Red"
-msgstr ""
+msgstr "赤"
#: qcsrc/common/teams.qh:32
msgid "TEAM^Blue"
-msgstr ""
+msgstr "青"
#: qcsrc/common/teams.qh:33
msgid "TEAM^Yellow"
-msgstr ""
+msgstr "黄"
#: qcsrc/common/teams.qh:34
msgid "TEAM^Pink"
-msgstr ""
+msgstr "ピンク"
#: qcsrc/common/teams.qh:35
msgid "Team"
-msgstr ""
+msgstr "チーム"
#: qcsrc/common/teams.qh:36
msgid "Neutral"
#: qcsrc/common/teams.qh:39
msgid "KEY^Red"
-msgstr ""
+msgstr "赤"
#: qcsrc/common/teams.qh:40
msgid "KEY^Blue"
-msgstr ""
+msgstr "青"
#: qcsrc/common/teams.qh:41
msgid "KEY^Yellow"
-msgstr ""
+msgstr "黄"
#: qcsrc/common/teams.qh:42
msgid "KEY^Pink"
-msgstr ""
+msgstr "ピンク"
#: qcsrc/common/teams.qh:43
msgid "FLAG^Red"
-msgstr ""
+msgstr "赤"
#: qcsrc/common/teams.qh:44
msgid "FLAG^Blue"
-msgstr ""
+msgstr "青"
#: qcsrc/common/teams.qh:45
msgid "FLAG^Yellow"
-msgstr ""
+msgstr "黄"
#: qcsrc/common/teams.qh:46
msgid "FLAG^Pink"
-msgstr ""
+msgstr "ピンク"
#: qcsrc/common/teams.qh:47
msgid "GENERATOR^Red"
-msgstr ""
+msgstr "赤"
#: qcsrc/common/teams.qh:48
msgid "GENERATOR^Blue"
-msgstr ""
+msgstr "青"
#: qcsrc/common/teams.qh:49
msgid "GENERATOR^Yellow"
-msgstr ""
+msgstr "黄"
#: qcsrc/common/teams.qh:50
msgid "GENERATOR^Pink"
-msgstr ""
+msgstr "ピンク"
#: qcsrc/common/turrets/all.qh:95
msgid "Turrets dump command only works with sv_cmd."
#: qcsrc/common/turrets/turret/flac.qh:13
msgid "FLAC Cannon"
-msgstr ""
+msgstr "FLACキャノン"
#: qcsrc/common/turrets/turret/flac_weapon.qh:7
msgid "FLAC"
#: qcsrc/common/turrets/turret/fusionreactor.qh:11
msgid "Fusion Reactor"
-msgstr ""
+msgstr "融合炉"
#: qcsrc/common/turrets/turret/hellion.qh:13
msgid "Hellion Missile Turret"
-msgstr ""
+msgstr "ヘリオンミサイル砲塔"
#: qcsrc/common/turrets/turret/hellion_weapon.qh:7
msgid "Hellion"
-msgstr ""
+msgstr "ヘリオン"
#: qcsrc/common/turrets/turret/hk.qh:15
msgid "Hunter-Killer Turret"
-msgstr ""
+msgstr "ハンターキラー砲塔"
#: qcsrc/common/turrets/turret/hk_weapon.qh:7
msgid "Hunter-Killer"
-msgstr ""
+msgstr "ハンターキラー"
#: qcsrc/common/turrets/turret/machinegun.qh:13
msgid "Machinegun Turret"
-msgstr ""
+msgstr "機関銃砲塔"
#: qcsrc/common/turrets/turret/machinegun_weapon.qh:7
msgid "Machinegun"
-msgstr ""
+msgstr "機関銃"
#: qcsrc/common/turrets/turret/mlrs.qh:13
msgid "MLRS Turret"
-msgstr ""
+msgstr "MLRS砲塔"
#: qcsrc/common/turrets/turret/mlrs_weapon.qh:7
msgid "MLRS"
-msgstr ""
+msgstr "MLRS"
#: qcsrc/common/turrets/turret/phaser.qh:13
msgid "Phaser Cannon"
-msgstr ""
+msgstr "フェイザーキャノン"
#: qcsrc/common/turrets/turret/phaser_weapon.qh:7
msgid "Phaser"
-msgstr ""
+msgstr "フェイザー"
#: qcsrc/common/turrets/turret/plasma.qh:13
msgid "Plasma Cannon"
-msgstr ""
+msgstr "プラズマキャノン"
#: qcsrc/common/turrets/turret/plasma_dual.qh:8
msgid "Dual plasma"
-msgstr ""
+msgstr "デュアルプラズマ"
#: qcsrc/common/turrets/turret/plasma_dual.qh:20
msgid "Dual Plasma Cannon"
-msgstr ""
+msgstr "デュアルプラズマキャノン"
#: qcsrc/common/turrets/turret/plasma_weapon.qh:7
msgid "Plasma"
-msgstr ""
+msgstr "プラズマ"
#: qcsrc/common/turrets/turret/tesla.qh:13
#: qcsrc/common/turrets/turret/tesla_weapon.qh:7
msgid "Tesla Coil"
-msgstr ""
+msgstr "テスラコイル"
#: qcsrc/common/turrets/turret/walker.qh:15
msgid "Walker Turret"
-msgstr ""
+msgstr "ウォーカー砲塔"
#: qcsrc/common/turrets/turret/walker_weapon.qh:7
msgid "Walker"
-msgstr ""
+msgstr "ウォーカー"
#: qcsrc/common/util.qc:1390
#: qcsrc/menu/xonotic/dialog_multiplayer_profile.qc:176
#: qcsrc/menu/xonotic/dialog_multiplayer_profile.qc:186
msgid "Male"
-msgstr ""
+msgstr "男性"
#: qcsrc/common/util.qc:1391
#: qcsrc/menu/xonotic/dialog_multiplayer_profile.qc:175
#: qcsrc/menu/xonotic/dialog_multiplayer_profile.qc:185
msgid "Female"
-msgstr ""
+msgstr "女性"
#: qcsrc/common/util.qc:1392
#: qcsrc/menu/xonotic/dialog_multiplayer_profile.qc:174
#: qcsrc/menu/xonotic/dialog_multiplayer_profile.qc:187
msgid "Undisclosed"
-msgstr ""
+msgstr "未知"
#: qcsrc/common/util.qc:1439
msgid "<KEY NOT FOUND>"
#: qcsrc/common/vehicles/vehicle/spiderbot.qh:19
msgid "Spiderbot"
-msgstr "スパイダーボット"
+msgstr "蜘蛛ボット"
#: qcsrc/common/weapons/all.qh:76
msgid "Weapons dump command only works with sv_cmd."
#: qcsrc/common/weapons/weapon/machinegun.qh:18
msgid "MachineGun"
-msgstr "マシンガン"
+msgstr "機関銃"
#: qcsrc/common/weapons/weapon/minelayer.qh:18
msgid "Mine Layer"
#: qcsrc/menu/xonotic/dialog_multiplayer_media_demo_startconfirm.qh:6
#: qcsrc/menu/xonotic/dialog_multiplayer_media_demo_timeconfirm.qh:6
msgid "Disconnect"
-msgstr "切断する"
+msgstr "切断"
#: qcsrc/menu/xonotic/dialog_disconnect.qh:7
msgid "Disconnect from the server you are connected to"
#: qcsrc/menu/xonotic/dialog_hudpanel_itemstime.qc:17
#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.qc:15
msgid "Enable spectating"
-msgstr "観戦を有効にする"
+msgstr "観戦中を有効にする"
#: qcsrc/menu/xonotic/dialog_hudpanel_itemstime.qc:18
msgid "Enable even playing in warmup"
#: qcsrc/menu/xonotic/dialog_hudpanel_itemstime.qc:39
msgid "Dynamic size"
-msgstr ""
+msgstr "ダイナミックサイズ:"
#: qcsrc/menu/xonotic/dialog_hudpanel_itemstime.qh:6
msgid "Items Time Panel"
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:51
msgid "qu/s"
-msgstr ""
+msgstr "qu/s"
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:52
msgid "m/s"
-msgstr ""
+msgstr "ミリ秒"
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:53
msgid "km/h"
-msgstr ""
+msgstr "時速キロ"
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:54
msgid "mph"
-msgstr ""
+msgstr "時速マイル"
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:55
msgid "knots"
-msgstr ""
+msgstr "ノット"
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:57
msgid "Show"
#: qcsrc/menu/xonotic/dialog_hudpanel_radar.qc:23
msgid "Radar:"
-msgstr ""
+msgstr "レーダー:"
#: qcsrc/menu/xonotic/dialog_hudpanel_radar.qc:26
#: qcsrc/menu/xonotic/dialog_hudsetup_exit.qc:68
#: qcsrc/menu/xonotic/dialog_settings_game_hud.qc:124
#: qcsrc/menu/xonotic/util.qc:792
msgid "Alpha:"
-msgstr ""
+msgstr "アルファ:"
#: qcsrc/menu/xonotic/dialog_hudpanel_radar.qc:30
msgid "Rotation:"
-msgstr ""
+msgstr "回転:"
#: qcsrc/menu/xonotic/dialog_hudpanel_radar.qc:32
msgid "Forward"
-msgstr ""
+msgstr "前方"
#: qcsrc/menu/xonotic/dialog_hudpanel_radar.qc:33
msgid "West"
-msgstr ""
+msgstr "西"
#: qcsrc/menu/xonotic/dialog_hudpanel_radar.qc:34
msgid "South"
-msgstr ""
+msgstr "南"
#: qcsrc/menu/xonotic/dialog_hudpanel_radar.qc:35
msgid "East"
-msgstr ""
+msgstr "東"
#: qcsrc/menu/xonotic/dialog_hudpanel_radar.qc:36
msgid "North"
-msgstr ""
+msgstr "北"
#: qcsrc/menu/xonotic/dialog_hudpanel_radar.qc:40
msgid "Scale:"
#: qcsrc/menu/xonotic/dialog_hudpanel_score.qc:17
msgid "Score:"
-msgstr ""
+msgstr "得点:"
#: qcsrc/menu/xonotic/dialog_hudpanel_score.qc:20
msgid "Rankings:"
-msgstr ""
+msgstr "ランキング:"
#: qcsrc/menu/xonotic/dialog_hudpanel_score.qc:21
#: qcsrc/menu/xonotic/dialog_settings_game_hud.qc:58
#: qcsrc/menu/xonotic/dialog_hudsetup_exit.qc:75
#: qcsrc/menu/xonotic/dialog_hudsetup_exit.qc:114
msgid "Team color:"
-msgstr ""
+msgstr "チームカラー:"
#: qcsrc/menu/xonotic/dialog_hudsetup_exit.qc:83
#: qcsrc/menu/xonotic/util.qc:809
#: qcsrc/menu/xonotic/dialog_hudsetup_exit.qc:95
msgid "DOCK^Disabled"
-msgstr ""
+msgstr "無効"
#: qcsrc/menu/xonotic/dialog_hudsetup_exit.qc:96
msgid "DOCK^Small"
-msgstr ""
+msgstr "小"
#: qcsrc/menu/xonotic/dialog_hudsetup_exit.qc:97
msgid "DOCK^Medium"
-msgstr ""
+msgstr "中"
#: qcsrc/menu/xonotic/dialog_hudsetup_exit.qc:98
msgid "DOCK^Large"
-msgstr ""
+msgstr "大"
#: qcsrc/menu/xonotic/dialog_hudsetup_exit.qc:121
msgid "Grid settings:"
-msgstr ""
+msgstr "グリッド設定:"
#: qcsrc/menu/xonotic/dialog_hudsetup_exit.qc:124
msgid "Snap panels to grid"
-msgstr ""
+msgstr "グリッドパネルにスナップする:"
#: qcsrc/menu/xonotic/dialog_hudsetup_exit.qc:127
msgid "Grid size:"
-msgstr ""
+msgstr "グリッドサイズ:"
#: qcsrc/menu/xonotic/dialog_hudsetup_exit.qc:129
msgid "X:"
-msgstr ""
+msgstr "X:"
#: qcsrc/menu/xonotic/dialog_hudsetup_exit.qc:136
msgid "Y:"
-msgstr ""
+msgstr "Y:"
#: qcsrc/menu/xonotic/dialog_hudsetup_exit.qc:145
msgid "Exit setup"
-msgstr ""
+msgstr "出口のセットアップ"
#: qcsrc/menu/xonotic/dialog_hudsetup_exit.qh:6
msgid "Panel HUD Setup"
-msgstr ""
+msgstr "パネルHUDセットアップ"
#: qcsrc/menu/xonotic/dialog_monstertools.qc:13
msgid "Monster:"
-msgstr ""
+msgstr "モンスター:"
#: qcsrc/menu/xonotic/dialog_monstertools.qc:22
#: qcsrc/menu/xonotic/dialog_sandboxtools.qc:20
#: qcsrc/menu/xonotic/dialog_monstertools.qc:29
msgid "No moving"
-msgstr ""
+msgstr "動かない"
#: qcsrc/menu/xonotic/dialog_monstertools.qc:31
msgid "Colors:"
-msgstr ""
+msgstr "色:"
#: qcsrc/menu/xonotic/dialog_monstertools.qc:33
#: qcsrc/menu/xonotic/dialog_sandboxtools.qc:39
msgid "Set skin:"
-msgstr ""
+msgstr "スキンを設定する:"
#: qcsrc/menu/xonotic/dialog_monstertools.qh:6
msgid "Monster Tools"
-msgstr ""
+msgstr "モンスター用具"
#: qcsrc/menu/xonotic/dialog_multiplayer.qc:14
msgid "Servers"
-msgstr ""
+msgstr "サーバー"
#: qcsrc/menu/xonotic/dialog_multiplayer.qc:15
msgid "Find servers to play on"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:101
msgid "TIMLIM^Infinite"
-msgstr ""
+msgstr "無限"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:109
msgid "Teams:"
-msgstr ""
+msgstr "チーム数:"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:112
msgid "2 teams"
-msgstr ""
+msgstr "2チーム"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:113
msgid "3 teams"
-msgstr ""
+msgstr "3チーム"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:114
msgid "4 teams"
-msgstr ""
+msgstr "4チーム"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:117
msgid "Player slots:"
-msgstr ""
+msgstr "プレイヤースロット:"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:119
msgid ""
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:121
msgid "Number of bots:"
-msgstr ""
+msgstr "ボット数:"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:123
msgid "Amount of bots on your server"
-msgstr ""
+msgstr "サーバーでボットの量"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:125
msgid "Bot skill:"
-msgstr ""
+msgstr "ボット技術:"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:128
msgid "Specify how experienced the bots will be"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:129
msgid "Botlike"
-msgstr ""
+msgstr "ボット"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:130
msgid "Beginner"
-msgstr ""
+msgstr "初心者"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:131
msgid "You will win"
-msgstr ""
+msgstr "あなたは勝つ"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:132
msgid "You can win"
-msgstr ""
+msgstr "あなたは勝てる"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:133
msgid "You might win"
-msgstr ""
+msgstr "あなたは勝つかもしれない"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:134
msgid "Advanced"
-msgstr ""
+msgstr "高度"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:135
msgid "Expert"
-msgstr ""
+msgstr "専門家"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:136
msgid "Pro"
-msgstr ""
+msgstr "プロ"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:137
msgid "Assassin"
-msgstr ""
+msgstr "暗殺者"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:138
msgid "Unhuman"
-msgstr ""
+msgstr "非人間"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:139
msgid "Godlike"
-msgstr ""
+msgstr "神"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:155
msgid "Mutators..."
-msgstr ""
+msgstr "ミューテーター..."
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:156
msgid "Mutators and weapon arenas"
-msgstr ""
+msgstr "ミューテーターと武器アリーナ"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:165
msgid "Maplist"
-msgstr ""
+msgstr "マップリスト"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:175
msgid ""
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:184
msgid "Add shown"
-msgstr ""
+msgstr "表示された者を追加する"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:185
msgid "Add the maps shown in the list to your selection"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:188
msgid "Remove shown"
-msgstr ""
+msgstr "表示された者を全て削除する"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:189
msgid "Remove the maps shown in the list from your selection"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:194
msgid "Add all"
-msgstr ""
+msgstr "全て追加する"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:195
msgid "Add every available map to your selection"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:198
msgid "Remove all"
-msgstr ""
+msgstr "全て削除する"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:199
msgid "Remove all the maps from your selection"
"Enable dodging (quick acceleration in a given direction). Double-tap a "
"directional key to dodge"
msgstr ""
+"避けるを有効にする (特定の方向への迅速な加速)。方向キーを避けてダブルタップし"
+"て"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:168
msgid "An explosion occurs when two players collide"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:211
msgid "Grappling hook"
-msgstr ""
+msgstr "グラップリングフック"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:212
msgid "Players spawn with the grappling hook. Press the 'hook' key to use it"
#: qcsrc/menu/xonotic/dialog_multiplayer_media_musicplayer.qc:69
msgid "MUSICPL^Prev"
-msgstr ""
+msgstr "前"
#: qcsrc/menu/xonotic/dialog_multiplayer_media_musicplayer.qc:72
msgid "MUSICPL^Next"
-msgstr ""
+msgstr "次"
#: qcsrc/menu/xonotic/dialog_multiplayer_media_musicplayer.qc:76
msgid "MUSICPL^Remove"
-msgstr ""
+msgstr "削除する"
#: qcsrc/menu/xonotic/dialog_multiplayer_media_musicplayer.qc:79
msgid "MUSICPL^Remove all"
-msgstr ""
+msgstr "全て削除する"
#: qcsrc/menu/xonotic/dialog_multiplayer_media_screenshot.qc:41
msgid "Auto screenshot scoreboard"
#: qcsrc/menu/xonotic/dialog_multiplayer_media_screenshot_viewer.qc:142
msgid "Previous"
-msgstr ""
+msgstr "前"
#: qcsrc/menu/xonotic/dialog_multiplayer_media_screenshot_viewer.qc:145
msgid "Next"
-msgstr ""
+msgstr "次"
#: qcsrc/menu/xonotic/dialog_multiplayer_media_screenshot_viewer.qc:150
msgid "Slide show"
#: qcsrc/menu/xonotic/dialog_multiplayer_profile.qc:50
msgid "Name"
-msgstr ""
+msgstr "名前"
#: qcsrc/menu/xonotic/dialog_multiplayer_profile.qc:79
msgid "Model"
-msgstr ""
+msgstr "モデル"
#: qcsrc/menu/xonotic/dialog_multiplayer_profile.qc:98
msgid "Glowing color"
#: qcsrc/menu/xonotic/dialog_settings_audio.qc:158
msgid "WRN^Disabled"
-msgstr ""
+msgstr "無効"
#: qcsrc/menu/xonotic/dialog_settings_audio.qc:160
msgid "5 minutes"
#: qcsrc/menu/xonotic/dialog_settings_effects.qc:45
msgid "PRE^OMG!"
-msgstr ""
+msgstr "OMG!"
#: qcsrc/menu/xonotic/dialog_settings_effects.qc:48
msgid "PRE^Low"
#: qcsrc/menu/xonotic/dialog_settings_effects.qc:186
msgid "DMGFX^Disabled"
-msgstr ""
+msgstr "無効"
#: qcsrc/menu/xonotic/dialog_settings_effects.qc:187
msgid "Skeletal"
#: qcsrc/menu/xonotic/dialog_settings_game_crosshair.qc:31
msgid "No crosshair"
-msgstr ""
+msgstr "十字線なし"
#: qcsrc/menu/xonotic/dialog_settings_game_crosshair.qc:33
#: qcsrc/menu/xonotic/dialog_settings_game_crosshair.qc:62
msgid "Per weapon"
-msgstr ""
+msgstr "武器ごと"
#: qcsrc/menu/xonotic/dialog_settings_game_crosshair.qc:34
msgid ""
#: qcsrc/menu/xonotic/dialog_settings_game_crosshair.qc:81
#: qcsrc/menu/xonotic/dialog_settings_game_crosshair.qc:97
msgid "Size:"
-msgstr ""
+msgstr "サイズ:"
#: qcsrc/menu/xonotic/dialog_settings_game_crosshair.qc:64
msgid "By health"
-msgstr ""
+msgstr "健康で"
#: qcsrc/menu/xonotic/dialog_settings_game_crosshair.qc:76
msgid "Use rings to indicate weapon status"
#: qcsrc/menu/xonotic/dialog_settings_game_crosshair.qc:125
msgid "Hit testing:"
-msgstr ""
+msgstr "照準テスト:"
#: qcsrc/menu/xonotic/dialog_settings_game_crosshair.qc:128
msgid ""
#: qcsrc/menu/xonotic/dialog_settings_game_crosshair.qc:129
msgid "HTTST^Disabled"
-msgstr ""
+msgstr "無効"
#: qcsrc/menu/xonotic/dialog_settings_game_crosshair.qc:130
msgid "HTTST^TrueAim"
-msgstr ""
+msgstr "真の照準"
#: qcsrc/menu/xonotic/dialog_settings_game_crosshair.qc:131
msgid "HTTST^Enemies"
-msgstr ""
+msgstr "敵"
#: qcsrc/menu/xonotic/dialog_settings_game_crosshair.qc:136
msgid "Blur crosshair if the shot is obstructed"
#: qcsrc/menu/xonotic/dialog_settings_game_hud.qc:142
msgid "Decolorize:"
-msgstr ""
+msgstr "脱色:"
#: qcsrc/menu/xonotic/dialog_settings_game_hud.qc:146
#: qcsrc/menu/xonotic/keybinder.qc:113
msgid "Teamplay"
-msgstr ""
+msgstr "チームプレイ"
#: qcsrc/menu/xonotic/dialog_settings_game_hud.qc:154
msgid "Only when near crosshair"
#: qcsrc/menu/xonotic/dialog_settings_game_messages.qc:46
msgid "SPREES^Disabled"
-msgstr ""
+msgstr "無効"
#: qcsrc/menu/xonotic/dialog_settings_game_messages.qc:47
msgid "Target"
#: qcsrc/menu/xonotic/dialog_settings_game_model.qc:63
msgid "Gibs:"
-msgstr ""
+msgstr "内臓:"
#: qcsrc/menu/xonotic/dialog_settings_game_model.qc:65
msgid "GIBS^None"
#: qcsrc/menu/xonotic/dialog_settings_game_weapons.qc:91
msgid "Gun model swaying"
-msgstr ""
+msgstr "揺れる銃モデル"
#: qcsrc/menu/xonotic/dialog_settings_game_weapons.qc:96
msgid "Gun model bobbing"
-msgstr ""
+msgstr "振る銃モデル"
#: qcsrc/menu/xonotic/dialog_settings_game_weapons.qh:7
#: qcsrc/menu/xonotic/keybinder.qc:51
msgid "Weapons"
-msgstr ""
+msgstr "武器"
#: qcsrc/menu/xonotic/dialog_settings_input.qc:34
msgid "Key Bindings"
#: qcsrc/menu/xonotic/dialog_settings_input.qc:102
msgid "JPJUMP^Disabled"
-msgstr ""
+msgstr "無効"
#: qcsrc/menu/xonotic/dialog_settings_input.qc:103
msgid "Air only"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:38
msgid "ISDN"
-msgstr ""
+msgstr "ISDN"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:39
msgid "Slow ADSL"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:98
msgid "TRGT^Disabled"
-msgstr ""
+msgstr "無効"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:109
msgid "Idle limit:"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:128
msgid "Menu tooltips:"
-msgstr ""
+msgstr "メニューツールチップ:"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:130
msgid ""
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:131
msgid "TLTIP^Disabled"
-msgstr ""
+msgstr "無効"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:132
msgid "TLTIP^Standard"
-msgstr ""
+msgstr "標準"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:133
msgid "TLTIP^Advanced"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:150
#: qcsrc/menu/xonotic/dialog_settings_misc_reset.qh:6
msgid "Factory reset"
-msgstr ""
+msgstr "工場リセット"
#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.qc:31
msgid "Cvar filter:"
-msgstr ""
+msgstr "CVARフィルター:"
#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.qc:38
msgid "Modified cvars only"
#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.qc:45
msgid "Setting:"
-msgstr ""
+msgstr "設定:"
#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.qc:49
msgid "Type:"
#: qcsrc/menu/xonotic/dialog_settings_user.qc:23
msgid "Menu Skins"
-msgstr ""
+msgstr "メニュースキン"
#: qcsrc/menu/xonotic/dialog_settings_user.qc:62
msgid "Text Language"
-msgstr ""
+msgstr "テキスト言語"
#: qcsrc/menu/xonotic/dialog_settings_user.qc:67
msgid "Set language"
-msgstr ""
+msgstr "言語を設定"
#: qcsrc/menu/xonotic/dialog_settings_user.qc:72
msgid "Disable gore effects and harsh language"
#: qcsrc/menu/xonotic/dialog_settings_user_languagewarning.qc:16
msgid "Disconnect now"
-msgstr ""
+msgstr "今すぐ切断"
#: qcsrc/menu/xonotic/dialog_settings_user_languagewarning.qc:17
msgid "Switch language"
-msgstr ""
+msgstr "言語を変更"
#: qcsrc/menu/xonotic/dialog_settings_user_languagewarning.qh:6
msgid "Warning"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:33
msgid "Resolution:"
-msgstr ""
+msgstr "解像度:"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:37
msgid "Font/UI size:"
-msgstr ""
+msgstr "フォント / UIサイズ:"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:39
msgid "SZ^Unreadable"
-msgstr ""
+msgstr "読めない"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:40
msgid "SZ^Tiny"
-msgstr ""
+msgstr "小っぽけ"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:41
msgid "SZ^Little"
-msgstr ""
+msgstr "少"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:42
msgid "SZ^Small"
-msgstr ""
+msgstr "小"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:43
msgid "SZ^Medium"
-msgstr ""
+msgstr "中"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:44
msgid "SZ^Large"
-msgstr ""
+msgstr "大"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:45
msgid "SZ^Huge"
-msgstr ""
+msgstr "でかい"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:46
msgid "SZ^Gigantic"
-msgstr ""
+msgstr "巨大"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:47
msgid "SZ^Colossal"
-msgstr ""
+msgstr "膨大"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:51
msgid "Color depth:"
-msgstr ""
+msgstr "色深度:"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:53
msgid "How many bits per pixel (BPP) to render at, 32 is recommended"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:54
msgid "16bit"
-msgstr ""
+msgstr "16bit"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:55
msgid "32bit"
-msgstr ""
+msgstr "32bit"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:59
msgid "Full screen"
-msgstr ""
+msgstr "フルスケ"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:61
msgid "Vertical Synchronization"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:74
msgid "ANISO^Disabled"
-msgstr ""
+msgstr "無効"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:75
#: qcsrc/menu/xonotic/dialog_settings_video.qc:86
msgid "2x"
-msgstr ""
+msgstr "2x"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:76
#: qcsrc/menu/xonotic/dialog_settings_video.qc:87
msgid "4x"
-msgstr ""
+msgstr "4x"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:77
msgid "8x"
-msgstr ""
+msgstr "8x"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:78
msgid "16x"
-msgstr ""
+msgstr "16x"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:81
msgid "Antialiasing:"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:85
msgid "AA^Disabled"
-msgstr ""
+msgstr "無効"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:92
msgid "High-quality frame buffer"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:100
msgid "DF^Disabled"
-msgstr ""
+msgstr "無効"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:101
msgid "DF^World"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:102
msgid "DF^All"
-msgstr ""
+msgstr "全"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:105
msgid "Vertex Buffer Objects (VBOs)"
-msgstr ""
+msgstr "頂点バッファーオブジェクト (VBOs)"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:108
msgid "VBO^Off"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:109
msgid "Vertices, some Tris (compatible)"
-msgstr ""
+msgstr "頂点、いくつかの三角形 (互換性)"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:110
#: qcsrc/menu/xonotic/dialog_settings_video.qc:114
#: qcsrc/menu/xonotic/dialog_settings_video.qc:113
msgid "Vertices"
-msgstr ""
+msgstr "頂点"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:115
msgid "Vertices and Triangles"
-msgstr ""
+msgstr "頂点と三角形"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:119
msgid "Brightness:"
-msgstr ""
+msgstr "明るさ:"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:121
msgid "Brightness of black"
-msgstr ""
+msgstr "黒の明るさ:"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:123
msgid "Contrast:"
-msgstr ""
+msgstr "コントラスト:"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:125
msgid "Brightness of white"
-msgstr ""
+msgstr "白の明るさ:"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:127
msgid "Gamma:"
-msgstr ""
+msgstr "ガンマ:"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:130
msgid ""
#: qcsrc/menu/xonotic/dialog_settings_video.qc:133
msgid "Contrast boost:"
-msgstr ""
+msgstr "コントラストの増加:"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:136
msgid "By how much to multiply the contrast in dark areas"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:139
msgid "Saturation:"
-msgstr ""
+msgstr "飽和:"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:142
msgid ""
#: qcsrc/menu/xonotic/dialog_settings_video.qc:146
msgid "LIT^Ambient:"
-msgstr ""
+msgstr "アンビエント:"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:148
msgid ""
#: qcsrc/menu/xonotic/dialog_settings_video.qc:150
msgid "Intensity:"
-msgstr ""
+msgstr "強度:"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:152
msgid "Global rendering brightness"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:158
msgid "Use OpenGL 2.0 shaders (GLSL)"
-msgstr ""
+msgstr "OpenGL 2.0 シェーダー(GLSL)を使う"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:163
msgid "Psycho coloring (easter egg)"
#: qcsrc/menu/xonotic/dialog_singleplayer.qc:129
msgid "Campaign Difficulty:"
-msgstr ""
+msgstr "キャンペーンの難しさ:"
#: qcsrc/menu/xonotic/dialog_singleplayer.qc:130
msgid "CSKL^Easy"
-msgstr ""
+msgstr "簡単"
#: qcsrc/menu/xonotic/dialog_singleplayer.qc:131
msgid "CSKL^Medium"
-msgstr ""
+msgstr "中"
#: qcsrc/menu/xonotic/dialog_singleplayer.qc:132
msgid "CSKL^Hard"
-msgstr ""
+msgstr "難い"
#: qcsrc/menu/xonotic/dialog_singleplayer.qc:134
msgid "Start Singleplayer!"
#: qcsrc/menu/xonotic/dialog_teamselect.qc:38
msgid "blue"
-msgstr "青い"
+msgstr "青"
#: qcsrc/menu/xonotic/dialog_teamselect.qc:39
msgid "yellow"
#: qcsrc/menu/xonotic/dialog_teamselect.qh:7
msgid "Team Selection"
-msgstr ""
+msgstr "チームの選択"
#: qcsrc/menu/xonotic/dialog_uid2name.qc:10
msgid "Allow player statistics to use your nickname?"
#: qcsrc/menu/xonotic/keybinder.qc:35
msgid "Moving"
-msgstr ""
+msgstr "動き中"
#: qcsrc/menu/xonotic/keybinder.qc:36
msgid "forward"
-msgstr ""
+msgstr "前方"
#: qcsrc/menu/xonotic/keybinder.qc:37
msgid "backpedal"
#: qcsrc/menu/xonotic/keybinder.qc:46
msgid "Attacking"
-msgstr ""
+msgstr "攻撃中"
#: qcsrc/menu/xonotic/keybinder.qc:52
msgid "WEAPON^previous"
#: qcsrc/menu/xonotic/keybinder.qc:109
msgid "disconnect"
-msgstr ""
+msgstr "切断"
#: qcsrc/menu/xonotic/keybinder.qc:110
msgid "quit"
pt "Portuguese" "Português" 84%
pt_BR "Portuguese (Brazil)" "Português (Brasil)" 99%
ro "Romanian" "Romana" 74%
-fi "Finnish" "Suomi" 98%
-ja_JP "ja_JP" "ja_JP" 52%
+fi "Finnish" "Suomi" 100%
+ja_JP "ja_JP" "ja_JP" 74%
el "Greek" "Ελληνική" 47%
be "Belarusian" "Беларуская" 54%
bg "Bulgarian" "Български" 59%
}
void CSQCPlayer_ModelAppearance_Apply(entity this, bool islocalplayer)
{
+ int cm = this.forceplayermodels_savecolormap;
+ cm = (cm >= 1024) ? cm : (entcs_GetClientColors(cm - 1) + 1024);
+
if(MUTATOR_CALLHOOK(ForcePlayermodels_Skip, this, islocalplayer))
goto skipforcemodels;
// apply it
bool isfriend;
- int cm;
- cm = this.forceplayermodels_savecolormap;
- cm = (cm >= 1024) ? cm : (entcs_GetClientColors(cm - 1) + 1024);
if(teamplay)
isfriend = (cm == 1024 + 17 * myteam);
this.skin = this.forceplayermodels_saveskin;
}
+ LABEL(skipforcemodels)
+
+ if(MUTATOR_CALLHOOK(ForcePlayercolors_Skip, this, islocalplayer))
+ goto skipforcecolors;
+
// forceplayercolors too
if(teamplay)
{
this.colormap = player_localnum + 1;
}
- LABEL(skipforcemodels)
+ LABEL(skipforcecolors)
if((this.csqcmodel_effects & CSQCMODEL_EF_RESPAWNGHOST) && !autocvar_cl_respawn_ghosts_keepcolors)
{
/** Called when updating the view's liquid contents, return true to disable the standard checks and apply your own */
MUTATOR_HOOKABLE(HUD_Contents, EV_NO_ARGS);
-/** Return true to disable player model/color forcing */
+/** Return true to disable player model forcing */
#define EV_ForcePlayermodels_Skip(i, o) \
/** entity id */ i(entity, MUTATOR_ARGV_0_entity) \
/** is local */ i(bool, MUTATOR_ARGV_1_bool) \
/**/
MUTATOR_HOOKABLE(ForcePlayermodels_Skip, EV_ForcePlayermodels_Skip);
+/** Return true to disable player color forcing */
+#define EV_ForcePlayercolors_Skip(i, o) \
+ /** entity id */ i(entity, MUTATOR_ARGV_0_entity) \
+ /** is local */ i(bool, MUTATOR_ARGV_1_bool) \
+ /**/
+MUTATOR_HOOKABLE(ForcePlayercolors_Skip, EV_ForcePlayercolors_Skip);
+
/** Called when damage info is received on the client, useful for playing explosion effects */
#define EV_DamageInfo(i, o) \
/** entity id */ i(entity, MUTATOR_ARGV_0_entity) \
CSQCMODEL_PROPERTY(BIT(13), int, ReadInt24_t, WriteInt24_t, dphitcontentsmask) \
CSQCMODEL_PROPERTY(BIT(14), TAG_VIEWLOC_TYPE, ReadShort, WriteEntity, TAG_VIEWLOC_NAME) \
CSQCMODEL_PROPERTY(BIT(16), int, ReadByte, WriteByte, multijump_count) \
- CSQCMODEL_PROPERTY(BIT(16), int, ReadByte, WriteByte, move_movetype)
+ CSQCMODEL_PROPERTY(BIT(16), int, ReadByte, WriteByte, move_movetype) \
+ CSQCMODEL_PROPERTY(BIT(17), int, ReadByte, WriteByte, clipgroup)
// TODO get rid of colormod/glowmod here; also get rid of some useless properties on non-players that only exist for CopyBody
// add hook function calls here
EFFECT(0, RACER_IMPACT, "wakizashi_gun_impact")
EFFECT(0, RACER_MUZZLEFLASH, "wakizashi_gun_muzzleflash")
EFFECT(0, RACER_ROCKETLAUNCH, "wakizashi_rocket_launch")
-EFFECT(0, RACER_ROCKET_EXPLODE, "wakizashi_rocket_launch")
+EFFECT(0, RACER_ROCKET_EXPLODE, "wakizashi_rocket_explode")
EFFECT(1, RACER_ROCKET_TRAIL, "wakizashi_rocket_thrust")
EFFECT(0, SPIDERBOT_ROCKETLAUNCH, "spiderbot_rocket_launch")
}
// respawn ghosts effect
-DEF(RESPAWN_GHOST);
-SUB(RESPAWN_GHOST) {
+DEF(respawn_ghost);
+SUB(respawn_ghost) {
MY(count) = 75;
MY(type) = "static";
MY(color_min) = "0xA0A0A0";
#include <common/effects/all.qh>
#include <common/vehicles/all.qh>
+#include <server/gamelog.qh>
#include <server/teamplay.qh>
#include <lib/warpzone/common.qh>
#include "ctf.qh"
+#include <common/gamemodes/sv_rules.qh>
+
void ctf_Initialize();
REGISTER_MUTATOR(ctf, false)
#include "sv_cts.qh"
#include <server/race.qh>
+#include <server/gamelog.qh>
#include <server/items.qh>
float autocvar_g_cts_finish_kill_delay;
#include "sv_domination.qh"
+#include <server/gamelog.qh>
#include <server/teamplay.qh>
bool g_domination;
#include "sv_keepaway.qh"
#include <common/effects/all.qh>
+#include <server/gamelog.qh>
.entity ballcarried;
#include "sv_keyhunt.qh"
+#include <server/gamelog.qh>
+
float autocvar_g_balance_keyhunt_damageforcescale;
float autocvar_g_balance_keyhunt_delay_collect;
float autocvar_g_balance_keyhunt_delay_damage_return;
#include "sv_nexball.qh"
+#include <server/gamelog.qh>
+
.entity ballcarried;
int autocvar_g_nexball_goalleadlimit;
#include "sv_race.qh"
+#include <server/gamelog.qh>
#include <server/race.qh>
#define autocvar_g_race_laps_limit cvar("g_race_laps_limit")
case "assault": replacement = "as"; break;
case "race": replacement = "rc"; break;
}
- if (replacement != "" && WARN_COND)
+ if (replacement != "")
{
- LOG_WARNF("MapInfo_Type_FromString (probably %s): using deprecated name '%s'. Should use '%s'.", MapInfo_Map_bspname, gtype, replacement);
+ if (WARN_COND)
+ LOG_WARNF("MapInfo_Type_FromString (probably %s): using deprecated name '%s'. Should use '%s'.", MapInfo_Map_bspname, gtype, replacement);
gtype = replacement;
}
FOREACH(Gametypes, it.mdl == gtype, return it);
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_* -_* -g_ban* -r_water +*"
+#define MAPINFO_SETTEMP_ACL_SYSTEM "-g_mapinfo_* -rcon_* -_* -g_ban* +*"
// non-solid brush entities:
spawnfunc(func_illusionary) { G_MODEL_INIT (this, SOLID_NOT) } // Q1 name (WARNING: MISPREDICTED)
spawnfunc(func_clientillusionary) { G_CLIENTMODEL_INIT(this, SOLID_NOT) } // brush entity
-spawnfunc(func_static) { G_MODEL_INIT (this, SOLID_NOT) } // DEPRECATED old alias name from some other game
// solid brush entities
spawnfunc(func_wall) { G_MODEL_INIT (this, SOLID_BSP) } // Q1 name
spawnfunc(func_clientwall) { G_CLIENTMODEL_INIT(this, SOLID_BSP) } // brush entity (WARNING: MISPREDICTED)
+spawnfunc(func_static) { G_MODEL_INIT (this, SOLID_BSP) } // DEPRECATED old alias name from some other game
#elif defined(CSQC)
.float alpha;
.float scale;
#include "sv_minigames.qh"
#include "minigames.qh"
+#include <server/gamelog.qh>
+
void player_clear_minigame(entity player)
{
CS(player).active_minigame = NULL;
// generated file; do not modify
#include <common/physics/movetypes/follow.qc>
#include <common/physics/movetypes/movetypes.qc>
+#include <common/physics/movetypes/push.qc>
#include <common/physics/movetypes/step.qc>
#include <common/physics/movetypes/toss.qc>
#include <common/physics/movetypes/walk.qc>
// generated file; do not modify
#include <common/physics/movetypes/follow.qh>
#include <common/physics/movetypes/movetypes.qh>
+#include <common/physics/movetypes/push.qh>
#include <common/physics/movetypes/step.qh>
#include <common/physics/movetypes/toss.qh>
#include <common/physics/movetypes/walk.qh>
#include "walk.qc"
#include "step.qc"
#include "follow.qc"
+#include "push.qc"
#include "movetypes.qc"
void set_movetype(entity this, int mt)
{
this.move_movetype = mt;
- if (mt == MOVETYPE_PHYSICS || mt == MOVETYPE_PUSH || mt == MOVETYPE_FAKEPUSH) {
+ if (mt == MOVETYPE_PHYSICS) {
this.move_qcphysics = false;
}
if(!IL_CONTAINS(g_moveables, this))
IL_PUSH(g_moveables, this); // add it to the moveable entities list (even if it doesn't move!) logic: if an object never sets its movetype, we assume it never does anything notable
- this.movetype = (this.move_qcphysics) ? MOVETYPE_NONE : mt;
+ this.movetype = (this.move_qcphysics) ? MOVETYPE_QCENTITY : mt;
}
#elif defined(CSQC)
void set_movetype(entity this, int mt)
}
#endif
+bool _Movetype_NudgeOutOfSolid_PivotIsKnownGood(entity this, vector pivot) // SV_NudgeOutOfSolid_PivotIsKnownGood
+{
+ vector stuckorigin = this.origin;
+ vector goodmins = pivot, goodmaxs = pivot;
+ for(int bump = 0; bump < 6; bump++)
+ {
+ int coord = 2 - (bump >> 1);
+ int dir = (bump & 1);
+
+ for(int subbump = 0; ; ++subbump)
+ {
+ vector testorigin = stuckorigin;
+ if(dir)
+ {
+ // pushing maxs
+ switch(coord)
+ {
+ case 0: testorigin.x += this.maxs_x - goodmaxs.x; break;
+ case 1: testorigin.y += this.maxs_y - goodmaxs.y; break;
+ case 2: testorigin.z += this.maxs_z - goodmaxs.z; break;
+ }
+ }
+ else
+ {
+ // pushing mins
+ switch(coord)
+ {
+ case 0: testorigin.x += this.mins_x - goodmins.x; break;
+ case 1: testorigin.y += this.mins_y - goodmins.y; break;
+ case 2: testorigin.z += this.mins_z - goodmins.z; break;
+ }
+ }
+
+ tracebox(stuckorigin, goodmins, goodmaxs, testorigin, MOVE_NOMONSTERS, this);
+ if(trace_startsolid && trace_ent.solid == SOLID_BSP) // NOTE: this checks for bmodelstartsolid in the engine
+ {
+ // BAD BAD, can't fix that
+ return false;
+ }
+
+ if(trace_fraction >= 1)
+ break; // it WORKS!
+
+ if(subbump >= 10)
+ {
+ // BAD BAD, can't fix that
+ return false;
+ }
+
+ // we hit something... let's move out of it
+ vector move = trace_endpos - testorigin;
+ float nudge = (trace_plane_normal * move) + 0.03125; // FIXME cvar this constant
+ stuckorigin = stuckorigin + nudge * trace_plane_normal;
+ }
+
+ if(dir)
+ {
+ // pushing maxs
+ switch(coord)
+ {
+ case 0: goodmaxs.x = this.maxs_x; break;
+ case 1: goodmaxs.y = this.maxs_y; break;
+ case 2: goodmaxs.z = this.maxs_z; break;
+ }
+ }
+ else
+ {
+ // pushing mins
+ switch(coord)
+ {
+ case 0: goodmins.x = this.mins_x; break;
+ case 1: goodmins.y = this.mins_y; break;
+ case 2: goodmins.z = this.mins_z; break;
+ }
+ }
+ }
+
+ // WE WIN
+ this.origin = stuckorigin;
+
+ return true;
+}
+
void _Movetype_WallFriction(entity this, vector stepnormal) // SV_WallFriction
{
/*float d, i;
if(dt <= 0)
return 0;
- int blocked = 0;
+ int blockedflag = 0;
int i, j, numplanes = 0;
float time_left = dt, grav = 0;
vector push;
{
// we got teleported by a touch function
// let's abort the move
- blocked |= 8;
+ blockedflag |= 8;
break;
}
if(trace_plane_normal.z > 0.7)
{
// floor
- blocked |= 1;
+ blockedflag |= 1;
if(!trace_ent)
{
if(!_Movetype_PushEntity(this, steppush, true, false))
{
- blocked |= 8;
+ blockedflag |= 8;
break;
}
if(!_Movetype_PushEntity(this, push, true, false))
{
- blocked |= 8;
+ blockedflag |= 8;
break;
}
float trace2_fraction = trace_fraction;
steppush = vec3(0, 0, org.z - this.origin_z);
if(!_Movetype_PushEntity(this, steppush, true, false))
{
- blocked |= 8;
+ blockedflag |= 8;
break;
}
else
{
// step - return it to caller
- blocked |= 2;
+ blockedflag |= 2;
// save the trace for player extrafriction
if(applystepnormal)
move_stepnormal = trace_plane_normal;
{
// this shouldn't really happen
this.velocity = '0 0 0';
- blocked = 3;
+ blockedflag = 3;
break;
}
if(numplanes != 2)
{
this.velocity = '0 0 0';
- blocked = 7;
+ blockedflag = 7;
break;
}
vector dir = cross(planes[0], planes[1]);
}
// LordHavoc: this came from QW and allows you to get out of water more easily
- if(GAMEPLAYFIX_EASIERWATERJUMP(this) && (this.flags & FL_WATERJUMP) && !(blocked & 8))
+ if(GAMEPLAYFIX_EASIERWATERJUMP(this) && (this.flags & FL_WATERJUMP) && !(blockedflag & 8))
this.velocity = primal_velocity;
- if(PHYS_WALLCLIP(this) && this.pm_time && !(this.flags & FL_WATERJUMP) && !(blocked & 8))
+ if(PHYS_WALLCLIP(this) && this.pm_time && !(this.flags & FL_WATERJUMP) && !(blockedflag & 8))
this.velocity = primal_velocity;
if(applygravity)
}
}
- return blocked;
+ return blockedflag;
}
void _Movetype_CheckVelocity(entity this) // SV_CheckVelocity
return (this.origin == last_origin); // false if teleported by touch
}
-
-.float ltime;
-.void() blocked;
-
void _Movetype_Physics_Frame(entity this, float movedt)
{
this.move_didgravity = -1;
{
case MOVETYPE_PUSH:
case MOVETYPE_FAKEPUSH:
- LOG_DEBUG("Physics: Lacking QuakeC support for Push movetype, FIX ME by using engine physics!");
+ _Movetype_Physics_Push(this, movedt);
break;
case MOVETYPE_NONE:
break;
this.angles = this.angles + movedt * this.avelocity;
break;
case MOVETYPE_STEP:
+ if (GAMEPLAYFIX_UNSTICKPLAYERS(this) == 2)
+ _Movetype_CheckStuck(this);
_Movetype_Physics_Step(this, movedt);
break;
case MOVETYPE_WALK:
case MOVETYPE_FLY:
case MOVETYPE_FLY_WORLDONLY:
+ if (movedt > 0 && GAMEPLAYFIX_UNSTICKPLAYERS(this) == 2)
+ _Movetype_CheckStuck(this);
_Movetype_Physics_Walk(this, movedt);
break;
case MOVETYPE_TOSS:
case MOVETYPE_BOUNCE:
case MOVETYPE_BOUNCEMISSILE:
case MOVETYPE_FLYMISSILE:
+ if (GAMEPLAYFIX_UNSTICKPLAYERS(this) == 2)
+ _Movetype_CheckStuck(this);
_Movetype_Physics_Toss(this, movedt);
break;
case MOVETYPE_PHYSICS:
// set by _Movetype_FlyMove
vector move_stepnormal;
+bool _Movetype_NudgeOutOfSolid_PivotIsKnownGood(entity this, vector pivot);
void _Movetype_WallFriction(entity this, vector stepnormal);
int _Movetype_FlyMove(entity this, float dt, bool applygravity, bool applystepnormal, float stepheight);
void _Movetype_CheckVelocity(entity this);
#endif
const int MOVETYPE_QCPLAYER = 150; // QC-driven player physics, no think functions!
+const int MOVETYPE_QCENTITY = 151; // QC-driven entity physics, some think functions!
const int FL_ONSLICK = BIT(20);
--- /dev/null
+#include "push.qh"
+void _Movetype_PushMove(entity this, float dt) // SV_PushMove
+{
+ if(this.velocity == '0 0 0' && this.avelocity == '0 0 0')
+ {
+ this.ltime += dt;
+ return;
+ }
+
+ switch(this.solid)
+ {
+ // LadyHavoc: valid pusher types
+ case SOLID_BSP:
+ case SOLID_BBOX:
+ case SOLID_SLIDEBOX:
+ case SOLID_CORPSE: // LadyHavoc: this would be weird...
+ break;
+ // LadyHavoc: no collisions
+ case SOLID_NOT:
+ case SOLID_TRIGGER:
+ {
+ this.origin = this.origin + dt * this.velocity;
+ this.angles = this.angles + dt * this.avelocity;
+ this.angles_x -= 360.0 * floor(this.angles_x * (1.0 / 360.0));
+ this.angles_y -= 360.0 * floor(this.angles_y * (1.0 / 360.0));
+ this.angles_z -= 360.0 * floor(this.angles_z * (1.0 / 360.0));
+ this.ltime += dt;
+ _Movetype_LinkEdict(this, false);
+ return;
+ }
+ default:
+ {
+ LOG_INFOF("_Movetype_Physics_Push: entity #%d, unrecognized solid type %d", etof(this), this.solid);
+ return;
+ }
+ }
+ if(!this.modelindex)
+ {
+ LOG_INFOF("_Movetype_Physics_Push: entity #%d has an invalid modelindex %d", etof(this), this.modelindex);
+ return;
+ }
+
+ bool rotated = ((vlen2(this.angles) + vlen2(this.avelocity)) > 0);
+
+ vector move1 = this.velocity * dt;
+ vector moveangle = this.avelocity * dt;
+
+ vector a = -moveangle;
+ vector forward, left, up;
+ MAKE_VECTORS(a, forward, left, up);
+ left *= -1; // actually make it left!
+
+ vector pushorig = this.origin;
+ vector pushang = this.angles;
+ float pushltime = this.ltime;
+
+ // move the pusher to its final position
+
+ this.origin = this.origin + dt * this.velocity;
+ this.angles = this.angles + dt * this.avelocity;
+ this.ltime += dt;
+ _Movetype_LinkEdict(this, false); // pulls absmin/absmax from the engine
+
+ if(this.move_movetype == MOVETYPE_FAKEPUSH) // Tenebrae's MOVETYPE_PUSH variant that doesn't push...
+ {
+ this.angles_x -= 360.0 * floor(this.angles_x * (1.0 / 360.0));
+ this.angles_y -= 360.0 * floor(this.angles_y * (1.0 / 360.0));
+ this.angles_z -= 360.0 * floor(this.angles_z * (1.0 / 360.0));
+ return;
+ }
+
+ IL_CLEAR(g_pushmove_moved); // make sure it's not somehow uncleared
+
+ for(entity check = findradius((this.absmin + this.absmax) * 0.5, vlen(this.absmax - this.absmin) * 0.5 + 1); check; check = check.chain)
+ {
+ switch(check.move_movetype)
+ {
+ case MOVETYPE_NONE:
+ case MOVETYPE_PUSH:
+ case MOVETYPE_FOLLOW:
+ case MOVETYPE_NOCLIP:
+ case MOVETYPE_FLY_WORLDONLY:
+ continue;
+ default:
+ break;
+ }
+
+ if(check.owner == this || this.owner == check)
+ continue;
+
+ // if the entity is standing on the pusher, it will definitely be moved
+ // if the entity is not standing on the pusher, but is in the pusher's
+ // final position, move it
+ if (!IS_ONGROUND(check) || check.groundentity != this)
+ {
+ tracebox(check.origin, check.mins, check.maxs, check.origin, MOVE_NOMONSTERS, check);
+ if(!trace_startsolid)
+ continue;
+ }
+ vector pivot = check.mins + 0.5 * (check.maxs - check.mins);
+ vector move;
+
+ if(rotated)
+ {
+ vector org = check.origin - this.origin;
+ org = org + pivot;
+
+ vector org2;
+ org2.x = (org * forward);
+ org2.y = (org * left);
+ org2.z = (org * up);
+ move = org2 - org;
+ move = move + move1;
+ }
+ else
+ move = move1;
+
+ check.moved_from = check.origin;
+ check.moved_fromangles = check.angles;
+ IL_PUSH(g_pushmove_moved, check);
+
+ // physics objects need better collisions than this code can do
+ if(check.move_movetype == MOVETYPE_PHYSICS)
+ {
+ check.origin = check.origin + move;
+ _Movetype_LinkEdict(check, true);
+ continue;
+ }
+
+ // try moving the contacted entity
+ int savesolid = this.solid;
+ this.solid = SOLID_NOT;
+ if(!_Movetype_PushEntity(check, move, true, true))
+ {
+ // entity "check" got teleported
+ check.angles_y += trace_fraction * moveangle.y;
+ this.solid = savesolid;
+ continue; // pushed enough
+ }
+ // FIXME: turn players specially
+ check.angles_y += trace_fraction * moveangle.y;
+ this.solid = savesolid;
+
+ // this trace.fraction < 1 check causes items to fall off of pushers
+ // if they pass under or through a wall
+ // the groundentity check causes items to fall off of ledges
+ if(check.move_movetype != MOVETYPE_WALK && (trace_fraction < 1 || check.groundentity != this))
+ UNSET_ONGROUND(check);
+
+ // if it is still inside the pusher, block
+ tracebox(check.origin, check.mins, check.maxs, check.origin, MOVE_NOMONSTERS, check);
+ if(trace_startsolid)
+ {
+ if(_Movetype_NudgeOutOfSolid_PivotIsKnownGood(check, pivot))
+ {
+ // hack to invoke all necessary movement triggers
+ _Movetype_PushEntity(check, '0 0 0', true, true);
+ // we could fix it or entity "check" was telported
+ continue;
+ }
+
+ // still inside pusher, so it's really blocked
+
+ // fail the move
+ if(check.mins_x == check.maxs_x)
+ continue;
+ if(check.solid == SOLID_NOT || check.solid == SOLID_TRIGGER)
+ {
+ // corpse
+ check.mins_x = check.mins_y = 0;
+ check.maxs = check.mins;
+ continue;
+ }
+
+ this.origin = pushorig;
+ this.angles = pushang;
+ this.ltime = pushltime;
+ _Movetype_LinkEdict(this, false);
+
+ // move back any entities we already moved
+ IL_EACH(g_pushmove_moved, true,
+ {
+ check.origin = check.moved_from;
+ check.angles = check.moved_fromangles;
+ _Movetype_LinkEdict(check, false);
+ });
+
+ // if the pusher has a "blocked" function, call it, otherwise just stay in place until the obstacle is gone
+ if(getblocked(this))
+ getblocked(this)(this, check);
+ break;
+ }
+ }
+ this.angles_x -= 360.0 * floor(this.angles_x * (1.0 / 360.0));
+ this.angles_y -= 360.0 * floor(this.angles_y * (1.0 / 360.0));
+ this.angles_z -= 360.0 * floor(this.angles_z * (1.0 / 360.0));
+ IL_CLEAR(g_pushmove_moved); // clean up
+}
+
+void _Movetype_Physics_Push(entity this, float dt) // SV_Physics_Pusher
+{
+ float oldltime = this.ltime;
+ float movetime = dt;
+ if(this.nextthink < this.ltime + dt)
+ {
+ movetime = this.nextthink - this.ltime;
+ if(movetime < 0)
+ movetime = 0;
+ }
+
+ if(movetime)
+ {
+ // advances this.ltime if not blocked
+ _Movetype_PushMove(this, movetime);
+ }
+
+ if(this.nextthink > oldltime && this.nextthink <= this.ltime)
+ {
+ this.nextthink = 0;
+ getthink(this)(this);
+ }
+}
--- /dev/null
+#pragma once
+
+void _Movetype_Physics_Push(entity this, float dt);
+
+.vector moved_from, moved_fromangles;
+
+IntrusiveList g_pushmove_moved;
+STATIC_INIT(g_pushmove_moved) { g_pushmove_moved = IL_NEW(); }
+
+#ifdef CSQC
+.float ltime;
+#endif
if (dt <= 0)
return;
- if (GAMEPLAYFIX_UNSTICKPLAYERS(this))
+ if (GAMEPLAYFIX_UNSTICKPLAYERS(this) == 1)
_Movetype_CheckStuck(this);
bool applygravity = (!_Movetype_CheckWater(this) && this.move_movetype == MOVETYPE_WALK && !(this.flags & FL_WATERJUMP));
int autocvar_sv_gameplayfix_stepdown = 2;
float autocvar_sv_gameplayfix_stepdown_maxspeed = 0;
int autocvar_sv_gameplayfix_stepmultipletimes = 1;
-int autocvar_sv_gameplayfix_unstickplayers = 1;
+int autocvar_sv_gameplayfix_unstickplayers = 2;
int autocvar_sv_gameplayfix_fixedcheckwatertransition = 1;
int autocvar_sv_gameplayfix_slidemoveprojectiles = 1;
int autocvar_sv_gameplayfix_grenadebouncedownslopes = 1;
void racer_fire_rocket_aim(entity this, entity player, string tagname, entity trg)
{
vector v = gettaginfo(this, gettagindex(this, tagname));
- racer_fire_rocket(player, v, v_forward, trg);
+ racer_fire_rocket(this, player, v, v_forward, trg);
}
bool racer_frame(entity this, float dt)
}
}
- if(!weaponLocked(player))
+ if (!weaponLocked(player) && !weaponUseForbidden(player))
if(time > vehic.delay)
if(PHYS_INPUT_BUTTON_ATCK2(player))
{
#ifdef SVQC
-void racer_fire_rocket(entity player, vector org, vector dir, entity trg);
+void racer_fire_rocket(entity this, entity player, vector org, vector dir, entity trg);
METHOD(RacerAttack, wr_think, void(entity thiswep, entity actor, .entity weaponentity, int fire))
{
bool isPlayer = IS_PLAYER(actor);
veh.vehicle_energy -= autocvar_g_vehicle_racer_cannon_cost;
veh.wait = time;
}
- string tagname = (veh.cnt)
- ? (veh.cnt = 0, "tag_fire1")
- : (veh.cnt = 1, "tag_fire2");
- vector vshotorg = gettaginfo(veh, gettagindex(veh, tagname));
- w_shotorg = vshotorg;
- w_shotdir = v_forward;
- // Fix z-aim (for chase mode)
- crosshair_trace(player);
- w_shotdir.z = normalize(trace_endpos - vshotorg).z * 0.5;
-
+ if(!isPlayer)
+ {
+ string tagname = (veh.cnt)
+ ? (veh.cnt = 0, "tag_fire1")
+ : (veh.cnt = 1, "tag_fire2");
+ vector vshotorg = gettaginfo(veh, gettagindex(veh, tagname));
+ w_shotorg = vshotorg;
+ w_shotdir = v_forward;
+
+ // Fix z-aim (for chase mode)
+ crosshair_trace(player);
+ w_shotdir.z = normalize(trace_endpos - vshotorg).z * 0.5;
+ }
if (isPlayer) W_SetupShot_Dir(player, weaponentity, v_forward, false, 0, SND_Null, CH_WEAPON_B, 0, DEATH_VH_WAKI_GUN.m_id);
vector org = w_shotorg;
vector dir = w_shotdir;
- entity bolt = vehicles_projectile(veh, EFFECT_RACER_MUZZLEFLASH, SND_LASERGUN_FIRE,
+ entity bolt = vehicles_projectile(((veh) ? veh : player), EFFECT_RACER_MUZZLEFLASH, SND_LASERGUN_FIRE,
org, normalize(v_forward + randomvec() * autocvar_g_vehicle_racer_cannon_spread) * autocvar_g_vehicle_racer_cannon_speed,
autocvar_g_vehicle_racer_cannon_damage, autocvar_g_vehicle_racer_cannon_radius, autocvar_g_vehicle_racer_cannon_force, 0,
DEATH_VH_WAKI_GUN.m_id, PROJECTILE_WAKICANNON, 0, true, true, player);
if (fire & 2)
if (!isPlayer || weapon_prepareattack(thiswep, actor, weaponentity, false, 0.2)) {
if (isPlayer) W_SetupShot_Dir(actor, weaponentity, v_forward, false, 0, SND_Null, CH_WEAPON_B, 0, DEATH_VH_WAKI_ROCKET.m_id);
- racer_fire_rocket(player, w_shotorg, w_shotdir, NULL);
+ racer_fire_rocket(((veh) ? veh : player), player, w_shotorg, w_shotdir, NULL);
weapon_thinkf(actor, weaponentity, WFRAME_FIRE2, 0, w_ready);
}
}
void racer_rocket_tracker(entity this);
void racer_rocket_groundhugger(entity this);
-void racer_fire_rocket(entity player, vector org, vector dir, entity trg)
+void racer_fire_rocket(entity this, entity player, vector org, vector dir, entity trg)
{
- entity rocket = vehicles_projectile(player.vehicle, EFFECT_RACER_ROCKETLAUNCH, SND_ROCKET_FIRE,
+ entity rocket = vehicles_projectile(this, EFFECT_RACER_ROCKETLAUNCH, SND_ROCKET_FIRE,
org, dir * autocvar_g_vehicle_racer_rocket_speed,
autocvar_g_vehicle_racer_rocket_damage, autocvar_g_vehicle_racer_rocket_radius, autocvar_g_vehicle_racer_rocket_force, 3,
DEATH_VH_WAKI_ROCKET.m_id, PROJECTILE_WAKIROCKET, 20, false, false, player);
// TODO: move into implementation
#ifdef SVQC
-void racer_fire_rocket(entity player, vector org, vector dir, entity trg);
+void racer_fire_rocket(entity this, entity player, vector org, vector dir, entity trg);
#endif
#ifdef SVQC
// read cvars from weapon settings
+// cvars are created as such: g_balance_wepname_name
#define WEP_CVAR(wepname, name) (_wep_##wepname.wepvar_##name)
#define WEP_CVAR_PRI(wepname, name) WEP_CVAR(wepname, primary_##name)
#define WEP_CVAR_SEC(wepname, name) WEP_CVAR(wepname, secondary_##name)
#define SPAWNFUNC_WEAPON(name, weapon) \
spawnfunc(name) { weapon_defaultspawnfunc(this, weapon); }
+#define SPAWNFUNC_WEAPON_COND(name, cond, wep1, wep2) \
+ spawnfunc(name) \
+ { \
+ entity wep = (cond) ? wep1 : wep2; \
+ weapon_defaultspawnfunc(this, wep); \
+ }
+
#else
#define SPAWNFUNC_WEAPON(name, weapon)
#define STAT_MOVEVARS_TIMESCALE _STAT_MOVEVARS_TIMESCALE
#define STAT_MOVEVARS_GRAVITY _STAT_MOVEVARS_GRAVITY
+#define drawpic drawpic_builtin
+#define drawstring drawstring_builtin
+#define drawcharacter drawcharacter_builtin
+#define drawfill drawfill_builtin
+#define drawsetcliparea drawsetcliparea_builtin
+#define drawcolorcodedstring drawcolorcodedstring_builtin
+#define drawcolorcodedstring2 drawcolorcodedstring2_builtin
+#define stringwidth stringwidth_builtin
+
#include "upstream/csprogsdefs.qc"
#undef true
#define use use1
.void(entity this, entity actor, entity trigger) use;
-#define touch move_touch
+
+#undef drawpic
+#undef drawstring
+#undef drawcharacter
+#undef drawfill
+#undef drawsetcliparea
+#undef drawcolorcodedstring
+#undef drawcolorcodedstring2
+#undef stringwidth
void(vector ang) _makevectors_hidden = #1;
vector(float skel, float bonenum) _skel_get_boneabs_hidden = #270;
void() break_to_debugger = #6;
float() random = #7;
-void(entity e, float chan, string samp) sound = #8;
+void(entity e, float chan, string samp, float volume, float atten, ...) sound = #8;
vector(vector v) normalize = #9;
void(string e) error = #10;
void(string e) objerror = #11;
vector (vector v) cs_unproject = #310;
vector (vector v) cs_project = #311;
-void(float width, vector pos1, vector pos2, float flag) drawline = #315;
+void(float width, vector pos1, vector pos2, vector rgb, float alpha, float flag) drawline = #315;
float(string name) iscachedpic = #316;
string(string name, ...) precache_pic = #317;
string(string name) precache_cubemap = #317;
vector(string picname) draw_getimagesize = #318;
void(string name) freepic = #319;
-float(vector position, float character, vector scale, vector rgb, float alpha, float flag) drawcharacter_builtin = #320;
-float(vector position, string text, vector scale, vector rgb, float alpha, float flag) drawstring_builtin = #321;
-float(vector position, string pic, vector size, vector rgb, float alpha, float flag) drawpic_builtin = #322;
-float(vector position, vector size, vector rgb, float alpha, float flag) drawfill_builtin = #323;
-void(float x, float y, float width, float height) drawsetcliparea_builtin = #324;
+float(vector position, float character, vector scale, vector rgb, float alpha, float flag) drawcharacter = #320;
+float(vector position, string text, vector scale, vector rgb, float alpha, float flag) drawstring = #321;
+float(vector position, string pic, vector size, vector rgb, float alpha, float flag) drawpic = #322;
+float(vector position, vector size, vector rgb, float alpha, float flag) drawfill = #323;
+void(float x, float y, float width, float height) drawsetcliparea = #324;
void(void) drawresetcliparea = #325;
-float(vector position, string text, vector scale, float alpha, float flag) drawcolorcodedstring_builtin = #326;
-vector(vector position, string text, vector scale, vector rgb, float alpha, float flag) drawcolorcodedstring2_builtin = #326;
+float(vector position, string text, vector scale, float alpha, float flag) drawcolorcodedstring = #326;
+vector(vector position, string text, vector scale, vector rgb, float alpha, float flag) drawcolorcodedstring2 = #326;
float(float stnum) getstatf = #330;
float(float stnum, ...) getstati = #331; // can optionally take first bit and count
string() ReadString = #366;
float() ReadFloat = #367;
-// LordHavoc's range #400-#499
+// LadyHavoc's range #400-#499
void(entity from, entity to) copyentity = #400;
entity(.string fld, string match) findchain = #402;
float(float c, float s) atan2 = #474;
float(float a) tan = #475;
float(string s) strippedstringlen = #476;
-float(string s) strlennocol = #476; // This is the correct name for the function, but not removing the decolorizedstring mapping.
+float(string s) strlennocol = #476; // This is the correct name for the function, but not removing the strippedstringlen mapping.
string(string s) decolorizedstring = #477;
string(string s) strdecolorize = #477; // This is the correct name for the function, but not removing the decolorizedstring mapping.
string(float uselocaltime, string format, ...) strftime = #478;
// fix_* parms let you fix badly made fonts by applying some transformations to them
// fix_scale : per-character center-oriented scale (doesn't change line height at all)
// fix_voffset : vertical offset for each character, it's a multiplier to character height
-float stringwidth_builtin(string text, float allowColorCodes, vector size) = #327; // get a width of string with given font and char size
+float stringwidth(string text, float allowColorCodes, vector size) = #327; // get a width of string with given font and char size
float stringwidth_menu(string text, float allowColorCodes, vector size) = #468; // in menu.dat it has different builtin #
//description: engine support for custom fonts in console, hud, qc etc.
// limits:
//DP_QC_ASINACOSATANATAN2TAN
//idea: Urre
-//darkplaces implementation: LordHavoc
+//darkplaces implementation: LadyHavoc
//constant definitions:
float DEG2RAD = 0.0174532925199432957692369076848861271344287188854172545609719144;
float RAD2DEG = 57.2957795130823208767981548141051703324054724665643215491602438612;
//see DP_END_GETSOUNDTIME for similar functionality but for entity sound channels
//DP_QC_TOKENIZEBYSEPARATOR
-//idea: Electro, SavageX, LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: Electro, SavageX, LadyHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
float(string s, string separator1, ...) tokenizebyseparator = #479;
//description:
//notes: these constants are given as optional second argument to precache_pic()
//DP_QC_TRACE_MOVETYPE_WORLDONLY
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//constant definitions:
float MOVE_WORLDONLY = 3;
//description:
float(entity num) num_for_edict = #512;
//DP_TRACE_HITCONTENTSMASK_SURFACEINFO
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//globals:
.float dphitcontentsmask; // if non-zero on the entity passed to traceline/tracebox/tracetoss this will override the normal collidable contents rules and instead hit these contents values (for example AI can use tracelines that hit DONOTENTER if it wants to, by simply changing this field on the entity passed to traceline), this affects normal movement as well as trace calls
float trace_dpstartcontents; // DPCONTENTS_ value at start position of trace
//logarithm
//FTE_CSQC_SKELETONOBJECTS
-//idea: Spike, LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: Spike, LadyHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
// all skeleton numbers are 1-based (0 being no skeleton)
// all bone numbers are 1-based (0 being invalid)
//function definitions:
void coverage() = #642; // Reports a coverage event. The engine counts for each of the calls to this builtin whether it has been called.
+//DP_QC_FS_SEARCH_PACKFILE
+//idea: Mario
+//darkplaces implementation: Mario
+//builtin definitions:
+float(string pattern, float caseinsensitive, float quiet, string packfile) search_packfile_begin = #444;
+//description:
+//extension to search_begin (DP_QC_FS_SEARCH), performs a filename search with the specified pattern (for example "maps/*.bsp") and stores the results in a search slot (minimum of 128 supported by any engine with this extension), the other functions take this returned search slot number, be sure to search_free when done (they are also freed on progs reload).
+//only searches for files within the specified packfile, which is expected to match the results of whichpack().
+
// assorted builtins
const float STAT_MOVEVARS_TICRATE = 240;
const float STAT_MOVEVARS_TIMESCALE = 241;
//checkextension function
//idea: expected by almost everyone
-//darkplaces implementation: LordHavoc
+//darkplaces implementation: LadyHavoc
float(string s) checkextension = #99;
//description:
//check if (cvar("pr_checkextension")) before calling this, this is the only
//BX_WAL_SUPPORT
//idea: id Software
-//darkplaces implementation: LordHavoc
+//darkplaces implementation: LadyHavoc
//description:
//indicates the engine supports .wal textures for filenames in the textures/ directory
//(note: DarkPlaces has supported this since 2001 or 2002, but did not advertise it as an extension, then I noticed Betwix was advertising it and added the extension accordingly)
//DP_BUTTONCHAT
//idea: Vermeulen
-//darkplaces implementation: LordHavoc
+//darkplaces implementation: LadyHavoc
//field definitions:
.float buttonchat;
//description:
//DP_BUTTONUSE
//idea: id Software
-//darkplaces implementation: LordHavoc
+//darkplaces implementation: LadyHavoc
//field definitions:
.float buttonuse;
//client console commands:
//made +use and -use commands work, they now control the .buttonuse field (.button1 was used by many mods for other purposes).
//DP_CL_LOADSKY
-//idea: Nehahra, LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: Nehahra, LadyHavoc
+//darkplaces implementation: LadyHavoc
//client console commands:
//"loadsky" (parameters: "basename", example: "mtnsun_" would load "mtnsun_up.tga" and "mtnsun_rt.tga" and similar names, use "" to revert to quake sky, note: this is the same as Quake2 skybox naming)
//description:
//DP_CON_SET
//idea: id Software
-//darkplaces implementation: LordHavoc
+//darkplaces implementation: LadyHavoc
//description:
//indicates this engine supports the "set" console command which creates or sets a non-archived cvar (not saved to config.cfg on exit), it is recommended that set and seta commands be placed in default.cfg for mod-specific cvars.
//DP_CON_SETA
//idea: id Software
-//darkplaces implementation: LordHavoc
+//darkplaces implementation: LadyHavoc
//description:
//indicates this engine supports the "seta" console command which creates or sets an archived cvar (saved to config.cfg on exit), it is recommended that set and seta commands be placed in default.cfg for mod-specific cvars.
//indicates this engine supports console commandlines containing $cvarname which will expand to the contents of that cvar as a parameter, for instance say my fov is $fov, will say "my fov is 90", or similar.
//DP_CON_STARTMAP
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//description:
//adds two engine-called aliases named startmap_sp and startmap_dm which are called when the engine tries to start a singleplayer game from the menu (startmap_sp) or the -listen or -dedicated options are used or the engine is a dedicated server (uses startmap_dm), these allow a mod or game to specify their own map instead of start, and also distinguish between singleplayer and -listen/-dedicated, also these need not be a simple "map start" command, they can do other things if desired, startmap_sp and startmap_dm both default to "map start".
//DP_EF_ADDITIVE
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//effects bit:
float EF_ADDITIVE = 32;
//description:
//DP_EF_BLUE
//idea: id Software
-//darkplaces implementation: LordHavoc
+//darkplaces implementation: LadyHavoc
//effects bit:
float EF_BLUE = 64;
//description:
//entity emits blue light (used for quad)
//DP_EF_DOUBLESIDED
-//idea: LordHavoc
-//darkplaces implementation: [515] and LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: [515] and LadyHavoc
//effects bit:
float EF_DOUBLESIDED = 32768;
//description:
//force dynamic model light on the entity, even if it's a BSP model (or anything else with lightmaps or light colors)
//DP_EF_FLAME
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//effects bit:
float EF_FLAME = 1024;
//description:
//entity is on fire
//DP_EF_FULLBRIGHT
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//effects bit:
float EF_FULLBRIGHT = 512;
//description:
//DP_EF_NODEPTHTEST
//idea: Supa
-//darkplaces implementation: LordHavoc
+//darkplaces implementation: LadyHavoc
//effects bit:
float EF_NODEPTHTEST = 8192;
//description:
//DP_EF_NODRAW
//idea: id Software
-//darkplaces implementation: LordHavoc
+//darkplaces implementation: LadyHavoc
//effects bit:
float EF_NODRAW = 16;
//description:
//DP_EF_NOGUNBOB
//idea: Chris Page, Dresk
-//darkplaces implementation: LordHAvoc
+//darkplaces implementation: LadyHavoc
//effects bit:
float EF_NOGUNBOB = 256;
//description:
//disabling gun bobbing on view-relative models meant to be part of the heads up display. (note: if fov is changed these entities may be off-screen, or too near the center of the screen, so use fov 90 in this case)
//DP_EF_NOSHADOW
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//effects bit:
float EF_NOSHADOW = 4096;
//description:
//DP_EF_RED
//idea: id Software
-//darkplaces implementation: LordHavoc
+//darkplaces implementation: LadyHavoc
//effects bit:
float EF_RED = 128;
//description:
//DP_EF_STARDUST
//idea: MythWorks Inc
-//darkplaces implementation: LordHavoc
+//darkplaces implementation: LadyHavoc
//effects bit:
float EF_STARDUST = 2048;
//description:
//DP_ENT_ALPHA
//idea: Nehahra
-//darkplaces implementation: LordHavoc
+//darkplaces implementation: LadyHavoc
//fields:
.float alpha;
//description:
//controls opacity of the entity, 0.0 is forced to be 1.0 (otherwise everything would be invisible), use -1 if you want to make something invisible, 1.0 is solid (like normal).
//DP_ENT_COLORMOD
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//field definition:
.vector colormod;
//description:
//controls color of the entity, '0 0 0', is forced to be '1 1 1' (otherwise everything would be black), used for tinting objects, for instance using '1 0.6 0.4' on an ogre would give you an orange ogre (order is red green blue), note the colors can go up to '8 8 8' (8x as bright as normal).
//DP_ENT_CUSTOMCOLORMAP
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//description:
//if .colormap is set to 1024 + pants + shirt * 16, those colors will be used for colormapping the entity, rather than looking up a colormap by player number.
/*
//NOTE: no longer supported by darkplaces because all entities are delta compressed now
//DP_ENT_DELTACOMPRESS // no longer supported
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//effects bit:
float EF_DELTA = 8388608;
//description:
*/
//DP_ENT_EXTERIORMODELTOCLIENT
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//fields:
.entity exteriormodeltoclient;
//description:
//the entity is visible to all clients with one exception: if the specified client is using first person view (not using chase_active) the entity will not be shown. Also if tag attachments are supported any entities attached to the player entity will not be drawn in first person.
//DP_ENT_GLOW
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//field definitions:
.float glow_color;
.float glow_size;
//customizable glowing light effect on the entity, glow_color is a paletted (8bit) color in the range 0-255 (note: 0 and 254 are white), glow_size is 0 or higher (up to the engine what limit to cap it to, darkplaces imposes a 1020 limit), if glow_trail is true it will leave a trail of particles of the same color as the light.
//DP_ENT_GLOWMOD
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//field definition:
.vector glowmod;
//description:
//controls color of the entity's glow texture (fullbrights), '0 0 0', is forced to be '1 1 1' (otherwise everything would be black), used for tinting objects, see colormod (same color restrictions apply).
//DP_ENT_LOWPRECISION
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//effects bit:
float EF_LOWPRECISION = 4194304;
//description:
//uses low quality origin coordinates, reducing network traffic compared to the default high precision, intended for numerous objects (projectiles/gibs/bullet holes/etc).
//DP_ENT_SCALE
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//field definitions:
.float scale;
//description:
//controls rendering scale of the object, 0 is forced to be 1, darkplaces uses 1/16th accuracy and a limit of 15.9375, can be used to make an object larger or smaller.
//DP_ENT_TRAILEFFECTNUM
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//field definitions:
.float traileffectnum;
//description:
//this will do both the dlight and particle trail as described in the effect, basically equivalent to trailparticles() in CSQC but performed on a server entity.
//DP_ENT_VIEWMODEL
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//field definitions:
.entity viewmodelforclient;
//description:
//this is a very special capability, attachs the entity to the view of the client specified, origin and angles become relative to the view of that client, all effects can be used (multiple skins on a weapon model etc)... the entity is not visible to any other client.
//DP_GFX_EXTERNALTEXTURES
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//description:
//loads external textures found in various directories (tenebrae compatible)...
/*
//DP_GFX_EXTERNALTEXTURES_PERMAPTEXTURES
//idea: Fuh?
-//darkplaces implementation: LordHavoc
+//darkplaces implementation: LadyHavoc
//description:
//Q1BSP and HLBSP map loading loads external textures found in textures/<mapname>/ as well as textures/.
//Where mapname is the bsp filename minus the extension (typically .bsp) and minus maps/ if it is in maps/ (any other path is not removed)
//progs/something/blah.bsp uses textures in the directory textures/progs/something/blah/ and falls back to textures/
//DP_GFX_FOG
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//worldspawn fields:
//"fog" (parameters: "density red green blue", example: "0.1 0.3 0.3 0.3")
//description:
//DP_GFX_QUAKE3MODELTAGS
//idea: id Software
-//darkplaces implementation: LordHavoc
+//darkplaces implementation: LadyHavoc
//field definitions:
.entity tag_entity; // entity this is attached to (call setattachment to set this)
.float tag_index; // which tag on that entity (0 is relative to the entity, > 0 is an index into the tags on the model if it has any) (call setattachment to set this)
//note 5: if an entity is attached to the player entity it will not be drawn in first person.
//DP_GFX_SKINFILES
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//description:
//alias models (mdl, md2, md3) can have .skin files to replace conventional texture naming, these have a naming format such as:
//progs/test.md3_0.skin
//other commands might be added someday but it is not expected.
//DP_GFX_SKYBOX
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//worldspawn fields:
//"sky" (parameters: "basename", example: "mtnsun_" would load "mtnsun_up.tga" and "mtnsun_rt.tga" and similar names, note: "sky" is also used the same way by Quake2)
//description:
// note: beware that str2chr() could return value bigger than 255 once utf8 is enabled
//DP_HALFLIFE_MAP
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//description:
//simply indicates that the engine supports HalfLife maps (BSP version 30, NOT the QER RGBA ones which are also version 30).
//DP_HALFLIFE_MAP_CVAR
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//cvars:
//halflifebsp 0/1
//description:
//engine sets this cvar when loading a map to indicate if it is halflife format or not.
//DP_HALFLIFE_SPRITE
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//description:
//simply indicates that the engine supports HalfLife sprites.
//DP_INPUTBUTTONS
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//field definitions:
.float button3;
.float button4;
// that other engines (which do not support this extension) could connect to a game and misunderstand this kind of lightstyle syntax
//DP_LITSPRITES
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//description:
//indicates this engine supports lighting on sprites, any sprite with ! in its filename (both on disk and in the qc) will be lit rather than having forced EF_FULLBRIGHT (EF_FULLBRIGHT on the entity can still force these sprites to not be lit).
//DP_LITSUPPORT
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//description:
//indicates this engine loads .lit files for any quake1 format .bsp files it loads to enhance maps with colored lighting.
//implementation description: these files begin with the header QLIT followed by version number 1 (as little endian 32bit), the rest of the file is a replacement lightmaps lump, except being 3x as large as the lightmaps lump of the map it matches up with (and yes the between-lightmap padding is expanded 3x to keep this consistent), so the lightmap offset in each surface is simply multiplied by 3 during loading to properly index the lit data, and the lit file is loaded instead of the lightmap lump, other renderer changes are needed to display these of course... see the litsupport.zip sample code (almost a tutorial) at http://icculus.org/twilight/darkplaces for more information.
//DP_MONSTERWALK
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//description:
//MOVETYPE_WALK is permitted on non-clients, so bots can move smoothly, run off ledges, etc, just like a real player.
//networked. useful for shared CSQC entities.
//DP_MOVETYPEFOLLOW
-//idea: id Software, LordHavoc (redesigned)
-//darkplaces implementation: LordHavoc
+//idea: id Software, LadyHavoc (redesigned)
+//darkplaces implementation: LadyHavoc
//movetype definitions:
float MOVETYPE_FOLLOW = 12;
//description:
//DP_QC_ASINACOSATANATAN2TAN
//idea: Urre
-//darkplaces implementation: LordHavoc
+//darkplaces implementation: LadyHavoc
//constant definitions:
float DEG2RAD = 0.0174532925199432957692369076848861271344287188854172545609719144;
float RAD2DEG = 57.2957795130823208767981548141051703324054724665643215491602438612;
//equivalent to changeyaw, ent is normally self. (this was a Q2 builtin)
//DP_QC_COPYENTITY
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
void(entity from, entity to) copyentity = #400;
//description:
float(float caseinsensitive, string s, ...) crc16 = #494;
//DP_QC_CVAR_DEFSTRING
-//idea: id Software (Doom3), LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: id Software (Doom3), LadyHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
string(string s) cvar_defstring = #482;
//description:
//DP_QC_CVAR_STRING
//idea: VorteX
-//DarkPlaces implementation: VorteX, LordHavoc
+//DarkPlaces implementation: VorteX, LadyHavoc
//builtin definitions:
string(string s) cvar_string = #448;
//description:
//DP_QC_EDICT_NUM
//idea: 515
-//DarkPlaces implementation: LordHavoc
+//DarkPlaces implementation: LadyHavoc
//builtin definitions:
entity(float entnum) edict_num = #459;
float(entity ent) wasfreed = #353; // same as in EXT_CSQC extension
//listening port.
//DP_QC_FINDCHAIN
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
entity(.string fld, string match) findchain = #402;
//description:
//DP_QC_FINDCHAINFLAGS
//idea: Sajt
-//darkplaces implementation: LordHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
entity(.float fld, float match) findchainflags = #450;
//description:
//similar to findflags() but returns a chain of entities like findradius.
//DP_QC_FINDCHAINFLOAT
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
entity(.entity fld, entity match) findchainentity = #403;
entity(.float fld, float match) findchainfloat = #403;
//DP_QC_FINDFLAGS
//idea: Sajt
-//darkplaces implementation: LordHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
entity(entity start, .float fld, float match) findflags = #449;
//description:
//finds an entity with the specified flag set in the field, similar to find()
//DP_QC_FINDFLOAT
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
entity(entity start, .entity fld, entity match) findentity = #98;
entity(entity start, .float fld, float match) findfloat = #98;
//search_getfilename returns a filename from the search.
//DP_QC_GETLIGHT
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
vector(vector org) getlight = #92;
//description:
//returns the lighting at the requested location (in color), 0-255 range (can exceed 255).
//DP_QC_GETSURFACE
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
float(entity e, float s) getsurfacenumpoints = #434;
vector(entity e, float s, float n) getsurfacepoint = #435;
//function to query triangles of a surface
//DP_QC_GETTAGINFO
-//idea: VorteX, LordHavoc
+//idea: VorteX, LadyHavoc
//DarkPlaces implementation: VorteX
//builtin definitions:
float(entity ent, string tagname) gettagindex = #451;
//logarithm
//DP_QC_MINMAXBOUND
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
float(float a, float b, ...) min = #94;
float(float a, float b, float c) min3 = #94;
//bound clamps the value to the range and returns it.
//DP_QC_MULTIPLETEMPSTRINGS
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//description:
//this extension makes all builtins returning tempstrings (ftos for example)
//cycle through a pool of multiple tempstrings (at least 16), allowing
float(entity num) num_for_edict = #512;
//DP_QC_RANDOMVEC
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
vector() randomvec = #91;
//description:
//returns a vector of length < 1, much quicker version of this QC: do {v_x = random()*2-1;v_y = random()*2-1;v_z = random()*2-1;} while(vlen(v) > 1)
//DP_QC_SINCOSSQRTPOW
-//idea: id Software, LordHavoc
-//darkplaces implementation: id Software, LordHavoc
+//idea: id Software, LadyHavoc
+//darkplaces implementation: id Software, LadyHavoc
//builtin definitions:
float(float val) sin = #60;
float(float val) cos = #61;
// the + flag.
//DP_QC_STRFTIME
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
string(float uselocaltime, string format, ...) strftime = #478;
//description:
//DP_QC_STRING_CASE_FUNCTIONS
//idea: Dresk
-//darkplaces implementation: LordHavoc / Dresk
+//darkplaces implementation: LadyHavoc / Dresk
//builtin definitions:
string(string s) strtolower = #480; // returns the passed in string in pure lowercase form
string(string s) strtoupper = #481; // returns the passed in string in pure uppercase form
//provides simple string uppercase and lowercase functions
//DP_QC_TOKENIZEBYSEPARATOR
-//idea: Electro, SavageX, LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: Electro, SavageX, LadyHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
float(string s, string separator1, ...) tokenizebyseparator = #479;
//description:
//simulates movement of the entity as if it is MOVETYPE_TOSS and starting with it's current state (location, velocity, etc), returns relevant trace_ variables (trace_fraction is always 0, all other values are supported - trace_ent, trace_endpos, trace_plane_normal), does not actually alter the entity.
//DP_QC_TRACE_MOVETYPE_HITMODEL
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//constant definitions:
float MOVE_HITMODEL = 4;
//description:
//allows traces to hit alias models (not sprites!) instead of entity boxes, use as the nomonsters parameter to trace functions, note that you can hit invisible model entities (alpha < 0 or EF_NODRAW or model "", it only checks modelindex)
//DP_QC_TRACE_MOVETYPE_WORLDONLY
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//constant definitions:
float MOVE_WORLDONLY = 3;
//description:
//DP_QC_UNLIMITEDTEMPSTRINGS
//idea: divVerent
-//darkplaces implementation: LordHavoc
+//darkplaces implementation: LadyHavoc
//description:
//this extension alters Quake behavior such that instead of reusing a single
//tempstring (or multiple) there are an unlimited number of tempstrings, which
//this is basically a poor man's garbage collection system for strings.
//DP_QC_VECTOANGLES_WITH_ROLL
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
vector(vector forward, vector up) vectoangles2 = #51; // same number as vectoangles
//description:
//note: just like normal vectoangles you need to negate the pitch of the returned angles if you want to feed them to makevectors or assign to self.v_angle
//DP_QC_VECTORVECTORS
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
void(vector dir) vectorvectors = #432;
//description:
float(string url, float id, string content_type, string delim, float buf) uri_postbuf = #513;
//DP_SKELETONOBJECTS
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//description:
//this extension indicates that FTE_CSQC_SKELETONOBJECTS functionality is available in server QC (as well as CSQC).
//DP_QUAKE2_MODEL
//idea: quake community
-//darkplaces implementation: LordHavoc
+//darkplaces implementation: LadyHavoc
//description:
//shows that the engine supports Quake2 .md2 files.
//DP_QUAKE2_SPRITE
-//idea: LordHavoc
+//idea: LadyHavoc
//darkplaces implementation: Elric
//description:
//shows that the engine supports Quake2 .sp2 files.
//DP_QUAKE3_MAP
//idea: quake community
-//darkplaces implementation: LordHavoc
+//darkplaces implementation: LadyHavoc
//description:
//shows that the engine supports Quake3 .bsp files.
//DP_QUAKE3_MODEL
//idea: quake community
-//darkplaces implementation: LordHavoc
+//darkplaces implementation: LadyHavoc
//description:
//shows that the engine supports Quake3 .md3 files.
//DP_REGISTERCVAR
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
float(string name, string value) registercvar = #93;
//description:
//NOTE: DP_CON_SET is much better.
//DP_SND_DIRECTIONLESSATTNNONE
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//description:
//make sounds with ATTN_NONE have no spatialization (enabling easy use as music sources).
//the engine supports loading Ogg Vorbis sound files. Use either the .ogg filename directly, or a .wav of the same name (will try to load the .wav first and then .ogg).
//DP_SND_STEREOWAV
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//description:
//the engine supports stereo WAV files. (useful with DP_SND_DIRECTIONLESSATTNNONE for music)
// - subtitles
//DP_VIDEO_DPV
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//console commands:
// playvideo <videoname> - start playing video
// stopvideo - stops current video
// 18 7 "I'll hack you from crotch to gizzard and feed what's left of you to your brides..."
//DP_SOLIDCORPSE
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//solid definitions:
float SOLID_CORPSE = 5;
//description:
//the entity will not collide with SOLID_CORPSE and SOLID_SLIDEBOX entities (and likewise they will not collide with it), this is useful if you want dead bodies that are shootable but do not obstruct movement by players and monsters, note that if you traceline with a SOLID_SLIDEBOX entity as the ignoreent, it will ignore SOLID_CORPSE entities, this is desirable for visibility and movement traces, but not for bullets, for the traceline to hit SOLID_CORPSE you must temporarily force the player (or whatever) to SOLID_BBOX and then restore to SOLID_SLIDEBOX after the traceline.
//DP_SPRITE32
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//description:
//the engine supports .spr32 sprites.
//DP_SV_BOTCLIENT
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//constants:
float CLIENTTYPE_DISCONNECTED = 0;
float CLIENTTYPE_REAL = 1;
//allows qc to customize MOVETYPE_BOUNCE a bit
//DP_SV_CLIENTCAMERA
-//idea: LordHavoc, others
+//idea: LadyHavoc, others
//darkplaces implementation: Black
//field definitions:
.entity clientcamera; // override camera entity
//allows another entity to be the camera for a client, for example a remote camera, this is similar to sending svc_setview manually except that it also changes the network culling appropriately.
//DP_SV_CLIENTCOLORS
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//field definitions:
.float clientcolors; // colors of the client (format: pants + shirt * 16)
//description:
//allows qc to read and modify the client colors associated with a client entity (not particularly useful on other entities), and automatically sends out any appropriate network updates if changed
//DP_SV_CLIENTNAME
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//description:
//allows qc to modify the client's .netname, and automatically sends out any appropriate network updates if changed
//DP_SV_CUSTOMIZEENTITYFORCLIENT
-//idea: LordHavoc
-//darkplaces implementation: [515] and LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: [515] and LadyHavoc
//field definitions:
.float() customizeentityforclient; // self = this entity, other = client entity
//description:
//implementation notes:
//entity customization is done before per-client culling (visibility for instance) because the entity may be doing setorigin to display itself in different locations on different clients, may be altering its .modelindex, .effects and other fields important to culling, so customized entities increase cpu usage (non-customized entities can use all the early culling they want however, as they are not changing on a per client basis).
+//DP_SV_DISABLECLIENTPREDICTION
+//idea: LadyHavoc, Mario
+//darkplaces implementation: LadyHavoc, Mario
+//field definitions:
+.float disableclientprediction;
+//description:
+//By default, player entities are enabled for prediction by the engine if the
+//engine assumes the client can sensibly predict them. As the NQ and DarkPlaces
+//protocol does not network movetype, this in particular allows for client
+//prediction only if movetype == MOVETYPE_WALK.
+//Setting this field to 1 disables prediction in any case - this is useful when
+//the client cannot sensibly predict the server's idea of how the player moves
+//(common in case of pure serverside grappling hook or jetpack
+//implementations).
+//Setting this field to -1 forces prediction even if the server assumes the
+//client cannot predict the current movetype of a player entity (obviously,
+//this then requires matching client-side prediction code in CSQC, as the
+//engine's own client prediction will sure not handle these cases right due to
+//not knowing the serverside value of movetype). This is allowed in combination
+//with the following movetypes:
+// MOVETYPE_NONE (useful to have full QC control over movement)
+// MOVETYPE_WALK (redundant but harmless)
+// MOVETYPE_STEP
+// MOVETYPE_FLY (useful for spectators)
+// MOVETYPE_TOSS
+// MOVETYPE_NOCLIP (useful for spectators)
+// MOVETYPE_FLYMISSILE
+// MOVETYPE_BOUNCE
+// MOVETYPE_BOUNCEMISSILE
+// MOVETYPE_FLY_WORLDONLY (useful for spectators)
+
//DP_SV_DISCARDABLEDEMO
//idea: parasti
//darkplaces implementation: parasti
// discarding demos is enabled (the cvar sv_autodemo_perclient_discardable is set)
//DP_SV_DRAWONLYTOCLIENT
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//field definitions:
.entity drawonlytoclient;
//description:
//DP_SV_DROPCLIENT
//idea: FrikaC
-//darkplaces implementation: LordHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
void(entity clent) dropclient = #453;
//description:
//causes the server to immediately drop the client, more reliable than stuffcmd(clent, "disconnect\n"); which could be intentionally ignored by the client engine
//DP_SV_EFFECT
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
void(vector org, string modelname, float startframe, float endframe, float framerate) effect = #404;
//SVC definitions:
// SV_OnEntityPostSpawnFunction is called ONLY after its spawn function or SV_OnEntityNoSpawnFunction was called, and skipped if the entity got removed by either.
//DP_SV_MODELFLAGS_AS_EFFECTS
-//idea: LordHavoc, Dresk
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc, Dresk
+//darkplaces implementation: LadyHavoc
//field definitions:
.float modelflags;
//constant definitions:
// provides the netaddress of the associated entity (ie. 127.0.0.1) and "null/botclient" if the netconnection of the entity is invalid
//DP_SV_NODRAWTOCLIENT
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//field definitions:
.entity nodrawtoclient;
//description:
//the entity is not visible to the specified client.
//DP_SV_PING
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//field definitions:
.float ping;
//description:
//continuously updated field indicating client's ping (based on average of last 16 packet time differences).
//DP_SV_PING_PACKETLOSS
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//field definitions:
.float ping_packetloss;
.float ping_movementloss;
//DP_SV_POINTPARTICLES
//idea: Spike
-//darkplaces implementation: LordHavoc
+//darkplaces implementation: LadyHavoc
//function definitions:
float(string effectname) particleeffectnum = #335; // same as in CSQC
void(entity ent, float effectnum, vector start, vector end) trailparticles = #336; // same as in CSQC
//warning: server must have same order of effects in effectinfo.txt as client does or the numbers would not match up, except for standard quake effects which are always the same numbers.
//DP_SV_PUNCHVECTOR
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//field definitions:
.vector punchvector;
//description:
//offsets client view in worldspace, similar to view_ofs but all 3 components are used and are sent with at least 8 bits of fraction, this allows the view to be kicked around by damage or hard landings or whatever else, note that unlike punchangle this is not faded over time, it is up to the mod to fade it (see also DP_SV_PLAYERPHYSICS).
//DP_SV_PLAYERPHYSICS
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//field definitions:
.vector movement;
//cvar definitions:
//.movement vector contains the movement input from the player, allowing QC to do as it wishs with the input, and SV_PlayerPhysics will completely replace the player physics if present (works for all MOVETYPE's), see darkplaces mod source for example of this function (in playermovement.qc, adds HalfLife ladders support, as well as acceleration/deceleration while airborn (rather than the quake sudden-stop while airborn), and simplifies the physics a bit)
//DP_PHYSICS_ODE
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//globals:
//new movetypes:
const float MOVETYPE_PHYSICS = 32; // need to be set before any physics_* builtins applied
// for a force:
// force vector to apply
//field definitions:
-//DP_SV_DISABLECLIENTPREDICTION
-//idea: LordHavoc, Mario
-//darkplaces implementation: LordHavoc, Mario
-//field definitions:
-.float disableclientprediction;
-//description:
-//By default, player entities are enabled for prediction by the engine if the
-//engine assumes the client can sensibly predict them. As the NQ and DarkPlaces
-//protocol does not network movetype, this in particular allows for client
-//prediction only if movetype == MOVETYPE_WALK.
-//Setting this field to 1 disables prediction in any case - this is useful when
-//the client cannot sensibly predict the server's idea of how the player moves
-//(common in case of pure serverside grappling hook or jetpack
-//implementations).
-//Setting this field to -1 forces prediction even if the server assumes the
-//client cannot predict the current movetype of a player entity (obviously,
-//this then requires matching client-side prediction code in CSQC, as the
-//engine's own client prediction will sure not handle these cases right due to
-//not knowing the serverside value of movetype). This is allowed in combination
-//with the following movetypes:
-// MOVETYPE_NONE (useful to have full QC control over movement)
-// MOVETYPE_WALK (redundant but harmless)
-// MOVETYPE_STEP
-// MOVETYPE_FLY (useful for spectators)
-// MOVETYPE_TOSS
-// MOVETYPE_NOCLIP (useful for spectators)
-// MOVETYPE_FLYMISSILE
-// MOVETYPE_BOUNCE
-// MOVETYPE_BOUNCEMISSILE
-// MOVETYPE_FLY_WORLDONLY (useful for spectators)
-
.float geomtype; // see GEOMTYPE_*, a more correct way to set collision shape, allows to set SOLID_CORPSE and trimesh collisions
.float maxcontacts; // maximum number of contacts to make for this object, lesser = faster (but setting it too low will could make object pass though walls), default is 16, maximum is 32
.float mass; // ODE mass, standart value is 1
//DP_SV_PRINT
//idea: id Software (QuakeWorld Server)
-//darkplaces implementation: Black, LordHavoc
+//darkplaces implementation: Black, LadyHavoc
void(string s, ...) print = #339; // same number as in EXT_CSQC
//description:
//this is identical to dprint except that it always prints regardless of the developer cvar.
//DP_SV_PRECACHEANYTIME
//idea: id Software (Quake2)
-//darkplaces implementation: LordHavoc
+//darkplaces implementation: LadyHavoc
//description:
//this extension allows precache_model and precache_sound (and any variants) to be used during the game (with automatic messages to clients to precache the new model/sound indices), also setmodel/sound/ambientsound can be called without precaching first (they will cause an automatic precache).
//DP_SV_ROTATINGBMODEL
//idea: id Software
-//darkplaces implementation: LordHavoc
+//darkplaces implementation: LadyHavoc
//description:
//this extension merely indicates that MOVETYPE_PUSH supports avelocity, allowing rotating brush models to be created, they rotate around their origin (needs rotation supporting qbsp/light utilities because id ones expected bmodel entity origins to be '0 0 0', recommend setting "origin" key in the entity fields in the map before compiling, there may be other methods depending on your qbsp, most are more complicated however).
//tip: level designers can create a func_wall with an origin, and avelocity (for example "avelocity" "0 90 0"), and "nextthink" "99999999" to make a rotating bmodel without any qc modifications, such entities will be solid in stock quake but will not rotate)
//DP_SV_SETCOLOR
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
void(entity ent, float colors) setcolor = #401;
//engine called QC functions (optional):
//the color format is pants + shirt * 16 (0-255 potentially)
//DP_SV_SLOWMO
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//cvars:
//"slowmo" (0+, default 1)
//description:
void(float to, string s) WriteUnterminatedString = #456;
//description:
//like WriteString, but does not write a terminating 0 after the string. This means you can include things like a player's netname in the middle of a string sent over the network. Just be sure to end it up with either a call to WriteString (which includes the trailing 0) or WriteByte(0) to terminate it yourself.
-//A historical note: this extension was suggested by FrikaC years ago, more recently Shadowalker has been badmouthing LordHavoc and Spike for stealing 'his' extension writestring2 which does exactly the same thing but uses a different builtin number and name and extension string, this argument hinges on the idea that it was his idea in the first place, which is incorrect as FrikaC first suggested it and used a rough equivalent of it in his FrikBot mod years ago involving WriteByte calls on each character.
+//A historical note: this extension was suggested by FrikaC years ago, more recently Shadowalker has been badmouthing LadyHavoc and Spike for stealing 'his' extension writestring2 which does exactly the same thing but uses a different builtin number and name and extension string, this argument hinges on the idea that it was his idea in the first place, which is incorrect as FrikaC first suggested it and used a rough equivalent of it in his FrikBot mod years ago involving WriteByte calls on each character.
//DP_TE_BLOOD
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
void(vector org, vector velocity, float howmany) te_blood = #405;
//temp entity definitions:
//creates a blood effect.
//DP_TE_BLOODSHOWER
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
void(vector mincorner, vector maxcorner, float explosionspeed, float howmany) te_bloodshower = #406;
//temp entity definitions:
//creates an exploding shower of blood, for making gibbings more convincing.
//DP_TE_CUSTOMFLASH
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
void(vector org, float radius, float lifetime, vector color) te_customflash = #417;
//temp entity definitions:
//creates a customized light flash.
//DP_TE_EXPLOSIONRGB
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
void(vector org, vector color) te_explosionrgb = #407;
//temp entity definitions:
//creates a colored explosion effect.
//DP_TE_FLAMEJET
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
void(vector org, vector vel, float howmany) te_flamejet = #457;
//temp entity definitions:
//creates a single puff of flame particles. (not very useful really)
//DP_TE_PARTICLECUBE
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
void(vector mincorner, vector maxcorner, vector vel, float howmany, float color, float gravityflag, float randomveljitter) te_particlecube = #408;
//temp entity definitions:
//creates a cloud of particles, useful for forcefields but quite customizable.
//DP_TE_PARTICLERAIN
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
void(vector mincorner, vector maxcorner, vector vel, float howmany, float color) te_particlerain = #409;
//temp entity definitions:
//creates a shower of rain, the rain will appear either at the top (if falling down) or bottom (if falling up) of the cube.
//DP_TE_PARTICLESNOW
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
void(vector mincorner, vector maxcorner, vector vel, float howmany, float color) te_particlesnow = #410;
//temp entity definitions:
//creates a shower of snow, the snow will appear either at the top (if falling down) or bottom (if falling up) of the cube, low velocities are advisable for convincing snow.
//DP_TE_PLASMABURN
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
void(vector org) te_plasmaburn = #433;
//temp entity definitions:
//creates a small light flash (radius 200, time 0.2) and marks the walls.
//DP_TE_QUADEFFECTS1
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
void(vector org) te_gunshotquad = #412;
void(vector org) te_spikequad = #413;
//all of these just take a location, and are equivalent in function (but not appearance :) to the original TE_GUNSHOT, etc.
//DP_TE_SMALLFLASH
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
void(vector org) te_smallflash = #416;
//temp entity definitions:
//creates a small light flash (radius 200, time 0.2).
//DP_TE_SPARK
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
void(vector org, vector vel, float howmany) te_spark = #411;
//temp entity definitions:
//creates a shower of sparks and a smoke puff.
//DP_TE_STANDARDEFFECTBUILTINS
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
void(vector org) te_gunshot = #418;
void(vector org) te_spike = #419;
//to make life easier on mod coders.
//DP_TRACE_HITCONTENTSMASK_SURFACEINFO
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//globals:
.float dphitcontentsmask; // if non-zero on the entity passed to traceline/tracebox/tracetoss this will override the normal collidable contents rules and instead hit these contents values (for example AI can use tracelines that hit DONOTENTER if it wants to, by simply changing this field on the entity passed to traceline), this affects normal movement as well as trace calls
float trace_dpstartcontents; // DPCONTENTS_ value at start position of trace
//little information in the trace_ variables as it was not moving at the time)
//DP_VIEWZOOM
-//idea: LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: LadyHavoc
+//darkplaces implementation: LadyHavoc
//field definitions:
.float viewzoom;
//description:
//FRIK_FILE
//idea: FrikaC
-//darkplaces implementation: LordHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
float(string s) stof = #81; // get numerical value from a string
float(string filename, float mode) fopen = #110; // opens a file inside quake/gamedir/data/ (mode is FILE_READ, FILE_APPEND, or FILE_WRITE), returns fhandle >= 0 if successful, or fhandle < 0 if unable to open file for any reason
//NOTE: substring is upgraded by FTE_STRINGS extension with negative start/length handling identical to php 5.2.0
//FTE_CSQC_SKELETONOBJECTS
-//idea: Spike, LordHavoc
-//darkplaces implementation: LordHavoc
+//idea: Spike, LadyHavoc
+//darkplaces implementation: LadyHavoc
//builtin definitions:
// all skeleton numbers are 1-based (0 being no skeleton)
// all bone numbers are 1-based (0 being invalid)
//KRIMZON_SV_PARSECLIENTCOMMAND
//idea: KrimZon
-//darkplaces implementation: KrimZon, LordHavoc
+//darkplaces implementation: KrimZon, LadyHavoc
//engine-called QC prototypes:
//void(string s) SV_ParseClientCommand;
//builtin definitions:
//NEH_CMD_PLAY2
//idea: Nehahra
-//darkplaces implementation: LordHavoc
+//darkplaces implementation: LadyHavoc
//description:
//shows that the engine supports the "play2" console command (plays a sound without spatialization).
//NEH_RESTOREGAME
//idea: Nehahra
-//darkplaces implementation: LordHavoc
+//darkplaces implementation: LadyHavoc
//engine-called QC prototypes:
//void() RestoreGame;
//description:
//NXQ_GFX_LETTERBOX
//idea: nxQuake
-//darkplaces implementation: LordHavoc
+//darkplaces implementation: LadyHavoc
//description:
//shows that the engine supports the "r_letterbox" console variable, set to values in the range 0-100 this restricts the view vertically (and turns off sbar and crosshair), value is a 0-100 percentage of how much to constrict the view, <=0 = normal view height, 25 = 75% of normal view height, 50 = 50%, 75 = 25%, >=100 = no view
//PRYDON_CLIENTCURSOR
//idea: FrikaC
-//darkplaces implementation: LordHavoc
+//darkplaces implementation: LadyHavoc
//effects bit:
float EF_SELECTABLE = 16384; // allows cursor to highlight entity (brighten)
//field definitions:
//TENEBRAE_GFX_DLIGHTS
//idea: Tenebrae
-//darkplaces implementation: LordHavoc
+//darkplaces implementation: LadyHavoc
//fields:
.float light_lev; // radius (does not affect brightness), typical value 350
.vector color; // color (does not affect radius), typical value '1 1 1' (bright white), can be up to '255 255 255' (nuclear blast)
//TW_SV_STEPCONTROL
//idea: Transfusion
-//darkplaces implementation: LordHavoc
+//darkplaces implementation: LadyHavoc
//cvars:
//sv_jumpstep (0/1, default 1)
//sv_stepheight (default 18)
//DP_QC_STRINGBUFFERS
//idea: ??
-//darkplaces implementation: LordHavoc
+//darkplaces implementation: LadyHavoc
//functions to manage string buffer objects - that is, arbitrary length string arrays that are handled by the engine
float() buf_create = #460;
void(float bufhandle) buf_del = #461;
float MOVETYPE_USER_LAST = 191;
//description:
//user defined movetypes can be added between the start and end points, without producing unknown movetype warnings
+
+//DP_RM_CLIPGROUP
+//idea: Akari
+//darkplaces implementation: Akari
+//field definitions:
+.float clipgroup;
+//description:
+//If two entities have this field set to the same non-zero integer value, they won't collide with each other.
+
+//idea: eukara
+//darkplaces implementation: Cloudwalk
+// Do NOT use in production yet.
+string __fullspawndata;
+//description:
+// http://icculus.org/finger/marco?date=2019-01-25&time=05-38-02
+
+//DP_QC_FS_SEARCH_PACKFILE
+//idea: Mario
+//darkplaces implementation: Mario
+//builtin definitions:
+float(string pattern, float caseinsensitive, float quiet, string packfile) search_packfile_begin = #444;
+//description:
+//extension to search_begin (DP_QC_FS_SEARCH), performs a filename search with the specified pattern (for example "maps/*.bsp") and stores the results in a search slot (minimum of 128 supported by any engine with this extension), the other functions take this returned search slot number, be sure to search_free when done (they are also freed on progs reload).
+//only searches for files within the specified packfile, which is expected to match the results of whichpack().
float K_MOUSE14 = 527;
float K_MOUSE15 = 528;
float K_MOUSE16 = 529;
+
float drawcolorcodedstring(vector position, string text, vector scale, float alpha, float flag) = #467;
vector drawcolorcodedstring2(vector position, string text, vector scale, vector rgb, float alpha, float flag) = #467;
-
+
float drawpic(vector position, string pic, vector size, vector rgb, float alpha, float flag) = #456;
float drawfill(vector position, vector size, vector rgb, float alpha, float flag) = #457;
//DP_QC_STRINGBUFFERS
//idea: ??
-//darkplaces implementation: LordHavoc
+//darkplaces implementation: LadyHavoc
//functions to manage string buffer objects - that is, arbitrary length string arrays that are handled by the engine
float() buf_create = #440;
void(float bufhandle) buf_del = #441;
//DP_QC_STRING_CASE_FUNCTIONS
//idea: Dresk
-//darkplaces implementation: LordHavoc / Dresk
+//darkplaces implementation: LadyHavoc / Dresk
//builtin definitions:
string(string s) strtolower = #480; // returns the passed in string in pure lowercase form
string(string s) strtoupper = #481; // returns the passed in string in pure uppercase form
//function definitions:
void coverage() = #642; // Reports a coverage event. The engine counts for each of the calls to this builtin whether it has been called.
+//DP_QC_FS_SEARCH_PACKFILE
+//idea: Mario
+//darkplaces implementation: Mario
+//builtin definitions:
+float(string pattern, float caseinsensitive, float quiet, string packfile) search_packfile_begin = #444;
+//description:
+//extension to search_begin (DP_QC_FS_SEARCH), performs a filename search with the specified pattern (for example "maps/*.bsp") and stores the results in a search slot (minimum of 128 supported by any engine with this extension), the other functions take this returned search slot number, be sure to search_free when done (they are also freed on progs reload).
+//only searches for files within the specified packfile, which is expected to match the results of whichpack().
+
// assorted undocumented extensions
string(string, float) netaddress_resolve = #625;
string(string search, string replace, string subject) strreplace = #484;
+string(string search, string replace, string subject) strireplace = #485;
string(float uselocaltime, string format, ...) strftime = #478;
float(string s) tokenize_console = #514;
float(float i) argv_start_index = #515;
// #5 was removed
void() break_to_debugger = #6;
float() random = #7; // returns 0 - 1
-void(entity e, float chan, string samp, float vol, float atten) sound = #8;
+void(entity e, float chan, string samp, float volume, ...) sound = #8;
vector(vector v) normalize = #9;
void(string e, ...) error = #10;
void(string e, ...) objerror = #11;
#ifdef GAMEQC
SELFWRAP(blocked, void, (), (entity this, entity blocker), (this, other))
#define setblocked(e, f) SELFWRAP_SET(blocked, e, f)
-#define blocked stopusingthis
+#define getblocked(e) SELFWRAP_GET(blocked, e)
#endif
SELFWRAP(predraw, void, (), (entity this), (this))
e.addValue(e, _("Fast ADSL"), "40000");
e.addValue(e, _("Broadband"), "66666");
e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Server queries/s:")));
- me.TD(me, 1, 2, e = makeXonoticSlider(20, 100, 10, "net_slist_queriespersecond"));
me.TR(me);
me.TR(me);
me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Downloads:")));
e.addValue(e, ZCTX(_("DF^All")), "2");
e.configureXonoticTextSliderValues(e);
me.TR(me);
+ if(cvar_type("gl_vbo") & CVAR_TYPEFLAG_ENGINE)
+ {
me.TD(me, 1, 3, e = makeXonoticTextLabel(0, _("Vertex Buffer Objects (VBOs)")));
me.TR(me);
me.TDempty(me, 0.2);
_("Make use of Vertex Buffer Objects to store static geometry in video memory for faster rendering")));
me.TD(me, 1, 1.9, e = makeXonoticRadioButton_T(1, "gl_vbo", "1", _("Vertices and Triangles"),
_("Make use of Vertex Buffer Objects to store static geometry in video memory for faster rendering")));
+ }
me.gotoRC(me, 0, 3.2); me.setFirstColumn(me, me.currentColumn);
me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Brightness:")));
me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "gl_finish", _("Wait for GPU to finish each frame"),
_("Make the CPU wait for the GPU to finish each frame, can help with some strange input or video lag on some machines")));
me.TR(me);
+ if(cvar_type("vid_gl20") & CVAR_TYPEFLAG_ENGINE)
+ {
me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "vid_gl20", _("Use OpenGL 2.0 shaders (GLSL)")));
e.applyButton = videoApplyButton;
+ }
if(cvar("developer") > 0)
{
me.TR(me);
+++ /dev/null
-void LOG_TRACE(string s, ...) = #25;
-string ftos(float f) = #26;
-string vtos(vector v) = #27;
-void error(string e) = #10;
-float test();
-
-spawnfunc(worldspawn)
-{
- float r;
- LOG_TRACE("TESTCASE: START");
- r = test();
- if(r == 1)
- error("TESTCASE: PASS");
- else if(r == 0)
- error("TESTCASE: FAIL");
- else
- error("TESTCASE: INVALID");
-}
+++ /dev/null
-../../progs-testcase.dat
-../server/sys.qh
-framework.qc
-testcase.qc
+++ /dev/null
-#!/bin/sh
-
-if [ "$#" -lt 3 ]; then
- echo "Usage: $0 'float test() { if(fail) return 0; else if(good) return 1; else return -1; }' ./darkplaces-dedicated basement +sv_cheats 1"
- exit 125
-fi
-
-case "$0" in
- */*)
- dir=${0%/*}
- ;;
- *)
- dir=`pwd`
- ;;
-esac
-testcase=$1; shift
-engine=$1; shift
-map=$1; shift
-echo "$testcase" > "$dir/testcase.qc"
-if ( cd $dir && fteqcc ); then
- set -- "$engine" -xonotic -basedir "$dir/../../.." +sv_progs progs-testcase.dat "$@" +map "$map"
- if [ -n "$GDB_ME" ]; then
- cmdfile=`mktemp`
- {
- echo "break VM_dprint"
- echo "run"
- echo "delete 1"
- echo "finish"
- } > "$cmdfile"
- gdb -x "$cmdfile" --args "$@"
- rm -f "$cmdfile"
- exit 0
- else
- r=`"$@" | tee /dev/stderr`
- fi
- case "$r" in
- *"TESTCASE: PASS"*)
- echo "PASS detected"
- exit 0
- ;;
- *"TESTCASE: FAIL"*)
- echo "FAIL detected"
- exit 1
- ;;
- *"TESTCASE: INVALID"*)
- echo "INVALID detected"
- exit 125
- ;;
- *)
- echo "Running failed"
- exit 125
- ;;
- esac
-else
- echo "Compilation failed"
- exit 125
-fi
#include <server/g_damage.qc>
#include <server/g_hook.qc>
#include <server/g_world.qc>
+#include <server/gamelog.qc>
#include <server/handicap.qc>
#include <server/impulse.qc>
#include <server/ipban.qc>
#include <server/g_damage.qh>
#include <server/g_hook.qh>
#include <server/g_world.qh>
+#include <server/gamelog.qh>
#include <server/handicap.qh>
#include <server/impulse.qh>
#include <server/ipban.qh>
#include "antilag.qh"
#include "autocvars.qh"
#include "defs.qh"
+#include <server/gamelog.qh>
#include "miscfunctions.qh"
#include "command/common.qh"
#include "clientkill.qh"
#include "cheats.qh"
#include "g_world.qh"
+#include <server/gamelog.qh>
#include "race.qh"
#include "antilag.qh"
#include "campaign.qh"
this.solid = SOLID_NOT;
this.takedamage = DAMAGE_NO;
set_movetype(this, MOVETYPE_NONE);
+ CS(this).teamkill_complain = 0;
+ CS(this).teamkill_soundtime = 0;
+ CS(this).teamkill_soundsource = NULL;
}
if (IS_PLAYER(this)) {
#include "vote.qh"
#include <server/defs.qh>
+#include <server/gamelog.qh>
#include <server/miscfunctions.qh>
#include <common/command/_mod.qh>
void ReadyRestart()
{
- if (MUTATOR_CALLHOOK(ReadyRestart_Deny) || game_stopped || race_completing) localcmd("restart\n");
+ if (MUTATOR_CALLHOOK(ReadyRestart_Deny) || intermission_running || race_completing) localcmd("restart\n");
else localcmd("\nsv_hook_readyrestart\n");
// Reset ALL scores, but only do that at the beginning of the countdown if sv_ready_restart_after_countdown is off!
#include <server/items.qh>
#include <server/resources.qh>
#include <common/t_items.qh>
+#include <common/gamemodes/gamemode/ctf/sv_ctf.qh>
#include <common/mapobjects/triggers.qh>
#include <common/mapobjects/trigger/counter.qh>
#include <common/mutators/mutator/buffs/buffs.qh>
gametypename = "team";
if(g_ctf)
gametypename = "ctf";
+ if(g_ctf && ctf_oneflag)
+ gametypename = "oneflag";
if(g_duel)
gametypename = "tournament";
if(maxclients == 1)
gametypename = "single";
- // we do not have the other types (oneflag, obelisk, harvester, teamtournament)
+ // we do not have the other types (obelisk, harvester, teamtournament)
if(strstrofs(this.gametype, gametypename, 0) < 0)
return true;
}
#include <common/effects/all.qh>
#include "bot/api.qh"
#include "g_hook.qh"
+#include <server/gamelog.qh>
#include <server/mutators/_mod.qh>
#include "teamplay.qh"
#include "scores.qh"
return true;
}
-bool frag_centermessage_override(entity attacker, entity targ, int deathtype, int kill_count_to_attacker, int kill_count_to_target)
+bool frag_centermessage_override(entity attacker, entity targ, int deathtype, int kill_count_to_attacker, int kill_count_to_target, string attacker_name)
{
if(deathtype == DEATH_FIRE.m_id)
{
Send_Notification(NOTIF_ONE, attacker, MSG_CHOICE, CHOICE_FRAG_FIRE, targ.netname, kill_count_to_attacker, (IS_BOT_CLIENT(targ) ? -1 : CS(targ).ping));
- Send_Notification(NOTIF_ONE, targ, MSG_CHOICE, CHOICE_FRAGGED_FIRE, attacker.netname, kill_count_to_target, GetResource(attacker, RES_HEALTH), GetResource(attacker, RES_ARMOR), (IS_BOT_CLIENT(attacker) ? -1 : CS(attacker).ping));
+ Send_Notification(NOTIF_ONE, targ, MSG_CHOICE, CHOICE_FRAGGED_FIRE, attacker_name, kill_count_to_target, GetResource(attacker, RES_HEALTH), GetResource(attacker, RES_ARMOR), (IS_BOT_CLIENT(attacker) ? -1 : CS(attacker).ping));
return true;
}
// Declarations
float notif_firstblood = false;
float kill_count_to_attacker, kill_count_to_target;
+ bool notif_anonymous = false;
+ string attacker_name = attacker.netname;
// Set final information for the death
targ.death_origin = targ.origin;
string deathlocation = (autocvar_notification_server_allows_location ? NearestLocation(targ.death_origin) : "");
+ // Abort now if a mutator requests it
+ if (MUTATOR_CALLHOOK(ClientObituary, inflictor, attacker, targ, deathtype, attacker.(weaponentity))) { CS(targ).killcount = 0; return; }
+ notif_anonymous = M_ARGV(5, bool);
+
+ if(notif_anonymous)
+ attacker_name = "Anonymous player";
+
#ifdef NOTIFICATIONS_DEBUG
Debug_Notification(
sprintf(
"Obituary(%s, %s, %s, %s = %d);\n",
- attacker.netname,
+ attacker_name,
inflictor.netname,
targ.netname,
Deathtype_Name(deathtype),
CS(attacker).killcount = 0;
Send_Notification(NOTIF_ONE, attacker, MSG_CENTER, CENTER_DEATH_TEAMKILL_FRAG, targ.netname);
- Send_Notification(NOTIF_ONE, targ, MSG_CENTER, CENTER_DEATH_TEAMKILL_FRAGGED, attacker.netname);
- Send_Notification(NOTIF_ALL, NULL, MSG_INFO, APP_TEAM_NUM(targ.team, INFO_DEATH_TEAMKILL), targ.netname, attacker.netname, deathlocation, CS(targ).killcount);
+ Send_Notification(NOTIF_ONE, targ, MSG_CENTER, CENTER_DEATH_TEAMKILL_FRAGGED, attacker_name);
+ Send_Notification(NOTIF_ALL, NULL, MSG_INFO, APP_TEAM_NUM(targ.team, INFO_DEATH_TEAMKILL), targ.netname, attacker_name, deathlocation, CS(targ).killcount);
// In this case, the death message will ALWAYS be "foo was betrayed by bar"
// No need for specific death/weapon messages...
targ,
MSG_CHOICE,
CHOICE_TYPEFRAGGED,
- attacker.netname,
+ attacker_name,
kill_count_to_target,
GetResource(attacker, RES_HEALTH),
GetResource(attacker, RES_ARMOR),
(IS_BOT_CLIENT(attacker) ? -1 : CS(attacker).ping)
);
}
- else if(!frag_centermessage_override(attacker, targ, deathtype, kill_count_to_attacker, kill_count_to_target))
+ else if(!frag_centermessage_override(attacker, targ, deathtype, kill_count_to_attacker, kill_count_to_target, attacker_name))
{
Send_Notification(
NOTIF_ONE,
targ,
MSG_CHOICE,
CHOICE_FRAGGED,
- attacker.netname,
+ attacker_name,
kill_count_to_target,
GetResource(attacker, RES_HEALTH),
GetResource(attacker, RES_ARMOR),
if(deathtype == DEATH_BUFF.m_id)
f3 = buff_FirstFromFlags(STAT(BUFFS, attacker)).m_id;
- if (!Obituary_WeaponDeath(targ, true, deathtype, targ.netname, attacker.netname, deathlocation, CS(targ).killcount, kill_count_to_attacker))
- Obituary_SpecialDeath(targ, true, deathtype, targ.netname, attacker.netname, deathlocation, CS(targ).killcount, kill_count_to_attacker, f3);
+ if (!Obituary_WeaponDeath(targ, true, deathtype, targ.netname, attacker_name, deathlocation, CS(targ).killcount, kill_count_to_attacker))
+ Obituary_SpecialDeath(targ, true, deathtype, targ.netname, attacker_name, deathlocation, CS(targ).killcount, kill_count_to_attacker, f3);
}
}
damage = 0;
else if(attacker != targ)
{
- if(autocvar_teamplay_mode == 3)
+ if(autocvar_teamplay_mode == 2)
+ {
+ if(IS_PLAYER(targ) && !IS_DEAD(targ))
+ {
+ attacker.dmg_team = attacker.dmg_team + damage;
+ complainteamdamage = attacker.dmg_team - autocvar_g_teamdamage_threshold;
+ }
+ }
+ else if(autocvar_teamplay_mode == 3)
damage = 0;
else if(autocvar_teamplay_mode == 4)
{
#include "command/sv_cmd.qh"
#include "command/vote.qh"
#include "g_hook.qh"
+#include <server/gamelog.qh>
#include "ipban.qh"
#include "mapvoting.qh"
#include <server/mutators/_mod.qh>
BADCVAR("g_ca");
BADCVAR("g_ca_teams");
BADCVAR("g_conquest");
+ BADCVAR("g_conquest_teams");
BADCVAR("g_ctf");
BADCVAR("g_cts");
BADCVAR("g_dotc");
BADCVAR("g_runematch");
BADCVAR("g_shootfromeye");
BADCVAR("g_snafu");
+ BADCVAR("g_survival");
+ BADCVAR("g_survival_not_dm_maps");
BADCVAR("g_tdm");
BADCVAR("g_tdm_on_dm_maps");
BADCVAR("g_tdm_teams");
BADCVAR("nextmap");
BADCVAR("teamplay");
BADCVAR("timelimit");
+ BADCVAR("g_mapinfo_settemp_acl");
BADCVAR("g_mapinfo_ignore_warnings");
BADCVAR("g_maplist_ignore_sizes");
BADCVAR("g_maplist_sizes_count_bots");
IL_EACH(g_moveables, true,
{
- if(IS_CLIENT(it) || it.classname == "" || it.move_movetype == MOVETYPE_PUSH || it.move_movetype == MOVETYPE_FAKEPUSH || it.move_movetype == MOVETYPE_PHYSICS)
+ if(IS_CLIENT(it) || it.classname == "" || it.move_movetype == MOVETYPE_PHYSICS)
continue;
//set_movetype(it, it.move_movetype);
// inline the set_movetype function, since this is called a lot
- it.movetype = (it.move_qcphysics) ? MOVETYPE_NONE : it.move_movetype;
+ it.movetype = (it.move_qcphysics) ? MOVETYPE_QCENTITY : it.move_movetype;
- if(it.move_movetype == MOVETYPE_NONE)
- continue;
-
- if(it.move_qcphysics)
+ if(it.move_qcphysics && it.move_movetype != MOVETYPE_NONE)
Movetype_Physics_NoMatchTicrate(it, PHYS_INPUT_TIMELENGTH, false);
if(it.movetype >= MOVETYPE_USER_FIRST && it.movetype <= MOVETYPE_USER_LAST) // these cases have no think handling
{
+ if(it.move_movetype == MOVETYPE_PUSH || it.move_movetype == MOVETYPE_FAKEPUSH)
+ continue; // these movetypes have no regular think function
// handle thinking here
if (getthink(it) && it.nextthink > 0 && it.nextthink <= time + frametime)
RunThink(it);
IL_EACH(g_moveables, it.move_qcphysics,
{
- if(IS_CLIENT(it) || is_pure(it) || it.classname == "" || it.move_movetype == MOVETYPE_NONE)
+ if(IS_CLIENT(it) || it.classname == "" || it.move_movetype == MOVETYPE_NONE)
continue;
Movetype_Physics_NoMatchTicrate(it, PHYS_INPUT_TIMELENGTH, false);
});
--- /dev/null
+#include "gamelog.qh"
+
+#include <server/autocvars.qh>
+#include <server/miscfunctions.qh>
+
+string GameLog_ProcessIP(string s)
+{
+ if(!autocvar_sv_eventlog_ipv6_delimiter)
+ return s;
+ return strreplace(":", "_", s);
+}
+
+void GameLogEcho(string s)
+{
+ if (autocvar_sv_eventlog_files)
+ {
+ if (!logfile_open)
+ {
+ logfile_open = true;
+ int matches = autocvar_sv_eventlog_files_counter + 1;
+ cvar_set("sv_eventlog_files_counter", itos(matches));
+ string fn = ftos(matches);
+ if (strlen(fn) < 8)
+ fn = strcat(substring("00000000", 0, 8 - strlen(fn)), fn);
+ fn = strcat(autocvar_sv_eventlog_files_nameprefix, fn, autocvar_sv_eventlog_files_namesuffix);
+ logfile = fopen(fn, FILE_APPEND);
+ fputs(logfile, ":logversion:3\n");
+ }
+ if (logfile >= 0)
+ {
+ if (autocvar_sv_eventlog_files_timestamps)
+ fputs(logfile, strcat(":time:", strftime(true, "%Y-%m-%d %H:%M:%S", "\n", s, "\n")));
+ else
+ fputs(logfile, strcat(s, "\n"));
+ }
+ }
+ if (autocvar_sv_eventlog_console)
+ {
+ dedicated_print(strcat(s, "\n"));
+ }
+}
+
+void GameLogInit()
+{
+ logfile_open = false;
+ // will be opened later
+}
+
+void GameLogClose()
+{
+ if (logfile_open && logfile >= 0)
+ {
+ fclose(logfile);
+ logfile = -1;
+ }
+}
--- /dev/null
+#pragma once
+
+bool logfile_open;
+float logfile;
+
+string GameLog_ProcessIP(string s);
+
+void GameLogEcho(string s);
+
+void GameLogInit();
+
+void GameLogClose();
bool Item_IsLoot(entity item)
{
- return item.m_isloot;
+ return item.m_isloot || item.classname == "droppedweapon";
}
void Item_SetLoot(entity item, bool loot)
#include "mapvoting.qh"
#include <server/defs.qh>
+#include <server/gamelog.qh>
#include <server/miscfunctions.qh>
#include "g_world.qh"
#include "command/cmd.qh"
#include "command/common.qh"
#include "constants.qh"
#include "g_hook.qh"
+#include <server/gamelog.qh>
#include "ipban.qh"
#include <server/mutators/_mod.qh>
#include "../common/t_items.qh"
if (server_is_dedicated) print(input);
}
-string GameLog_ProcessIP(string s)
-{
- if(!autocvar_sv_eventlog_ipv6_delimiter)
- return s;
- return strreplace(":", "_", s);
-}
-
-void GameLogEcho(string s)
-{
- string fn;
- int matches;
-
- if (autocvar_sv_eventlog_files)
- {
- if (!logfile_open)
- {
- logfile_open = true;
- matches = autocvar_sv_eventlog_files_counter + 1;
- cvar_set("sv_eventlog_files_counter", itos(matches));
- fn = ftos(matches);
- if (strlen(fn) < 8)
- fn = strcat(substring("00000000", 0, 8 - strlen(fn)), fn);
- fn = strcat(autocvar_sv_eventlog_files_nameprefix, fn, autocvar_sv_eventlog_files_namesuffix);
- logfile = fopen(fn, FILE_APPEND);
- fputs(logfile, ":logversion:3\n");
- }
- if (logfile >= 0)
- {
- if (autocvar_sv_eventlog_files_timestamps)
- fputs(logfile, strcat(":time:", strftime(true, "%Y-%m-%d %H:%M:%S", "\n", s, "\n")));
- else
- fputs(logfile, strcat(s, "\n"));
- }
- }
- if (autocvar_sv_eventlog_console)
- {
- dedicated_print(strcat(s, "\n"));
- }
-}
-
-void GameLogInit()
-{
- logfile_open = 0;
- // will be opened later
-}
-
-void GameLogClose()
-{
- if (logfile_open && logfile >= 0)
- {
- fclose(logfile);
- logfile = -1;
- }
-}
-
entity findnearest(vector point, bool checkitems, vector axismod)
{
vector dist;
/** print(), but only print if the server is not local */
void dedicated_print(string input);
-string GameLog_ProcessIP(string s);
-
-void GameLogEcho(string s);
-
-void GameLogInit();
-
-void GameLogClose();
-
void GetCvars(entity this, entity store, int f);
string GetMapname();
// copies a string to a tempstring (so one can strunzone it)
string strcat1(string s) = #115; // FRIK_FILE
-float logfile_open;
-float logfile;
-
/*
// NOTE: DO NOT USE THIS FUNCTION TOO OFTEN.
// IT WILL MOST PROBABLY DESTROY _ALL_ OTHER TEMP
/**/
MUTATOR_HOOKABLE(PlayerDied, EV_PlayerDied);
+/** called when showing an obituary for the player. return true to show nothing (workarounds may be needed) */
+#define EV_ClientObituary(i, o) \
+ /** inflictor */ i(entity, MUTATOR_ARGV_0_entity) \
+ /** attacker */ i(entity, MUTATOR_ARGV_1_entity) \
+ /** target */ i(entity, MUTATOR_ARGV_2_entity) \
+ /** deathtype */ i(float, MUTATOR_ARGV_3_float) \
+ /** wep entity */ i(entity, MUTATOR_ARGV_4_entity) \
+ /** anonymous killer*/ o(bool, MUTATOR_ARGV_5_bool) \
+ /**/
+MUTATOR_HOOKABLE(ClientObituary, EV_ClientObituary);
+
/** allows overriding the frag centerprint messages */
#define EV_FragCenterMessage(i, o) \
/** attacker */ i(entity, MUTATOR_ARGV_0_entity) \
#include "g_hook.qh"
#include "g_damage.qh"
#include "g_world.qh"
+#include <server/gamelog.qh>
#include "bot/api.qh"
#include "teamplay.qh"
#include "client.qh"
+#include <server/gamelog.qh>
#include "race.qh"
#include "scores.qh"
#include "scores_rules.qh"
+++ /dev/null
-cellammo\r
-{\r
- dpreflectcube cubemaps/default/sky\r
- dpoffsetmapping - 0.5 match8 128\r
- {\r
- map textures/items/cellammo\r
- rgbgen lightingDiffuse\r
- }\r
-}
\ No newline at end of file
--- /dev/null
+cellammo
+{
+ dpreflectcube cubemaps/default/sky
+ dpoffsetmapping - 0.5 match8 128
+ {
+ map textures/items/cellammo
+ rgbgen lightingDiffuse
+ }
+}
\ No newline at end of file
gl_polyblend 0 // whether to use screen tints, this has now been replaced by a better system in CSQC
r_motionblur 0 // motion blur value, default is 0
r_damageblur 0 // motion blur when damaged, default is 0 (removed in Xonotic)
+net_slist_queriespersecond 60 // to be reduced if any major issues arise (ping times increased etc.)
r_bloom_blur 4
r_bloom_brighten 2
seta cl_projectiles_sloppy 1 "sloppy projectiles, may temporarily penetrate walls"
cl_stainmaps 0
cl_particles_smoke 1
-vid_gl20 1
+set vid_gl20 1
+set gl_vbo 3
r_glsl_deluxemapping 1
r_glsl_offsetmapping 0
r_glsl_offsetmapping_lod 1
sv_gameplayfix_q2airaccelerate 1
sv_gameplayfix_stepmultipletimes 1
sv_gameplayfix_stepdown 2
+sv_gameplayfix_unstickplayers 2
// only available in qc physics
set sv_gameplayfix_stepdown_maxspeed 0 "maximum speed walking entities can be moving for stepping down to apply - requires sv_qcphysics 1"