51 Commits

Author SHA1 Message Date
475b1cdc29 fix gcc 12.1 compilation 2022-07-10 15:25:45 +00:00
e5c519cf07 update sqlite to version 3.39.0 2022-07-10 15:24:46 +00:00
df6b589ba1 nextmap.sma - Fix mp_chattime getting increased on quick map change (#1044) 2022-06-30 23:16:05 -07:00
fde732f66d Update trie_natives.cpp (#1052)
"Invalid map handle provided (%d)" error is very unclear when it appears in complex code.
2022-06-16 18:47:08 -07:00
49a8b959b3 Update newmenus.inc (#1043) 2022-04-05 00:32:55 -07:00
ec82e3f34c now amxmodx can use std (#1026) 2021-12-06 10:38:46 -08:00
8ee3da24cb Added new debug feature: Performance Monitor. (#1019)
* Performance Monitor.

Search big performance issues for any plugin that in debug mode. No server slow down.
Output is plugin and function name, and server execution lag in ms. Output target: current amxlog file.

* Adding cvar to enable perflog. Force for all plugin if amx_debug is 2.

* Update cvar name

* Use another clock from chrono

* Fix debug check

* Skip internal amxx exec

* Move includes

* Fix debug check in amx_ExecPerf

* Tried to compile without min/max undefined
2021-12-05 18:38:49 -08:00
6e8554d1d2 Fix ConfigsExecutedForward (my mistake) (#1024)
* Fix one big issue what broken all plugins!

If found any config from servercmd, m_ConfigsExecutedForward not called !!!!!!!
If m_ConfigsExecutedForward  not called, this is broke all plugins where used m_ConfigsExecutedForward (example restmenu)

Revert "Fix one big issue what broken all plugins!"

This reverts commit 6ce36f22e1c278f0831ebbddbc1dbbceb91dacb9.

* Fix m_ConfigsExecutedForward after my missprint from previous pr

Fix my missprint from previous pull request 275be8b0a8
2021-12-04 12:04:08 -08:00
275be8b0a8 Fix one big issue what broken all plugins! (#1022)
If found any config from servercmd, m_ConfigsExecutedForward not called !!!!!!!
If m_ConfigsExecutedForward  not called, this is broke all plugins where used m_ConfigsExecutedForward (example restmenu)
2021-12-03 15:07:59 -08:00
f8ac58c839 Fix some misprints and mistakes in code, part 2 (#1021)
* Fix compiler warnings about broken syntax

Revert "Fix compiler warnings about broken syntax"

This reverts commit cd0649806feaab064e93a0fbcd1f4488747f9b79.

Unbreak code

* Unbreak code

* Stop breaking code, please

* Small real unused check

* Fix "breaked" code and fix MAX_WEAPONS misprints

* Compiler break in debug mode if passing upper case strings
2021-12-02 21:24:15 -08:00
e8909c1583 Fixed value check in json_object_set_value (#1015)
Regression from #983
2021-12-02 19:32:04 -08:00
3cda059669 Fix some errors (#1020)
Fix some critical errors
2021-12-02 13:47:57 -08:00
5dcda02b65 [Build] Implement CI for MacOS via appveyor (#1013) 2021-10-24 17:22:56 -07:00
e6d9d9b71c Update stats.sma (#1001)
Triggered the "Invalid weapon id" at another location in the source code, so patched all cases where the argument could be 0.
2021-10-07 17:12:37 -07:00
2563bf6c26 Updated get_user_flags documentation (#1007) 2021-10-07 17:12:04 -07:00
c61735130d [Build] Fix latest MSVC and CLang compiler errors (#1008)
* Explicit cast specification

* Explicit cast specification

* Suppress -Wno-tautological-compare in Clang 10 and above

https://reviews.llvm.org/rG8b0d14a8f0cc085afa2a9c86c237da81c74517fc

* Explicit cast specification

* Add HAVE_STDINT_H compiler flag

* Explicit casting mechanism type specification

* typo
2021-10-07 17:11:49 -07:00
cac80584a0 Setup Github Actions (#1003) 2021-10-05 23:39:38 -07:00
3eefe5562e [Build] Migrate to Python3 (#1000)
* Configure Travis build env for Py3

Using default available version of 3.6.3 in `xenial` dist

* Migrate to py3

* Fix documentation
2021-09-28 11:41:04 -07:00
c317dc55c7 Update stats.sma (#997)
Fix runtime error when a player "killed self with teledeath". Happens when a map hasn't enough spawn points.
2021-09-28 09:56:21 -07:00
8fefd48af2 Create FUNDING.yml and add a ❤️Sponser button (#994) 2021-09-23 10:12:43 -07:00
f37f9d1c66 Fix gcc 9.2 compilation. (#835)
Fix gcc 9.2 compilation.
2021-09-22 17:01:35 -07:00
8413946ace Minor German Language Update (#926)
* Update admincmd.txt

* Update statsx.txt

* Update miscstats.txt

* Update menufront.txt

* Update menufront.txt

* Update admincmd.txt

* Update adminvote.txt

* Update restmenu.txt

* Update mapsmenu.txt

* Update nextmap.txt

* Update stats_dod.txt

* Update statscfg.txt

* Update stats_dod.txt

* Update adminvote.txt
2021-09-17 13:22:30 +02:00
be9ccc42eb European Portuguese Language translation fixes (#902)
* European Portuguese translation fix: admin.txt

* European Portuguese translation fix: admincmd.txt

* Added European Portuguese translation: adminslots.txt

Added new translations

* European Portuguese translation fix: common.txt

* European Portuguese translation fix: menufront.txt

* European Portuguese translation fix: miscstats.txt

* European Portuguese translation fix: pausecfg.txt

* European Portuguese translation fix: restmenu.txt

* European Portuguese translation fix: statscfg.txt
2021-09-17 13:12:46 +02:00
fb7ab6d08d Add missing kRenderFx constant (#928)
* Add missing kRenderFx constant

* Change constant name to match SDK
2021-09-17 13:11:17 +02:00
01e60834fa Use precache_generic() for sounds that are played client-side (#934) 2021-09-17 13:10:46 +02:00
3289b3c63c Update parson and fix json_object_set_value (#983)
* Remove parson folder

* add submodule parson

* FIX amxx_json_object_set_value generate a crash if invalid value is passed

* restore parson folder status
2021-09-17 13:06:54 +02:00
e17d37abe3 [FEATURE REQUEST] set_hudmessage add missing parameters (#992)
Same as https://github.com/alliedmodders/amxmodx/pull/981

Co-Authored-By: Franco Romaniello <romax.cs@gmail.com>

Co-authored-by: Franco Romaniello <romax.cs@gmail.com>
2021-09-17 13:05:28 +02:00
51c3f1b195 Fix typo in message_const.inc TE_FIZZ comment (#990) 2021-09-17 13:03:37 +02:00
2c8be75057 [TFCX] Fix Medic infection Crash on Linux (#991)
* [TFCX] Fix Medic infection Crash on Linux

Issue: #988

* [TFCX] Removed redundant code

- Added `_DEBUG_TFCX` preprocessor directive
- Deleted redundant code (which fetches pdata)
2021-09-17 12:59:54 +02:00
10db2e5c85 Revert "Update CMisc.h (#984)" (#986)
Turned out both test servers still had an old "tfc_i386.so" file which took precedence over the newer "tfc.so" library, so both servers were misconfigured and that's why the offsets didn't work.
2021-09-02 11:51:50 -07:00
05f86f05c0 Update CMisc.h (#984)
LINUXOFFSET is back at 3 since HLDS Linux build 8308 (dated July 24, 2019).
2021-08-26 22:28:01 -07:00
36d5aa97b1 Add missing set_task_* callback info (#952) 2021-08-07 17:31:18 +02:00
b8c490b5e6 Fix newmenus.inc documentation (#942) 2021-08-07 17:30:07 +02:00
301701b1da Fix typo in admincmd.txt (#951)
slaped => slapped

Let's just ignore the fact that the key is misspelled too.
2021-08-07 17:29:11 +02:00
5b1b844184 Fix incorrect uses of feof() (#957)
Using feof() as the while loop condition for detecting the end of the file is incorrect.
2021-08-07 17:28:35 +02:00
6c9c37eb45 Fixed Romanian translation, and added diacritics (#974) 2021-08-07 17:20:50 +02:00
d88b7e3c98 Change default chat time to 0.0 (#977) 2021-08-07 17:19:38 +02:00
6b9d82fa60 Add TIME_ELEMENT_* Romanian language keys in time.txt (#971) 2021-07-26 10:45:55 +02:00
08494d0d66 macOS build fix. 2021-07-11 22:14:16 -07:00
97b03ea567 Another macOS build fix. 2021-07-11 22:10:02 -07:00
344fb3d410 Fix mac build. 2021-07-11 22:08:37 -07:00
37cbccef6a Quell warning on macOS. 2021-07-11 22:08:36 -07:00
7fb6440ce9 Update minimum macOS to 10.7. 2021-07-11 20:55:09 -07:00
1a1b16614a Switch to libc++ on mac. 2021-07-11 20:51:19 -07:00
af32a9790b Switch to Python3 for bootstrapping. 2021-07-11 17:30:38 -07:00
2e5e3ce060 Add month and year support to get_time_length() (#969)
* Add RU

* Add EN

* Add DE

* Add SR

* Add BP

* Add HU

* Add SECONDS_IN_MONTH & timeunit_months

* Add months for API description

* Add SECONDS_IN_YEAR & timeunit_years

* fix typo

* Add FR
2021-07-01 10:51:24 +02:00
c58daeafca Fix stock "SQL_QueryAndIgnore" documentation (#965) 2021-06-19 10:38:25 +02:00
7fef58c374 Fix for loop index out of bounds error (#966)
Fixes an index out of bounds error when refreshMenus() and subsequently findAdminsWithMenu() is called when there is 32 players in the server. Indexing the playersList array in the for loop condition causes it to try to index with a value of 32 on the very last condition check which is not valid for this array.
2021-06-19 10:36:56 +02:00
3c1856f7af Add ignore for amxx binaries (#960) 2021-05-06 20:40:48 -07:00
9fbf91ded0 Fixed a typo in open_dir native (#955)
dir[] parameter is not const, but it never changes.
2021-03-25 10:04:00 -07:00
3d517d69e2 Revert "Update meta_api.cpp (#883)" (#950)
This reverts commit 7cb045c688.
2021-03-12 18:36:40 +01:00
117 changed files with 63353 additions and 31384 deletions

12
.github/FUNDING.yml vendored Normal file
View File

@ -0,0 +1,12 @@
# These are supported funding model platforms
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: https://www.sourcemod.net/donate.php

137
.github/workflows/ci.yml vendored Normal file
View File

@ -0,0 +1,137 @@
name: Continuous Integration
on:
workflow_dispatch:
push:
branches:
- master
- 1.9-dev
pull_request:
branches:
- master
- 1.9-dev
jobs:
test:
strategy:
matrix:
include:
- os: ubuntu-latest
os_short: linux
compiler_cc: gcc
compiler_cxx: g++
- os: ubuntu-latest
os_short: linux
compiler_cc: clang
compiler_cxx: clang++
- os: ubuntu-18.04
os_short: linux
compiler_cc: clang-3.9
compiler_cxx: clang++-3.9
- os: ubuntu-18.04
os_short: linux
compiler_cc: gcc-6
compiler_cxx: g++-6
compiler_install: 'g++6 g++-6-multilib'
- os: windows-latest
os_short: windows
compiler_cc: msvc
- os: windows-2016
os_short: windows
compiler_cc: msvc++14.16-vs2017-cl
# MacOS 32 Bins seem not supported
# - os: macos-latest
# os_short: mac
# compiler_cc: clang
# compiler_cxx: clang++
fail-fast: false
runs-on: ${{ matrix.os }}
name: ${{ matrix.os_short }}-${{ matrix.os }}-${{ matrix.compiler_cc }}
env:
DEPENDENCIES_FOLDER: dependencies
DEPENDENCIES_ROOT: ${{ github.workspace }}/dependencies
DEPENDENCIES_ROOT_WIN: ${{ github.workspace }}\dependencies
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
path: amxmodx
# Setup Python for AMBuild
- uses: actions/setup-python@v2
name: Setup Python 3.8
with:
python-version: 3.8
- name: Install Python dependencies
run: |
python3 -m pip install --upgrade pip setuptools wheel
python3 --version
- name: Install AMXModX dependencies (Linux)
if: startsWith(runner.os, 'Linux') || startsWith(runner.os, 'macOS')
shell: bash
run: |
mkdir -p ${{ env.DEPENDENCIES_FOLDER }}
cd ${{ env.DEPENDENCIES_FOLDER }}
# Satisfy checkout-deps requirement for a "amxmodx" folder.
mkdir -p amxmodx
../amxmodx/support/checkout-deps.sh
- name: Install AMXModX dependencies (Windows)
if: startsWith(runner.os, 'Windows')
shell: cmd
run: |
mkdir %DEPENDENCIES_ROOT_WIN%\nasm
curl -L -o "%DEPENDENCIES_ROOT_WIN%\nasm\nasm.zip" https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/win32/nasm-2.13.03-win32.zip
chdir %DEPENDENCIES_ROOT_WIN%\nasm
7z x nasm.zip
chdir %DEPENDENCIES_ROOT_WIN%
git clone https://github.com/alliedmodders/ambuild
git clone https://github.com/alliedmodders/metamod-hl1 metamod-am
git clone https://github.com/alliedmodders/hlsdk
curl -L -o "mysql-connector-c-6.1.1-win32.zip" https://downloads.mysql.com/archives/get/p/19/file/mysql-connector-c-6.1.1-win32.zip
7z x mysql-connector-c-6.1.1-win32.zip -o"mysql"
cd mysql
dir
ren mysql-connector-c-6.1.1-win32 mysql-5.5
move /Y mysql-5.5 ..\
cd ..\ambuild
python3 setup.py install
- name: Install Linux dependencies
if: startsWith(runner.os, 'Linux')
run: |
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
gcc-multilib g++-multilib libstdc++6 lib32stdc++6 \
libc6-dev libc6-dev-i386 linux-libc-dev \
linux-libc-dev:i386 lib32z1-dev nasm ${{ matrix.compiler_cc }} ${{ matrix.compiler_install }}
- name: Select compiler
if: startsWith(runner.os, 'Linux')
run: |
echo "CC=${{ matrix.compiler_cc }}" >> $GITHUB_ENV
echo "CXX=${{ matrix.compiler_cxx }}" >> $GITHUB_ENV
${{ matrix.compiler_cc }} --version
${{ matrix.compiler_cxx }} --version
- uses: ilammy/setup-nasm@v1
- name: Build Linux/macOS
if: startsWith(runner.os, 'Linux') || startsWith(runner.os, 'macOS')
working-directory: amxmodx
run: |
mkdir build
cd build
python3 ../configure.py --enable-optimize --metamod=${{ env.DEPENDENCIES_ROOT }}/metamod-am --hlsdk=${{ env.DEPENDENCIES_ROOT }}/hlsdk --mysql=${{ env.DEPENDENCIES_ROOT }}/mysql-5.5
ambuild
- uses: ilammy/msvc-dev-cmd@v1
with:
arch: x86
- name: Build Windows
if: startsWith(runner.os, 'Windows')
working-directory: amxmodx
shell: cmd
run: |
cl.exe
mkdir build
cd build
python3 ../configure.py --enable-optimize --metamod=${{ env.DEPENDENCIES_ROOT_WIN }}\metamod-am --hlsdk=${{ env.DEPENDENCIES_ROOT_WIN }}\hlsdk --mysql=${{ env.DEPENDENCIES_ROOT_WIN }}\mysql-5.5
ambuild

2
.gitignore vendored
View File

@ -84,5 +84,7 @@ Thumbs.db
# AMXX plugin build related files
plugins/compile.dat
plugins/compiled/
*.amx
*.amxx
build_deps/

View File

@ -16,6 +16,9 @@ language: cpp
sudo: false
compiler:
- clang
install:
- pyenv install 3.6.3
- pyenv global 3.6.3
before_script:
- CHECKOUT_DIR=$PWD && cd ..
- chmod a+x $CHECKOUT_DIR/support/checkout-deps.sh
@ -23,5 +26,5 @@ before_script:
script:
- mkdir build && cd build
- PATH="~/.local/bin:$PATH"
- CC=clang-3.7 CXX=clang-3.7 python ../configure.py --enable-optimize
- CC=clang-3.7 CXX=clang-3.7 python3 ../configure.py --enable-optimize
- ambuild

View File

@ -225,8 +225,19 @@ class AMXXConfig(object):
cxx.cxxflags += ['-Wno-delete-non-virtual-dtor']
if have_gcc and cxx.version >= '4.8':
cxx.cflags += ['-Wno-unused-result', '-Wno-error=sign-compare']
if have_gcc and cxx.version >= '8.0':
cxx.cflags += ['-Wno-stringop-truncation']
if have_gcc and cxx.version >= '9.0':
cxx.cflags += ['-Wno-address-of-packed-member']
if have_clang:
cxx.cxxflags += ['-Wno-implicit-exception-spec-mismatch']
if cxx.version >= '10.0':
cxx.cxxflags += ['-Wno-tautological-compare']
if cxx.version >= 'apple-clang-10.0':
cxx.cxxflags += [
'-Wno-inconsistent-missing-override',
'-Wno-varargs',
]
if cxx.version >= 'apple-clang-5.1' or cxx.version >= 'clang-3.4':
cxx.cxxflags += ['-Wno-deprecated-register']
else:
@ -317,15 +328,18 @@ class AMXXConfig(object):
def configure_mac(self, cxx):
cxx.defines += ['OSX', '_OSX', 'POSIX']
cxx.cflags += ['-mmacosx-version-min=10.5']
cxx.cflags += [
'-mmacosx-version-min=10.7',
'-Wno-address-of-packed-member',
]
cxx.linkflags += [
'-mmacosx-version-min=10.5',
'-mmacosx-version-min=10.7',
'-arch', 'i386',
'-lstdc++',
'-stdlib=libstdc++',
'-stdlib=libc++',
'-framework', 'CoreServices',
]
cxx.cxxflags += ['-stdlib=libstdc++']
cxx.cxxflags += ['-stdlib=libc++']
def configure_windows(self, cxx):
cxx.defines += ['WIN32', '_WINDOWS']

View File

@ -27,6 +27,10 @@ elif builder.target_platform == 'windows':
'/EXPORT:GiveFnptrsToDll=_GiveFnptrsToDll@8,@1',
'/SECTION:.data,RW',
]
elif builder.target_platform == 'linux':
binary.compiler.postlink += [
binary.Dep(AMXX.stdcxx_path),
]
binary.compiler.linkflags += [AMXX.zlib.binary, AMXX.hashing.binary, AMXX.utf8rewind.binary]

View File

@ -122,8 +122,8 @@ cell CForward::execute(cell *params, ForwardPreparedArray *preparedArrays)
#if defined BINLOG_ENABLED
g_BinLog.WriteOp(BinLog_CallPubFunc, iter->pPlugin->getId(), iter->func);
#endif
int err = amx_Exec(amx, &retVal, iter->func);
int err = amx_ExecPerf(amx, &retVal, iter->func);
// log runtime error, if any
if (err != AMX_ERR_NONE)
{
@ -327,8 +327,7 @@ cell CSPForward::execute(cell *params, ForwardPreparedArray *preparedArrays)
#if defined BINLOG_ENABLED
g_BinLog.WriteOp(BinLog_CallPubFunc, pPlugin->getId(), m_Func);
#endif
int err = amx_Exec(m_Amx, &retVal, m_Func);
int err = amx_ExecPerf(m_Amx, &retVal, m_Func);
if (err != AMX_ERR_NONE)
{
//Did something else set an error?

View File

@ -296,6 +296,8 @@ void CoreConfig::OnMapConfigTimer()
return;
}
if (m_legacyMapConfigNextTime <= gpGlobals->time)
{
if (m_PendingForwardPush)
{
m_PendingForwardPush = false;
@ -303,11 +305,12 @@ void CoreConfig::OnMapConfigTimer()
executeForwards(m_ConfigsExecutedForward);
}
else if (!m_LegacyMapConfigsExecuted && m_legacyMapConfigNextTime <= gpGlobals->time)
else if (!m_LegacyMapConfigsExecuted)
{
ExecuteMapConfig();
}
}
}
void CoreConfig::CheckLegacyBufferedCommand(char *command)
{
@ -316,6 +319,7 @@ void CoreConfig::CheckLegacyBufferedCommand(char *command)
return;
}
if (!m_LegacyMainConfigExecuted && strstr(command, MainConfigFile))
{
m_LegacyMainConfigExecuted = true;
@ -324,6 +328,9 @@ void CoreConfig::CheckLegacyBufferedCommand(char *command)
if (!m_LegacyMapConfigsExecuted && strstr(command, MapConfigDir))
{
m_LegacyMapConfigsExecuted = true;
// Consider all configs be executed to m_legacyMapConfigNextTime time.
m_PendingForwardPush = true;
}
}

View File

@ -66,6 +66,9 @@
#include <windows.h>
#endif
#include <chrono>
#include <amxmodx.h>
#include <CPlugin.h>
/* When one or more of the AMX_funcname macris are defined, we want
* to compile only those functions. However, when none of these macros
@ -4173,3 +4176,37 @@ int AMXAPI amx_GetStringOld(char *dest,const cell *source,int use_wchar)
dest[len]='\0'; /* store terminator */
return AMX_ERR_NONE;
}
int AMXAPI amx_ExecPerf(AMX* amx, cell* retval, int index)
{
CPluginMngr::CPlugin* perf_Plug = g_plugins.findPluginFast(amx);
if (amxmodx_perflog->value > 0.0f && perf_Plug && (perf_Plug->isDebug() || (int)amxmodx_debug->value == 2))
{
char perf_funcname[sNAMEMAX + 1];
perf_funcname[0] = '\0';
amx_GetPublic(perf_Plug->getAMX(), index, perf_funcname);
if (perf_funcname[0] == '\0')
sprintf(perf_funcname, "Unknown_ID%d", index);
const char* perf_plugname = perf_Plug->getName();
if (!perf_plugname || perf_plugname[0] == '\0')
perf_plugname = "Unknown_plugin";
using std::chrono::steady_clock;
using std::chrono::duration_cast;
using std::chrono::duration;
using std::chrono::microseconds;
auto t1 = steady_clock::now();
int err = amx_Exec(amx, retval, index);
auto ms_int = duration_cast<microseconds>(steady_clock::now() - t1);
auto ms_float = (float)(ms_int.count() / 1000.0f);
if (ms_float >= amxmodx_perflog->value)
{
AMXXLOG_Log("[%s] performance issue. Function %s executed more than %.*fms.", perf_plugname, perf_funcname, 1, ms_float);
}
return err;
}
return amx_Exec(amx, retval, index);
}

View File

@ -382,6 +382,7 @@ int AMXAPI amx_Callback(AMX *amx, cell index, cell *result, cell *params);
int AMXAPI amx_CheckNatives(AMX *amx, AMX_NATIVE_FILTER nf);
int AMXAPI amx_Cleanup(AMX *amx);
int AMXAPI amx_Clone(AMX *amxClone, AMX *amxSource, void *data);
int AMXAPI amx_ExecPerf(AMX* amx, cell* retval, int index);
int AMXAPI amx_Exec(AMX *amx, cell *retval, int index);
int AMXAPI amx_FindNative(AMX *amx, const char *name, int *index);
int AMXAPI amx_FindPublic(AMX *amx, const char *funcname, int *index);

View File

@ -541,12 +541,28 @@ static cell AMX_NATIVE_CALL next_hudchannel(AMX *amx, cell *params)
}
static cell AMX_NATIVE_CALL set_hudmessage(AMX *amx, cell *params) /* 11 param */
{
cell num_params = params[0] / sizeof(cell);
if (num_params >= 13)
{
cell *color2 = get_amxaddr(amx, params[13]);
g_hudset.a1 = static_cast<byte>(params[12]);
g_hudset.a2 = static_cast<byte>(color2[3]);
g_hudset.r2 = static_cast<byte>(color2[0]);
g_hudset.g2 = static_cast<byte>(color2[1]);
g_hudset.b2 = static_cast<byte>(color2[2]);
}
else
{
g_hudset.a1 = 0;
g_hudset.a2 = 0;
g_hudset.r2 = 255;
g_hudset.g2 = 255;
g_hudset.b2 = 250;
}
g_hudset.r1 = static_cast<byte>(params[1]);
g_hudset.g1 = static_cast<byte>(params[2]);
g_hudset.b1 = static_cast<byte>(params[3]);
@ -1418,7 +1434,7 @@ static cell AMX_NATIVE_CALL show_menu(AMX *amx, cell *params) /* 3 param */
pPlayer->vgui = false;
if (time == -1)
pPlayer->menuexpire = INFINITE;
pPlayer->menuexpire = static_cast<float>(INFINITE);
else
pPlayer->menuexpire = gpGlobals->time + static_cast<float>(time);
@ -1436,7 +1452,7 @@ static cell AMX_NATIVE_CALL show_menu(AMX *amx, cell *params) /* 3 param */
pPlayer->vgui = false;
if (time == -1)
pPlayer->menuexpire = INFINITE;
pPlayer->menuexpire = static_cast<float>(INFINITE);
else
pPlayer->menuexpire = gpGlobals->time + static_cast<float>(time);
@ -3693,7 +3709,7 @@ static cell AMX_NATIVE_CALL callfunc_end(AMX *amx, cell *params)
amx_Push(pAmx, gparams[i]);
}
err = amx_Exec(pAmx, &retVal, func);
err = amx_ExecPerf(pAmx, &retVal, func);
if (err != AMX_ERR_NONE)
{

View File

@ -196,7 +196,9 @@ extern bool g_official_mod;
extern bool g_dontprecache;
extern int g_srvindex;
extern cvar_t* amxmodx_version;
extern cvar_t* amxmodx_debug;
extern cvar_t* amxmodx_language;
extern cvar_t* amxmodx_perflog;
extern cvar_t* hostname;
extern cvar_t* mp_timelimit;
extern fakecmd_t g_fakecmd;

View File

@ -289,7 +289,18 @@ size_t CAmxxReader::GetBufferSize()
m_pFile = NULL; \
return m_Status; \
}
#define DATAREAD_RELEASE(addr, itemsize, itemcount) \
if (fread(addr, itemsize, itemcount, m_pFile) != static_cast<size_t>(itemcount)) \
{ \
if (feof(m_pFile)) \
m_Status = Err_FileInvalid; \
else \
m_Status = Err_FileRead; \
fclose(m_pFile); \
m_pFile = NULL; \
delete[] tempBuffer;\
return m_Status; \
}
CAmxxReader::Error CAmxxReader::GetSection(void *buffer)
{
if (!m_pFile)
@ -311,7 +322,7 @@ CAmxxReader::Error CAmxxReader::GetSection(void *buffer)
PluginEntry *pe = &(m_Bh.plugins[m_Entry]);
char *tempBuffer = new char[m_SectionLength + 1];
fseek(m_pFile, pe->offs, SEEK_SET);
DATAREAD((void *)tempBuffer, 1, m_SectionLength);
DATAREAD_RELEASE((void *)tempBuffer, 1, m_SectionLength);
uLongf destLen = GetBufferSize();
int result = uncompress((Bytef *)buffer, &destLen, (Bytef *)tempBuffer, m_SectionLength);
delete [] tempBuffer;
@ -335,7 +346,7 @@ CAmxxReader::Error CAmxxReader::GetSection(void *buffer)
// read the data to a temporary buffer
char *tempBuffer = new char[m_SectionLength + 1];
//fread(tempBuffer, sizeof(char), m_SectionLength, m_pFile);
DATAREAD((void*)tempBuffer, 1, m_SectionLength);
DATAREAD_RELEASE((void*)tempBuffer, 1, m_SectionLength);
// decompress
int result = uncompress((Bytef *)buffer, &destLen, (Bytef *)tempBuffer, m_SectionLength);
delete [] tempBuffer;

View File

@ -728,7 +728,7 @@ int Handler::HandleModule(const char *module, bool isClass)
m_pAmx->flags |= AMX_FLAG_PRENIT;
amx_Push(m_pAmx, isClass ? 1 : 0);
amx_PushString(m_pAmx, &hea_addr, &phys_addr, module, 0, 0);
int err = amx_Exec(m_pAmx, &retval, m_iModFunc);
int err = amx_ExecPerf(m_pAmx, &retval, m_iModFunc);
amx_Release(m_pAmx, hea_addr);
m_pAmx->flags &= ~AMX_FLAG_PRENIT;
@ -768,7 +768,7 @@ int Handler::HandleNative(const char *native, int index, int trap)
amx_Push(m_pAmx, trap);
amx_Push(m_pAmx, index);
amx_PushString(m_pAmx, &hea_addr, &phys_addr, native, 0, 0);
int err = amx_Exec(m_pAmx, &retval, m_iNatFunc);
int err = amx_ExecPerf(m_pAmx, &retval, m_iNatFunc);
if (err != AMX_ERR_NONE)
{
//LogError() took care of something for us.
@ -841,7 +841,7 @@ int Handler::HandleError(const char *msg)
amx_PushString(m_pAmx, &hea_addr, &phys_addr, msg, 0, 0);
amx_Push(m_pAmx, pDebugger ? 1 : 0);
amx_Push(m_pAmx, error);
int err = amx_Exec(m_pAmx, &result, m_iErrFunc);
int err = amx_ExecPerf(m_pAmx, &result, m_iErrFunc);
if (err != AMX_ERR_NONE)
{
//handle this manually.

View File

@ -96,12 +96,14 @@ static cell AMX_NATIVE_CALL read_file(AMX *amx, cell *params)
{
length = strlen(buffer);
if (length > 0)
{
if (buffer[length - 1] == '\n')
buffer[--length] = '\0';
if (buffer[length - 1] == '\r')
buffer[--length] = '\0';
}
cell* textLen = get_amxaddr(amx, params[5]);
*textLen = set_amxstring_utf8(amx, params[3], buffer, length, params[4]);
@ -756,7 +758,7 @@ struct DirectoryHandle
bool valvefs;
};
// native open_dir(dir[], firstfile[], length, &FileType:type = FileType_Unknown, bool:use_valve_fs=false, const valve_path_id[] = "GAME");
// native open_dir(const dir[], firstfile[], length, &FileType:type = FileType_Unknown, bool:use_valve_fs=false, const valve_path_id[] = "GAME");
static cell AMX_NATIVE_CALL amx_open_dir(AMX *amx, cell *params)
{
int length;

View File

@ -135,9 +135,14 @@ cvar_t init_amxmodx_debug = {"amx_debug", "1", FCVAR_SPONLY};
cvar_t init_amxmodx_mldebug = {"amx_mldebug", "", FCVAR_SPONLY};
cvar_t init_amxmodx_language = {"amx_language", "en", FCVAR_SERVER};
cvar_t init_amxmodx_cl_langs = {"amx_client_languages", "1", FCVAR_SERVER};
cvar_t init_amxmodx_perflog = { "amx_perflog_ms", "1.0", FCVAR_SPONLY };
cvar_t* amxmodx_version = NULL;
cvar_t* amxmodx_modules = NULL;
cvar_t* amxmodx_debug = NULL;
cvar_t* amxmodx_language = NULL;
cvar_t* amxmodx_perflog = NULL;
cvar_t* hostname = NULL;
cvar_t* mp_timelimit = NULL;
@ -1627,9 +1632,12 @@ C_DLLEXPORT int Meta_Attach(PLUG_LOADTIME now, META_FUNCTIONS *pFunctionTable, m
CVAR_REGISTER(&init_amxmodx_mldebug);
CVAR_REGISTER(&init_amxmodx_language);
CVAR_REGISTER(&init_amxmodx_cl_langs);
CVAR_REGISTER(&init_amxmodx_perflog);
amxmodx_version = CVAR_GET_POINTER(init_amxmodx_version.name);
amxmodx_debug = CVAR_GET_POINTER(init_amxmodx_debug.name);
amxmodx_language = CVAR_GET_POINTER(init_amxmodx_language.name);
amxmodx_perflog = CVAR_GET_POINTER(init_amxmodx_perflog.name);
REG_SVR_COMMAND("amxx", amx_command);

View File

@ -187,7 +187,7 @@ int load_amxscript_internal(AMX *amx, void **program, const char *filename, char
bool will_be_debugged = false;
tagAMX_DBG *pDbg = NULL;
if ((int)CVAR_GET_FLOAT("amx_debug") >= 2 || debug)
if ((int)amxmodx_debug->value == 2 || debug)
{
if ((hdr->file_version < CUR_FILE_VERSION))
{
@ -544,7 +544,7 @@ int set_amxnatives(AMX* amx, char error[128])
if (amx_FindPublic(amx, "plugin_natives", &idx) == AMX_ERR_NONE)
{
if ((err = amx_Exec(amx, &retval, idx)) != AMX_ERR_NONE)
if ((err = amx_ExecPerf(amx, &retval, idx)) != AMX_ERR_NONE)
{
Debugger::GenericMessage(amx, err);
AMXXLOG_Log("An error occurred in plugin_natives. This is dangerous!");

View File

@ -112,8 +112,7 @@ int amxx_DynaCallback(int idx, AMX *amx, cell *params)
pDebugger->BeginExec();
}
err=amx_Exec(pNative->amx, &ret, pNative->func);
err = amx_ExecPerf(pNative->amx, &ret, pNative->func);
if (err != AMX_ERR_NONE)
{
if (pDebugger && pDebugger->ErrorExists())

View File

@ -930,7 +930,7 @@ static cell AMX_NATIVE_CALL menu_display(AMX *amx, cell *params)
time = params[4];
if (time < 0)
pPlayer->menuexpire = INFINITE;
pPlayer->menuexpire = static_cast<float>(INFINITE);
else
pPlayer->menuexpire = gpGlobals->time + static_cast<float>(time);

View File

@ -26,7 +26,7 @@ static cell AMX_NATIVE_CALL TrieClear(AMX *amx, cell *params)
if (!t)
{
LogError(amx, AMX_ERR_NATIVE, "Invalid map handle provided (%d)", params[1]);
LogError(amx, AMX_ERR_NATIVE, "Invalid trie handle provided (%d)", params[1]);
return 0;
}
t->map.clear();
@ -40,7 +40,7 @@ static cell AMX_NATIVE_CALL TrieSetCell(AMX *amx, cell *params)
if (!t)
{
LogError(amx, AMX_ERR_NATIVE, "Invalid map handle provided (%d)", params[1]);
LogError(amx, AMX_ERR_NATIVE, "Invalid trie handle provided (%d)", params[1]);
return 0;
}
@ -76,7 +76,7 @@ static cell AMX_NATIVE_CALL TrieSetString(AMX *amx, cell *params)
if (!t)
{
LogError(amx, AMX_ERR_NATIVE, "Invalid map handle provided (%d)", params[1]);
LogError(amx, AMX_ERR_NATIVE, "Invalid trie handle provided (%d)", params[1]);
return 0;
}
@ -113,7 +113,7 @@ static cell AMX_NATIVE_CALL TrieSetArray(AMX *amx, cell *params)
if (!t)
{
LogError(amx, AMX_ERR_NATIVE, "Invalid map handle provided (%d)", params[1]);
LogError(amx, AMX_ERR_NATIVE, "Invalid trie handle provided (%d)", params[1]);
return 0;
}
@ -157,7 +157,7 @@ static cell AMX_NATIVE_CALL TrieGetCell(AMX *amx, cell *params)
if (!t)
{
LogError(amx, AMX_ERR_NATIVE, "Invalid map handle provided (%d)", params[1]);
LogError(amx, AMX_ERR_NATIVE, "Invalid trie handle provided (%d)", params[1]);
return 0;
}
@ -189,7 +189,7 @@ static cell AMX_NATIVE_CALL TrieGetString(AMX *amx, cell *params)
if (!t)
{
LogError(amx, AMX_ERR_NATIVE, "Invalid map handle provided (%d)", params[1]);
LogError(amx, AMX_ERR_NATIVE, "Invalid trie handle provided (%d)", params[1]);
return 0;
}
@ -236,7 +236,7 @@ static cell AMX_NATIVE_CALL TrieGetArray(AMX *amx, cell *params)
if (!t)
{
LogError(amx, AMX_ERR_NATIVE, "Invalid map handle provided (%d)", params[1]);
LogError(amx, AMX_ERR_NATIVE, "Invalid trie handle provided (%d)", params[1]);
return 0;
}
@ -297,7 +297,7 @@ static cell AMX_NATIVE_CALL TrieKeyExists(AMX *amx, cell *params)
if (!t)
{
LogError(amx, AMX_ERR_NATIVE, "Invalid map handle provided (%d)", params[1]);
LogError(amx, AMX_ERR_NATIVE, "Invalid trie handle provided (%d)", params[1]);
return 0;
}
@ -314,7 +314,7 @@ static cell AMX_NATIVE_CALL TrieDeleteKey(AMX *amx, cell *params)
if (!t)
{
LogError(amx, AMX_ERR_NATIVE, "Invalid map handle provided (%d)", params[1]);
LogError(amx, AMX_ERR_NATIVE, "Invalid trie handle provided (%d)", params[1]);
return 0;
}
@ -373,7 +373,7 @@ static cell AMX_NATIVE_CALL TrieGetSize(AMX *amx, cell *params)
if (!t)
{
LogError(amx, AMX_ERR_NATIVE, "Invalid map handle provided (%d)", params[1]);
LogError(amx, AMX_ERR_NATIVE, "Invalid trie handle provided (%d)", params[1]);
return 0;
}
@ -386,7 +386,7 @@ static cell AMX_NATIVE_CALL TrieSnapshotCreate(AMX *amx, cell *params)
if (!t)
{
LogError(amx, AMX_ERR_NATIVE, "Invalid map handle provided (%d)", params[1]);
LogError(amx, AMX_ERR_NATIVE, "Invalid trie handle provided (%d)", params[1]);
return 0;
}
@ -506,7 +506,7 @@ static cell AMX_NATIVE_CALL TrieIterCreate(AMX *amx, cell *params)
if (!handle)
{
LogError(amx, AMX_ERR_NATIVE, "Invalid map handle provided (%d)", params[arg_handle]);
LogError(amx, AMX_ERR_NATIVE, "Invalid trie handle provided (%d)", params[arg_handle]);
return 0;
}

View File

@ -221,11 +221,11 @@ void UTIL_HudMessage(edict_t *pEntity, const hudtextparms_t &textparms, const ch
WRITE_BYTE(textparms.r1);
WRITE_BYTE(textparms.g1);
WRITE_BYTE(textparms.b1);
WRITE_BYTE(0);
WRITE_BYTE(255);
WRITE_BYTE(255);
WRITE_BYTE(250);
WRITE_BYTE(0);
WRITE_BYTE(textparms.a1);
WRITE_BYTE(textparms.r2);
WRITE_BYTE(textparms.g2);
WRITE_BYTE(textparms.b2);
WRITE_BYTE(textparms.a2);
WRITE_SHORT(FixedUnsigned16(textparms.fadeinTime, (1<<8)));
WRITE_SHORT(FixedUnsigned16(textparms.fadeoutTime, (1<<8)));
WRITE_SHORT(FixedUnsigned16(textparms.holdTime, (1<<8)));

View File

@ -1,32 +1,126 @@
version: 1.0.{build}
environment:
fast_finish: false
allow_failures: true
matrix:
- job_name: MacOS
appveyor_build_worker_image: macos-mojave
job_group: Build
- job_name: Windows
appveyor_build_worker_image: Visual Studio 2015
job_group: Build
for:
-
matrix:
only:
- job_name: Windows
clone_folder: c:\projects\amxmodx
install:
- git submodule update --init --recursive
- 'c:'
- mkdir c:\nasm
- set PATH=c:\nasm\nasm-2.13.03;%PATH%
- curl -L -o "c:\nasm\nasm.zip" https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/win32/nasm-2.13.03-win32.zip
- chdir c:\nasm
- 7z x nasm.zip
- chdir c:\projects
- git clone https://github.com/alliedmodders/ambuild
- git clone https://github.com/alliedmodders/metamod-hl1
- git clone https://github.com/alliedmodders/hlsdk
- ps: Start-FileDownload 'https://downloads.mysql.com/archives/get/p/19/file/mysql-connector-c-6.1.1-win32.zip'
- 7z x mysql-connector-c-6.1.1-win32.zip -o"mysql"
- cd mysql
- dir
- ren mysql-connector-c-6.1.1-win32 mysql-5.5
- move /Y mysql-5.5 ..\
- cd ..\ambuild
- c:\python27\python setup.py install
- cd ..\amxmodx
cache:
- c:\projects\*.zip -> appveyor.yml
- c:\projects\mysql-5.5 -> appveyor.yml
- cmd: >-
git submodule update --init --recursive
c:
mkdir c:\nasm
set PATH=c:\nasm\nasm-2.13.03;%PATH%
curl -L -o "c:\nasm\nasm.zip" https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/win32/nasm-2.13.03-win32.zip
chdir c:\nasm
7z x nasm.zip
chdir c:\projects
git clone https://github.com/alliedmodders/ambuild
git clone https://github.com/alliedmodders/metamod-hl1
git clone https://github.com/alliedmodders/hlsdk
curl -L -o "mysql-connector-c-6.1.1-win32.zip" https://downloads.mysql.com/archives/get/p/19/file/mysql-connector-c-6.1.1-win32.zip
7z x mysql-connector-c-6.1.1-win32.zip -o"mysql"
cd mysql
dir
ren mysql-connector-c-6.1.1-win32 mysql-5.5
move /Y mysql-5.5 ..\
cd ..\ambuild
c:\python38\python setup.py install
set PATH=C:\Python38;C:\Python38\Scripts;%PATH%
cd ..\amxmodx
# cache:
# - c:\projects\*.zip -> appveyor.yml
# - c:\projects\mysql-5.5 -> appveyor.yml
build_script:
- '"%VS140COMNTOOLS%\vsvars32.bat"'
- mkdir build
- cd build
- c:\python27\python ../configure.py --enable-optimize --nasm="C:\nasm\nasm-2.13.03\nasm.exe"
- ambuild
- cmd: >-
"%VS140COMNTOOLS%\vsvars32.bat"
mkdir build
cd build
c:\python38\python ../configure.py --enable-optimize --nasm="C:\nasm\nasm-2.13.03\nasm.exe"
echo %PATH%
ambuild
-
matrix:
only:
- job_name: MacOS
install:
- >-
git submodule update --init --recursive
mkdir -p $APPVEYOR_BUILD_FOLDER/deps
ls -alh
cd $APPVEYOR_BUILD_FOLDER/deps
mkdir -p amxmodx
../support/checkout-deps.sh
brew install nasm
nasm -v
export CC=clang
export CXX=clang++
clang --version
clang++ --version
cd $APPVEYOR_BUILD_FOLDER
build_script:
- >-
echo $PATH
mkdir build
cd build
python3 ../configure.py --enable-optimize --metamod=$APPVEYOR_BUILD_FOLDER/deps/metamod-am --hlsdk=$APPVEYOR_BUILD_FOLDER/deps/hlsdk --mysql=$APPVEYOR_BUILD_FOLDER/deps/mysql-5.5
ambuild

View File

@ -70,7 +70,7 @@ static ucell hex2long(char *s,char **n)
s++;
} /* if */
assert((*s>='0' && *s<='9') || (*s>='a' && *s<='f') || (*s>='a' && *s<='f'));
assert((*s>='0' && *s<='9') || (*s>='a' && *s<='f') || (*s>='A' && *s<='F'));
for ( ;; ) {
if (*s>='0' && *s<='9')
digit=*s-'0';

View File

@ -46,7 +46,7 @@
#define _MAX_PATH 250
#endif
#if !defined DIRSEP_CHAR
#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE___
#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__
#define DIRSEP_CHAR '/'
#elif defined macintosh
#define DIRSEP_CHAR ':'

View File

@ -181,3 +181,13 @@ amx_debug 1
//
// Default value: ""
amx_mldebug ""
// Performance monitor
//
// If function executed more than amx_perflog_ms milliseconds
// print plugin and function name to current amxmodx log file.
//
// Time in milliseconds
// Default value: 1.0
//
amx_perflog_ms 1.0

View File

@ -221,3 +221,12 @@ amx_statsx_freeze -2.0
// Default value: 0
amx_restrmapsettings 0
// Performance monitor
//
// If function executed more than amx_perflog_ms milliseconds
// print plugin and function name to current amxmodx log file.
//
// Time in milliseconds
// Default value: 1.0
//
amx_perflog_ms 1.0

View File

@ -218,3 +218,14 @@ amx_idle_ignore_immunity 1
//
// Default value: 4
amx_unstuck_frequency 4
// Performance monitor
//
// If function executed more than amx_perflog_ms milliseconds
// print plugin and function name to current amxmodx log file.
//
// Time in milliseconds
// Default value: 1.0
//
amx_perflog_ms 1.0

View File

@ -3,6 +3,10 @@ import os.path
binary = AMXX.MetaModule(builder, 'csx')
binary.compiler.defines += [
'HAVE_STDINT_H',
]
binary.sources = [
'../../../public/sdk/amxxmodule.cpp',
'CRank.cpp',

View File

@ -127,10 +127,10 @@ void CPlayer::Connect(const char* address ){
void CPlayer::restartStats(bool all)
{
if ( all ) memset(weapons,0,sizeof(weapons));
memset(weaponsRnd,0,sizeof(weaponsRnd)); //DEC-Weapon (Round) stats
memset(attackers,0,sizeof(attackers));
memset(victims,0,sizeof(victims));
if ( all ) memset(&weapons,0,sizeof(weapons));
memset(&weaponsRnd,0,sizeof(weaponsRnd)); //DEC-Weapon (Round) stats
memset(&attackers,0,sizeof(attackers));
memset(&victims,0,sizeof(victims));
life = {};
}

View File

@ -229,8 +229,8 @@ void ListboxItemSelected(HWND hDlg) {
// Retrieve complete stats record of this position. Position in listbox should be same as rank in our records!
RankSystem::RankStats* stats = g_rank.findEntryInRankByPos((int)nItem + 1);
if (stats == NULL) {
char msg[] = "Error: Couldn't find the record by position! (nItem = %d)";
sprintf(msg, msg, nItem);
char msg[512];
sprintf(msg, "Error: Couldn't find the record by position! (nItem = %d)", nItem);
MessageBox(hDlg, msg, "Oh fiddlesticks!", MB_OK);
ClearStatsfields(hDlg);
return;

View File

@ -307,10 +307,10 @@ static cell AMX_NATIVE_CALL custom_wpn_dmg(AMX *amx, cell *params){ // wid,att,v
CPlayer* pAtt = GET_PLAYER_POINTER_I(att);
CPlayer* pVic = GET_PLAYER_POINTER_I(vic);
if ( !pAtt ) pAtt = pVic;
pVic->pEdict->v.dmg_inflictor = NULL;
pAtt->saveHit( pVic , weapon , dmg, aim );
if ( !pAtt ) pAtt = pVic;
int TA = 0;
if ( (pVic->teamId == pAtt->teamId) && ( pVic != pAtt) )
TA = 1;

View File

@ -3,6 +3,10 @@ import os.path
binary = AMXX.MetaModule(builder, 'dodfun')
binary.compiler.defines += [
'HAVE_STDINT_H',
]
binary.sources = [
'../../../public/sdk/amxxmodule.cpp',
'NBase.cpp',

View File

@ -506,7 +506,7 @@ static cell AMX_NATIVE_CALL objective_set_data(AMX *amx, cell *params){ // index
GET_CP_PD(pent).model_body_neutral = ivalue;
return 1;
case CP_model_body_allies :
GET_CP_PD(pent).model_body_axis = ivalue;
GET_CP_PD(pent).model_body_allies = ivalue;
return 1;
case CP_model_body_axis :
GET_CP_PD(pent).model_body_axis = ivalue;

View File

@ -3,6 +3,10 @@ import os.path
binary = AMXX.MetaModule(builder, 'dodx')
binary.compiler.defines += [
'HAVE_STDINT_H',
]
binary.sources = [
'../../../public/sdk/amxxmodule.cpp',
'CRank.cpp',

View File

@ -94,14 +94,14 @@ void CPlayer::restartStats(bool all)
{
if ( all )
{
memset(weapons,0,sizeof(weapons));
memset(&weapons,0,sizeof(weapons));
memset(static_cast<void *>(&round),0,sizeof(round));
memset(weaponsRnd,0,sizeof(weaponsRnd));
memset(&weaponsRnd,0,sizeof(weaponsRnd));
}
memset(weaponsLife,0,sizeof(weaponsLife)); //DEC-Weapon (Round) stats
memset(attackers,0,sizeof(attackers));
memset(victims,0,sizeof(victims));
memset(&weaponsLife,0,sizeof(weaponsLife)); //DEC-Weapon (Round) stats
memset(&attackers,0,sizeof(attackers));
memset(&victims,0,sizeof(victims));
life = {};
}
@ -434,7 +434,7 @@ void CPlayer::WeaponsCheck(int weapons)
int old;
int cur;
for(int i = 1; i < MAX_WEAPONS; ++i)
for(int i = 1; i < DODMAX_WEAPONS; ++i)
{
// Check to see we are not talking about a grenade and we have changed
if(i != 13 && i != 14 && i != 15 && i != 16 && i != 36)

View File

@ -263,7 +263,7 @@ static cell AMX_NATIVE_CALL dod_weapon_type(AMX *amx, cell *params) /* 2 params
{
int weaponsbit = pPlayer->pEdict->v.weapons & ~(1<<31); // don't count last element
for(int x = 1; x < MAX_WEAPONS; ++x)
for(int x = 1; x < DODMAX_WEAPONS; ++x)
{
if((weaponsbit&(1<<x)) > 0)
{
@ -387,12 +387,12 @@ static cell AMX_NATIVE_CALL cwpn_dmg(AMX *amx, cell *params)
pVic->pEdict->v.dmg_inflictor = NULL;
if(pAtt->index != pVic->index)
pAtt->saveHit(pVic , weapon , dmg, aim);
if(!pAtt)
pAtt = pVic;
if(pAtt->index != pVic->index)
pAtt->saveHit(pVic , weapon , dmg, aim);
int TA = 0;
if((pVic->pEdict->v.team == pAtt->pEdict->v.team) && (pVic != pAtt))

View File

@ -173,7 +173,7 @@ void PlayerPreThink_Post(edict_t *pEntity)
{
pPlayer->clearRound = 0.0f;
memset(static_cast<void *>(&pPlayer->round),0,sizeof(pPlayer->round));
memset(pPlayer->weaponsRnd,0,sizeof(pPlayer->weaponsRnd));
memset(&pPlayer->weaponsRnd,0,sizeof(pPlayer->weaponsRnd));
}
if (pPlayer->sendScore && pPlayer->sendScore < gpGlobals->time)

View File

@ -222,7 +222,7 @@ void Client_AmmoX(void* mValue)
case 1:
if (!mPlayer )
break;
for(int i = 1; i < MAX_WEAPONS ; ++i)
for(int i = 1; i < DODMAX_WEAPONS ; ++i)
{
if (iAmmo == weaponData[i].ammoSlot)
mPlayer->weapons[i].ammo = *(int*)mValue;
@ -244,7 +244,7 @@ void Client_AmmoShort(void* mValue)
if(!mPlayer )
break;
for(int i = 1; i < MAX_WEAPONS ; ++i)
for(int i = 1; i < DODMAX_WEAPONS ; ++i)
{
if (iAmmo == weaponData[i].ammoSlot)
mPlayer->weapons[i].ammo = *(int*)mValue;

View File

@ -34,31 +34,26 @@ static cell AMX_NATIVE_CALL set_tr(AMX *amx, cell *params)
{
gfm_tr->fAllSolid = *ptr;
return 1;
break;
}
case TR_StartSolid:
{
gfm_tr->fStartSolid = *ptr;
return 1;
break;
}
case TR_InOpen:
{
gfm_tr->fInOpen = *ptr;
return 1;
break;
}
case TR_InWater:
{
gfm_tr->fInWater = *ptr;
return 1;
break;
}
case TR_flFraction:
{
gfm_tr->flFraction = amx_ctof(*ptr);
return 1;
break;
}
case TR_vecEndPos:
{
@ -66,13 +61,11 @@ static cell AMX_NATIVE_CALL set_tr(AMX *amx, cell *params)
gfm_tr->vecEndPos.y = amx_ctof(ptr[1]);
gfm_tr->vecEndPos.z = amx_ctof(ptr[2]);
return 1;
break;
}
case TR_flPlaneDist:
{
gfm_tr->flPlaneDist = amx_ctof(*ptr);
return 1;
break;
}
case TR_vecPlaneNormal:
{
@ -80,7 +73,6 @@ static cell AMX_NATIVE_CALL set_tr(AMX *amx, cell *params)
gfm_tr->vecPlaneNormal.y = amx_ctof(ptr[1]);
gfm_tr->vecPlaneNormal.z = amx_ctof(ptr[2]);
return 1;
break;
}
case TR_pHit:
{
@ -96,15 +88,13 @@ static cell AMX_NATIVE_CALL set_tr(AMX *amx, cell *params)
{
gfm_tr->iHitgroup = *ptr;
return 1;
break;
}
default:
{
}
MF_LogError(amx, AMX_ERR_NATIVE, "Unknown TraceResult member %d", params[2]);
return 0;
}
}
}
static cell AMX_NATIVE_CALL get_tr(AMX *amx, cell *params)
{
@ -116,29 +106,24 @@ static cell AMX_NATIVE_CALL get_tr(AMX *amx, cell *params)
case TR_AllSolid:
{
return gfm_tr->fAllSolid;
break;
}
case TR_StartSolid:
{
return gfm_tr->fStartSolid;
break;
}
case TR_InOpen:
{
return gfm_tr->fInOpen;
break;
}
case TR_InWater:
{
return gfm_tr->fInWater;
break;
}
case TR_flFraction:
{
ptr = MF_GetAmxAddr(amx, params[2]);
*ptr = amx_ftoc(gfm_tr->flFraction);
return 1;
break;
}
case TR_vecEndPos:
{
@ -147,14 +132,12 @@ static cell AMX_NATIVE_CALL get_tr(AMX *amx, cell *params)
ptr[1] = amx_ftoc(gfm_tr->vecEndPos.y);
ptr[2] = amx_ftoc(gfm_tr->vecEndPos.z);
return 1;
break;
}
case TR_flPlaneDist:
{
ptr = MF_GetAmxAddr(amx, params[2]);
*ptr = amx_ftoc(gfm_tr->flPlaneDist);
return 1;
break;
}
case TR_vecPlaneNormal:
{
@ -163,27 +146,22 @@ static cell AMX_NATIVE_CALL get_tr(AMX *amx, cell *params)
ptr[1] = amx_ftoc(gfm_tr->vecPlaneNormal.y);
ptr[2] = amx_ftoc(gfm_tr->vecPlaneNormal.z);
return 1;
break;
}
case TR_pHit:
{
if (FNullEnt(gfm_tr->pHit))
return -1;
return ENTINDEX(gfm_tr->pHit);
break;
}
case TR_iHitgroup:
{
return gfm_tr->iHitgroup;
break;
}
default:
{
}
MF_LogError(amx, AMX_ERR_NATIVE, "Unknown TraceResult member %d", params[2]);
return 0;
}
}
}
AMX_NATIVE_INFO tr_Natives[] =
{

View File

@ -48,31 +48,26 @@ static cell AMX_NATIVE_CALL set_tr2(AMX *amx, cell *params)
{
tr->fAllSolid = *ptr;
return 1;
break;
}
case TR_InOpen:
{
tr->fInOpen = *ptr;
return 1;
break;
}
case TR_StartSolid:
{
tr->fStartSolid = *ptr;
return 1;
break;
}
case TR_InWater:
{
tr->fInWater = *ptr;
return 1;
break;
}
case TR_flFraction:
{
tr->flFraction = amx_ctof(*ptr);
return 1;
break;
}
case TR_vecEndPos:
{
@ -80,13 +75,11 @@ static cell AMX_NATIVE_CALL set_tr2(AMX *amx, cell *params)
tr->vecEndPos.y = amx_ctof(ptr[1]);
tr->vecEndPos.z = amx_ctof(ptr[2]);
return 1;
break;
}
case TR_flPlaneDist:
{
tr->flPlaneDist = amx_ctof(*ptr);
return 1;
break;
}
case TR_vecPlaneNormal:
{
@ -94,7 +87,6 @@ static cell AMX_NATIVE_CALL set_tr2(AMX *amx, cell *params)
tr->vecPlaneNormal.y = amx_ctof(ptr[1]);
tr->vecPlaneNormal.z = amx_ctof(ptr[2]);
return 1;
break;
}
case TR_pHit:
{
@ -110,14 +102,10 @@ static cell AMX_NATIVE_CALL set_tr2(AMX *amx, cell *params)
{
tr->iHitgroup = *ptr;
return 1;
break;
}
default:
{
}
MF_LogError(amx, AMX_ERR_NATIVE, "Unknown TraceResult member %d", params[2]);
return 0;
}
}
return 0;
}
@ -137,29 +125,24 @@ static cell AMX_NATIVE_CALL get_tr2(AMX *amx, cell *params)
case TR_AllSolid:
{
return tr->fAllSolid;
break;
}
case TR_InOpen:
{
return tr->fInOpen;
break;
}
case TR_StartSolid:
{
return tr->fStartSolid;
break;
}
case TR_InWater:
{
return tr->fInWater;
break;
}
case TR_flFraction:
{
ptr = MF_GetAmxAddr(amx, params[3]);
*ptr = amx_ftoc(tr->flFraction);
return 1;
break;
}
case TR_vecEndPos:
{
@ -168,14 +151,12 @@ static cell AMX_NATIVE_CALL get_tr2(AMX *amx, cell *params)
ptr[1] = amx_ftoc(tr->vecEndPos.y);
ptr[2] = amx_ftoc(tr->vecEndPos.z);
return 1;
break;
}
case TR_flPlaneDist:
{
ptr = MF_GetAmxAddr(amx, params[3]);
*ptr = amx_ftoc(tr->flPlaneDist);
return 1;
break;
}
case TR_vecPlaneNormal:
{
@ -184,26 +165,20 @@ static cell AMX_NATIVE_CALL get_tr2(AMX *amx, cell *params)
ptr[1] = amx_ftoc(tr->vecPlaneNormal.y);
ptr[2] = amx_ftoc(tr->vecPlaneNormal.z);
return 1;
break;
}
case TR_pHit:
{
if (FNullEnt(tr->pHit))
return -1;
return ENTINDEX(tr->pHit);
break;
}
case TR_iHitgroup:
{
return tr->iHitgroup;
break;
}
default:
{
}
MF_LogError(amx, AMX_ERR_NATIVE, "Unknown TraceResult member %d", params[2]);
return 0;
}
}
return 0;
}
@ -221,7 +196,6 @@ static cell AMX_NATIVE_CALL get_kvd(AMX *amx, cell *params)
case KV_fHandled:
{
return kvd->fHandled;
break;
}
case KV_ClassName:
{
@ -232,7 +206,6 @@ static cell AMX_NATIVE_CALL get_kvd(AMX *amx, cell *params)
}
cell *ptr = MF_GetAmxAddr(amx, params[4]);
return MF_SetAmxString(amx, params[3], kvd->szClassName, (int)*ptr);
break;
}
case KV_KeyName:
{
@ -243,7 +216,6 @@ static cell AMX_NATIVE_CALL get_kvd(AMX *amx, cell *params)
}
cell *ptr = MF_GetAmxAddr(amx, params[4]);
return MF_SetAmxString(amx, params[3], kvd->szKeyName, (int)*ptr);
break;
}
case KV_Value:
{
@ -254,7 +226,6 @@ static cell AMX_NATIVE_CALL get_kvd(AMX *amx, cell *params)
}
cell *ptr = MF_GetAmxAddr(amx, params[4]);
return MF_SetAmxString(amx, params[3], kvd->szValue, (int)*ptr);
break;
}
}
@ -301,28 +272,24 @@ static cell AMX_NATIVE_CALL set_kvd(AMX *amx, cell *params)
{
kvd->fHandled = (int)*ptr;
return 1;
break;
}
case KV_ClassName:
{
kvdw->cls = MF_GetAmxString(amx, params[3], 0, &len);
kvd->szClassName = const_cast<char *>(kvdw->cls.chars());
return 1;
break;
}
case KV_KeyName:
{
kvdw->key = MF_GetAmxString(amx, params[3], 0, &len);
kvd->szKeyName = const_cast<char *>(kvdw->key.chars());
return 1;
break;
}
case KV_Value:
{
kvdw->val = MF_GetAmxString(amx, params[3], 0, &len);
kvd->szValue = const_cast<char *>(kvdw->val.chars());
return 1;
break;
}
}
@ -1110,9 +1077,9 @@ static cell AMX_NATIVE_CALL set_es(AMX *amx, cell *params)
es->vuser3.z = amx_ctof(ptr[2]);
return 1;
case ES_vUser4:
es->vuser3.x = amx_ctof(ptr[0]);
es->vuser3.y = amx_ctof(ptr[1]);
es->vuser3.z = amx_ctof(ptr[2]);
es->vuser4.x = amx_ctof(ptr[0]);
es->vuser4.y = amx_ctof(ptr[1]);
es->vuser4.z = amx_ctof(ptr[2]);
return 1;
}

View File

@ -81,7 +81,6 @@ static cell AMX_NATIVE_CALL fm_return(AMX *amx, cell *params)
default:
{
return 0;
break;
}
}

View File

@ -3,6 +3,10 @@ import os.path
binary = AMXX.MetaModule(builder, 'fun')
binary.compiler.defines += [
'HAVE_STDINT_H',
]
binary.sources = [
'../../public/sdk/amxxmodule.cpp',
'../../public/memtools/MemoryUtils.cpp',

View File

@ -697,6 +697,12 @@ static cell AMX_NATIVE_CALL amxx_json_object_set_value(AMX *amx, cell *params)
return 0;
}
if (!JsonMngr->IsValidHandle(params[3]))
{
MF_LogError(amx, AMX_ERR_NATIVE, "Invalid JSON value! %d", params[3]);
return 0;
}
int len;
auto name = MF_GetAmxString(amx, params[2], 0, &len);

View File

@ -17,18 +17,18 @@ if AMXX.mysql_path:
binary.sources = []
if builder.target_platform is 'linux' or builder.target_platform is 'mac':
if builder.target_platform == 'linux' or builder.target_platform == 'mac':
binary.compiler.defines += ['stricmp=strcasecmp']
binary.compiler.linkflags += [
os.path.join(AMXX.mysql_path, 'lib', 'libmysqlclient_r.a'),
'-lpthread',
'-lm',
]
if builder.target_platform is 'linux':
if builder.target_platform == 'linux':
binary.compiler.linkflags += [
'-lrt'
]
elif builder.target_platform is 'windows':
elif builder.target_platform == 'windows':
binary.compiler.linkflags += [
os.path.join(AMXX.mysql_path, 'lib', 'mysqlclient.lib'),
'ws2_32.lib',

View File

@ -277,7 +277,6 @@ static cell AMX_NATIVE_CALL SQL_ReadResult(AMX *amx, cell *params)
{
int num = row->GetInt(col);
return num;
break;
}
default:
{

View File

@ -247,7 +247,6 @@ static cell AMX_NATIVE_CALL dbi_field(AMX *amx, cell *params)
case 2:
{
return atoi(data);
break;
}
case 3:
{
@ -255,12 +254,10 @@ static cell AMX_NATIVE_CALL dbi_field(AMX *amx, cell *params)
REAL fdata = atof(data);
*destaddr = amx_ftoc(fdata);
return 1;
break;
}
case 4:
{
return MF_SetAmxString(amx, params[3], data, params[4]);
break;
}
}
@ -315,7 +312,6 @@ static cell AMX_NATIVE_CALL dbi_result(AMX *amx, cell *params)
case 2:
{
return atoi(data);
break;
}
case 3:
{
@ -323,12 +319,10 @@ static cell AMX_NATIVE_CALL dbi_result(AMX *amx, cell *params)
REAL fdata = atof(data);
*destaddr = amx_ftoc(fdata);
return 1;
break;
}
case 4:
{
return MF_SetAmxString(amx, params[3], data, params[4]);
break;
}
}

View File

@ -115,20 +115,17 @@ static cell nvault_get(AMX *amx, cell *params)
case 2:
{
return atoi(val);
break;
}
case 3:
{
cell *fAddr = MF_GetAmxAddr(amx, params[3]);
*fAddr = amx_ftoc((REAL)atof(val));
return 1;
break;
}
case 4:
{
len = *(MF_GetAmxAddr(amx, params[4]));
return MF_SetAmxString(amx, params[3], val, len);
break;
}
}

View File

@ -654,7 +654,7 @@ int RegEx::Replace(char *text, size_t textMaxLen, const char *replace, size_t re
* $nn or ${nn}
* ^ ^
*/
if (*walk && *walk >= '0' && *walk <= '9')
if (*walk >= '0' && *walk <= '9')
{
backref = backref * 10 + *walk - '0';
++walk;

View File

@ -12,7 +12,7 @@ binary.compiler.defines += [
'HAVE_STDINT_H',
]
if builder.target_platform is 'linux' or builder.target_platform is 'mac':
if builder.target_platform == 'linux' or builder.target_platform == 'mac':
binary.compiler.defines += ['stricmp=strcasecmp']
binary.compiler.postlink += ['-lpthread']

View File

@ -273,7 +273,6 @@ static cell AMX_NATIVE_CALL SQL_ReadResult(AMX *amx, cell *params)
{
int num = row->GetInt(col);
return num;
break;
}
default:
{

View File

@ -245,7 +245,6 @@ static cell AMX_NATIVE_CALL dbi_field(AMX *amx, cell *params)
case 2:
{
return atoi(data);
break;
}
case 3:
{
@ -253,12 +252,10 @@ static cell AMX_NATIVE_CALL dbi_field(AMX *amx, cell *params)
REAL fdata = atof(data);
*destaddr = amx_ftoc(fdata);
return 1;
break;
}
case 4:
{
return MF_SetAmxString(amx, params[3], data, params[4]);
break;
}
}
@ -309,7 +306,6 @@ static cell AMX_NATIVE_CALL dbi_result(AMX *amx, cell *params)
case 2:
{
return atoi(data);
break;
}
case 3:
{
@ -317,12 +313,10 @@ static cell AMX_NATIVE_CALL dbi_result(AMX *amx, cell *params)
REAL fdata = atof(data);
*destaddr = amx_ftoc(fdata);
return 1;
break;
}
case 4:
{
return MF_SetAmxString(amx, params[3], data, params[4]);
break;
}
}

View File

@ -3,6 +3,10 @@ import os.path
binary = AMXX.MetaModule(builder, 'tfcx')
binary.compiler.defines += [
'HAVE_STDINT_H',
]
binary.sources = [
'../../public/sdk/amxxmodule.cpp',
'CRank.cpp',

View File

@ -126,10 +126,10 @@ void CPlayer::Connect(const char* address ){
void CPlayer::restartStats(bool all)
{
if ( all ) memset(weapons,0,sizeof(weapons));
memset(weaponsRnd,0,sizeof(weaponsRnd)); //DEC-Weapon (Round) stats
memset(attackers,0,sizeof(attackers));
memset(victims,0,sizeof(victims));
if ( all ) memset(&weapons,0,sizeof(weapons));
memset(&weaponsRnd,0,sizeof(weaponsRnd)); //DEC-Weapon (Round) stats
memset(&attackers,0,sizeof(attackers));
memset(&victims,0,sizeof(victims));
life = {};
}

View File

@ -161,10 +161,10 @@ struct CPlayer {
int clip;
};
PlayerWeapon weapons[MAX_WEAPONS];
PlayerWeapon weapons[TFCMAX_WEAPONS];
PlayerWeapon attackers[33];
PlayerWeapon victims[33];
Stats weaponsRnd[MAX_WEAPONS]; // DEC-Weapon (Round) stats
Stats weaponsRnd[TFCMAX_WEAPONS]; // DEC-Weapon (Round) stats
Stats life;
int teamId;

View File

@ -262,10 +262,10 @@ static cell AMX_NATIVE_CALL cwpn_dmg(AMX *amx, cell *params){ // wid,att,vic,dmg
CPlayer* pAtt = GET_PLAYER_POINTER_I(att);
CPlayer* pVic = GET_PLAYER_POINTER_I(vic);
if ( !pAtt ) pAtt = pVic;
pVic->pEdict->v.dmg_inflictor = NULL;
pAtt->saveHit( pVic , weapon , dmg, aim );
if ( !pAtt ) pAtt = pVic;
int TA = 0;
if ( (pVic->pEdict->v.team == pAtt->pEdict->v.team ) && ( pVic != pAtt) )
TA = 1;

View File

@ -47,7 +47,7 @@ bool isModuleActive(){
bool util_strncmp( const char *sz1, const char *sz2, int size){
int i = 0;
while( sz1[i] && i<=size){
while( i<=size && sz1[i] ){
if ( sz1[i] != sz2[i] )
return false;
i++;

View File

@ -46,7 +46,7 @@ void Client_WeaponList(void* mValue){
break;
case 7:
int iId = *(int*)mValue;
if ( (iId < 0 || iId >= MAX_WEAPONS ) || ( wpnList & (1<<iId) ) )
if ( (iId < 0 || iId >= TFCMAX_WEAPONS ) || ( wpnList & (1<<iId) ) )
break;
wpnList |= (1<<iId);
@ -121,10 +121,23 @@ void Client_Damage(void* mValue){
if ( FNullEnt( enemy ) )
break;
#ifdef _DEBUG_TFCX
ALERT(at_logged, "Clinet_damage Called with state-%d dmg-%d Netname'%s'(Class'%s') slno-'%d'\n",
mState, damage, STRING(mPlayer->pEdict->v.netname),
STRING(mPlayer->pEdict->v.classname), mPlayer->pEdict->serialnumber);
ALERT(at_logged, " Called with enemy-slno-%d Netname:'%s'(Class'%s')\n", mPlayer->pEdict->serialnumber,
STRING(enemy->v.netname), STRING(enemy->v.classname));
#endif // _DEBUG_TFCX
if (enemy->v.flags & (FL_CLIENT | FL_FAKECLIENT) ) { // attacker is player and his active weapon
pAttacker = GET_PLAYER_POINTER(enemy);
#ifdef _DEBUG_TFCX
ALERT(at_logged, " attacker is player and his active weapon id-%d, has flags - (FL_CLIENT | FL_FAKECLIENT)\n\n", pAttacker->current);
#endif // _DEBUG_TFCX
aim = pAttacker->aiming;
weapon = pAttacker->current;
@ -150,6 +163,15 @@ void Client_Damage(void* mValue){
pAttacker = GET_PLAYER_POINTER(enemy->v.owner);
#ifdef _DEBUG_TFCX
ALERT(at_logged, " attacker is Class'%s'(with its enmy as Netname'%s'[Class'%s']) and his owner is '%s(%s)' enemy->owner has flags - FL_CLIENT | FL_FAKECLIENT\n\n",
(enemy ? STRING(enemy->v.classname) : "Null"),
(enemy->v.enemy ? STRING(enemy->v.enemy->v.netname) : "Null"),
(enemy->v.enemy ? STRING(enemy->v.enemy->v.classname) : "Null"),
(enemy->v.owner ? STRING(enemy->v.owner->v.netname) : "Null"),
(enemy->v.owner ? STRING(enemy->v.owner->v.classname) : "Null"));
#endif // _DEBUG_TFCX
const char *szClass = STRING(enemy->v.classname);
switch(szClass[10]){
@ -185,16 +207,8 @@ void Client_Damage(void* mValue){
if ( !weapon ) {
switch(szClass[3]){
case 'e':
weapon = TFC_WPN_TIMER; // TFC_WPN_MEDKIT ??
tempInt = get_pdata_ehandle(mPlayer->pEdict, pdTimerOwner * 4); // function is char-based.
if (tempInt < 1 || tempInt > gpGlobals->maxClients)
{
break;
}
pAttacker = GET_PLAYER_POINTER_I(tempInt);
weapon = TFC_WPN_TIMER; // TFC_WPN_MEDKIT ?? //ShootingKing: Class - "timer"
pAttacker = GET_PLAYER_POINTER(enemy->v.enemy);
if (pAttacker->teamId == mPlayer->teamId) // ???
{
@ -326,7 +340,7 @@ void Client_AmmoX(void* mValue){
}
//
for(int i = 1; i < MAX_WEAPONS ; ++i)
for(int i = 1; i < TFCMAX_WEAPONS ; ++i)
if (iAmmo == weaponData[i].ammoSlot)
mPlayer->weapons[i].ammo = *(int*)mValue;
}
@ -341,7 +355,7 @@ void Client_AmmoPickup(void* mValue){
break;
case 1:
if (!mPlayer ) break;
for(int i = 1; i < MAX_WEAPONS ; ++i)
for(int i = 1; i < TFCMAX_WEAPONS ; ++i)
if (weaponData[i].ammoSlot == iSlot)
mPlayer->weapons[i].ammo += *(int*)mValue;
}

View File

@ -3,6 +3,10 @@ import os.path
binary = AMXX.MetaModule(builder, 'tsfun')
binary.compiler.defines += [
'HAVE_STDINT_H',
]
binary.sources = [
'../../../public/sdk/amxxmodule.cpp',
]

View File

@ -3,6 +3,10 @@ import os.path
binary = AMXX.MetaModule(builder, 'tsx')
binary.compiler.defines += [
'HAVE_STDINT_H',
]
binary.sources = [
'../../../public/sdk/amxxmodule.cpp',
'CMisc.cpp',

View File

@ -78,10 +78,10 @@ void CPlayer::Connect(const char* ippp)
void CPlayer::restartStats(bool all)
{
if ( all ) memset(weapons,0,sizeof(weapons));
memset(weaponsRnd,0,sizeof(weaponsRnd)); //DEC-Weapon (Round) stats
memset(attackers,0,sizeof(attackers));
memset(victims,0,sizeof(victims));
if ( all ) memset(&weapons,0,sizeof(weapons));
memset(&weaponsRnd,0,sizeof(weaponsRnd)); //DEC-Weapon (Round) stats
memset(&attackers,0,sizeof(attackers));
memset(&victims,0,sizeof(victims));
life = {};
}

View File

@ -295,10 +295,10 @@ static cell AMX_NATIVE_CALL cwpn_dmg(AMX *amx, cell *params){ // wid,att,vic,dmg
CPlayer* pAtt = GET_PLAYER_POINTER_I(att);
CPlayer* pVic = GET_PLAYER_POINTER_I(vic);
if ( !pAtt ) pAtt = pVic;
pVic->pEdict->v.dmg_inflictor = NULL;
pAtt->saveHit( pVic , weapon , dmg, aim );
if ( !pAtt ) pAtt = pVic;
int TA = 0;
if ( (pVic->pEdict->v.team == pAtt->pEdict->v.team ) && ( pVic != pAtt) )
TA = 1;

View File

@ -122,6 +122,7 @@ void Client_TSHealth_End(void* mValue){
weapon = 37; // throwing knife
aim = pAttacker ? pAttacker->aiming : 0;
if (pAttacker)
pAttacker->saveHit( mPlayer , weapon , damage, aim );
}
}

View File

@ -364,10 +364,8 @@ loadSettings(szFilename[])
new AuthData[44];
new Password[32];
while (!feof(File))
while (fgets(File, Text, charsmax(Text)))
{
fgets(File, Text, charsmax(Text));
trim(Text);
// comment

View File

@ -124,10 +124,8 @@ public plugin_precache( )
new fieldNums = 0;
new const voxIdent[] = "vox", fvoxIdent[] = "fvox", barneyIdent[] = "barney", hgruntIdent[] = "hgrunt";
while ( line < MAX_CMDS && ! feof( fp ) ) // Loop till MAX_CMDS or EOF
while ( line < MAX_CMDS && fgets( fp, szText, charsmax(szText) ) ) // Loop till MAX_CMDS or no more file data
{
fgets( fp, szText, charsmax(szText) ); // Store line content
/* Strips newline */
new len = strlen( szText );
if ( len != 0 && szText[len-1] == '^n' ) // len != 0 because if the last line of the file is empty, there's no newline
@ -175,15 +173,7 @@ public plugin_precache( )
}
if ( file_exists( szSound ) )
{
if ( sndExt[1] == 'm')
{
precache_generic( szSound ); // mp3
}
else
{
replace( szSound, charsmax(szSound), "sound/", "" ); // wav, strip the leading sound/ we added for our file_exists check
precache_sound( szSound );
}
precache_generic( szSound );
}
}
line++;

View File

@ -236,9 +236,8 @@ public plugin_precache()
if( fp )
{
new xvarname[32], xvarid
while( !feof(fp) )
while( fgets(fp, buffer, charsmax(buffer)) )
{
fgets(fp, buffer, charsmax(buffer))
trim(buffer)
if( buffer[0] != ';' )
{
@ -257,9 +256,8 @@ public plugin_precache()
if( fp )
{
new szSoundKey[32], szSoundFile[SOUNDFILE_PATH_MAXLEN]
while( !feof(fp) )
while( fgets(fp, buffer, charsmax(buffer)) )
{
fgets(fp, buffer, charsmax(buffer))
trim(buffer)
if( buffer[0] != ';' && parse(buffer, szSoundKey, charsmax(szSoundKey), szSoundFile, charsmax(szSoundFile)) == 2 )
{
@ -379,7 +377,7 @@ precache_sound_custom( const sound[] )
formatex(fullpathsound, charsmax(fullpathsound), "sound/%s.wav", sound)
if( file_exists(fullpathsound) )
{
precache_sound(fullpathsound[6])
precache_generic(fullpathsound)
}
else
{

View File

@ -495,8 +495,10 @@ findAdminsWithMenu(playersList[MAX_PLAYERS], &playersCount, const commandLevel =
get_players(playersList, playersCount, "ch");
for (new i = 0; i < playersCount, (player = playersList[i]); ++i)
for (new i = 0; i < playersCount; ++i)
{
player = playersList[i]
if (player_menu_info(player, menu, newmenu) && newmenu != -1 && newmenu == MenuHandle[player])
{
if (commandLevel == -1 || access(player, commandLevel)) // extra safety
@ -519,8 +521,10 @@ refreshMenus(const commandLevel = 0, const bool:displaySaveMessage = false)
return;
}
for (new i = 0, player; i < playersCount, (player = playersList[i]); ++i)
for (new i = 0, player; i < playersCount; ++i)
{
player = playersList[i]
MenuHandle[player] = displayMenu(player, MenuPosition[player]);
if (displaySaveMessage)
@ -590,9 +594,11 @@ bool:loadSettings(const filename[])
arrayset(RestrictedBotEquipAmmos, '0', charsmax(RestrictedBotEquipAmmos));
arrayset(RestrictedBotWeapons, '0', charsmax(RestrictedBotWeapons));
while (!feof(fp))
while (fgets(fp, lineRead, charsmax(lineRead)))
{
if (fgets(fp, lineRead, charsmax(lineRead)) - trim(lineRead) <= 0)
trim(lineRead)
if (!lineRead[0])
{
continue;
}

View File

@ -14,21 +14,21 @@
#include <amxmodx>
public plugin_precache(){
precache_sound( "misc/impressive.wav")
precache_sound( "misc/headshot.wav")
precache_sound( "misc/multikill.wav")
precache_sound( "misc/doublekill.wav")
precache_sound( "misc/godlike.wav")
precache_sound( "misc/ultrakill.wav")
precache_sound( "misc/killingspree.wav")
precache_sound( "misc/rampage.wav")
precache_sound( "misc/unstoppable.wav")
precache_sound( "misc/monsterkill.wav")
precache_sound( "misc/humiliation.wav")
precache_generic( "sound/misc/impressive.wav")
precache_generic( "sound/misc/headshot.wav")
precache_generic( "sound/misc/multikill.wav")
precache_generic( "sound/misc/doublekill.wav")
precache_generic( "sound/misc/godlike.wav")
precache_generic( "sound/misc/ultrakill.wav")
precache_generic( "sound/misc/killingspree.wav")
precache_generic( "sound/misc/rampage.wav")
precache_generic( "sound/misc/unstoppable.wav")
precache_generic( "sound/misc/monsterkill.wav")
precache_generic( "sound/misc/humiliation.wav")
precache_sound( "misc/takenlead.wav" )
precache_sound( "misc/tiedlead.wav" )
precache_sound( "misc/lostlead.wav" )
precache_generic( "sound/misc/takenlead.wav" )
precache_generic( "sound/misc/tiedlead.wav" )
precache_generic( "sound/misc/lostlead.wav" )
return PLUGIN_CONTINUE
}

View File

@ -351,6 +351,7 @@ enum
kRenderFxExplode, /* Scale up really big! */
kRenderFxGlowShell, /* Glowing Shell */
kRenderFxClampMinScale, /* Keep this sprite from getting very small (SPRITES only!) */
kRenderFxLightMultiplier, /* CTM !!!CZERO added to tell the studiorender that the value in iuser2 is a lightmultiplier */
};
/**

View File

@ -809,6 +809,13 @@ stock reset_menu(index)
/**
* Calls a function after a specified time has elapsed.
*
* @note The function is called in the following manner if data is passed:
* data[] - Data passed
* id - Task index
*
* @note The function is called in the following manner if no data is passed:
* id - Task index
*
* @param time Time interval to assign
* @param function Function to execute
* @param id Task id to assign

View File

@ -681,10 +681,12 @@ native disable_logevent(handle);
* @param fadeintime Time it takes the message to fully appear (fade-in)
* @param fadeouttime Time it takes the message to fully disappear (fade-out)
* @param channel Channel to use on the client
* @param alpha1 Alpha component of hudmessage color
* @param color2[4] Color 2 array {r,g,b,a}
*
* @noreturn
*/
native set_hudmessage(red = 200, green = 100, blue = 0, Float:x = -1.0, Float:y = 0.35, effects = 0, Float:fxtime = 6.0, Float:holdtime = 12.0, Float:fadeintime = 0.1, Float:fadeouttime = 0.2, channel = -1);
native set_hudmessage(red = 200, green = 100, blue = 0, Float:x = -1.0, Float:y = 0.35, effects = 0, Float:fxtime = 6.0, Float:holdtime = 12.0, Float:fadeintime = 0.1, Float:fadeouttime = 0.2, channel = -1, alpha1 = 0, color2[4] = {255, 255, 250, 0});
/**
* Displays a message on the client HUD.
@ -1762,6 +1764,13 @@ native parse_time(const input[], const format[], time = -1);
* @note Please consider using set_task_ex() instead which allows you to
* use named constants for flags instead of letters.
*
* @note The function is called in the following manner if data is passed:
* data[] - Data passed
* id - Task index
*
* @note The function is called in the following manner if no data is passed:
* id - Task index
*
* @param time Time interval to assign
* @param function Function to execute
* @param id Task id to assign
@ -1842,7 +1851,7 @@ native set_user_flags(index, flags = -1, id = 0);
* 0 is actively used. You should not change the value of the second
* parameter from the default.
*
* @param index Client index, 0 to set flags of server
* @param index Client index, 0 to get flags of server
* @param id Flag set id, ranging from 0 to 31
*
* @return Bitflag sum of client's admin flags

View File

@ -519,7 +519,7 @@ native unlink(const filename[], bool:use_valve_fs = false, const valve_path_id[]
*
* @return Handle to the directory, 0 otherwise
*/
native open_dir(dir[], firstfile[], length, &FileType:type = FileType_Unknown, bool:use_valve_fs = false, const valve_path_id[] = "GAME");
native open_dir(const dir[], firstfile[], length, &FileType:type = FileType_Unknown, bool:use_valve_fs = false, const valve_path_id[] = "GAME");
/**
* Reads the next directory entry as a local filename.

View File

@ -737,7 +737,7 @@ enum
* write_byte(TE_FIZZ)
* write_short(entity)
* write_short(sprite index)
* write_byte density)
* write_byte(density)
*/
#define TE_FIZZ 105

View File

@ -98,9 +98,9 @@
/** @endsection */
/**
* @brief Creates a new menu object.
* Creates a new menu object.
*
* The handler function should be prototyped as:
* @note The handler function should be prototyped as:
*
* public <function>(id, menu, item)
* id - Client the menu is being acted upon.
@ -110,7 +110,7 @@
* should never be called immediately if the item is a status
* code, for re-entrancy reasons.
*
* The handler function should always return PLUGIN_HANDLED to block
* @note The handler function should always return PLUGIN_HANDLED to block
* any old menu handlers from potentially feeding on the menu, unless
* that is the desired functionality.
*
@ -129,14 +129,14 @@ native menu_create(const title[], const handler[], bool:ml = false);
/**
* Creates a menu item callback handler.
*
* The handler function should be prototyped as:
* @note The handler function should be prototyped as:
*
* public <function>(id, menu, item)
* id - Client index being displayed to.
* menu - Menu resource identifier.
* item - Item being drawn.
* <return> - ITEM_IGNORE to use the default functionality. ITEM_ENABLED to
* explicitly enable or ITEM_DISABLED to explicitly disable.
* <return> - ITEM_IGNORE to use the default functionality.
* ITEM_ENABLED to explicitly enable or ITEM_DISABLED to explicitly disable.
*
* @param function Function name.
* @return Menu callback ID.
@ -144,7 +144,7 @@ native menu_create(const title[], const handler[], bool:ml = false);
native menu_makecallback(const function[]);
/**
* Adds an menu to a menu.
* Adds an item to a menu.
*
* @param menu Menu resource identifier.
* @param name Item text to display.
@ -287,11 +287,11 @@ native menu_destroy(menu);
/**
* Returns information about a menu (if any) the client is currently viewing.
*
* If newmenu is valid, then the menu will refer to the menuid associated with
* @note If newmenu is valid, then the menu will refer to the menuid associated with
* the title. If newmenu is not valid, and the menu is valid, then the player
* is viewing a menu displayed with show_menu().
*
* Both may be invalid if the player is not viewing a menu.
* @note Both may be invalid if the player is not viewing a menu.
*
* @param id Client index.
* @param menu Variable to store old menu id. If none, then <1 will be
@ -307,7 +307,7 @@ native player_menu_info(id, &menu, &newmenu, &menupage=0);
/**
* Adds a blank line to a menu.
*
* When using slot=1 this might break your menu. To achieve this functionality
* @note When using slot=1 this might break your menu. To achieve this functionality
* menu_addblank2 should be used.
*
* @param menu Menu resource identifier.
@ -319,9 +319,9 @@ native player_menu_info(id, &menu, &newmenu, &menupage=0);
native menu_addblank(menu, slot=1);
/**
* Adds a text line to a menu. Only available in amxmodx 1.8.1 and above.
* Adds a text line to a menu.
*
* When using slot=1 this might break your menu. To achieve this functionality
* @note When using slot=1 this might break your menu. To achieve this functionality
* menu_addtext2 should be used.
*
* @param menu Menu resource identifier.
@ -336,12 +336,10 @@ native menu_addtext(menu, const text[], slot=1);
/**
* Adds a blank line to a menu, always shifting the numbering down.
*
* This will add a special item to create a blank line. It will affect the menu
* @note This will add a special item to create a blank line. It will affect the menu
* item count and pagination. These items can be modified later but will ignore
* access and item callback results.
*
* Only available in 1.8.3 and above.
*
* @param menu Menu resource identifier.
*
* @return 1 on success, 0 on failure.
@ -353,12 +351,10 @@ native menu_addblank2( menu );
/**
* Adds a text line to a menu, always shifting the numbering down.
*
* This will add a special item to create a blank line. It will affect the menu
* @note This will add a special item to create a blank line. It will affect the menu
* item count and pagination. These items can be modified later but will ignore
* access and item callback results.
*
* Only available in 1.8.3 and above.
*
* @param menu Menu resource identifier.
* @param text Text to add.
*

View File

@ -519,7 +519,7 @@ stock SQL_SimpleQueryFmt(Handle:db, error[]="", maxlength=0, &rows=0, const fmt[
* @param queryfmt The query string that can be formated with format specifiers.
* @pram ... Additional arguments for formating the query.
*
* @return 1 on error.
* @return -1 on error.
* >= 0 on success (with the number of affected rows).
*/
stock SQL_QueryAndIgnore(Handle:db, const queryfmt[], any:...)

View File

@ -24,6 +24,8 @@ enum
timeunit_hours,
timeunit_days,
timeunit_weeks,
timeunit_months,
timeunit_years,
};
/* Seconds in each time unit */
@ -31,6 +33,8 @@ enum
#define SECONDS_IN_HOUR 3600
#define SECONDS_IN_DAY 86400
#define SECONDS_IN_WEEK 604800
#define SECONDS_IN_MONTH 2592000
#define SECONDS_IN_YEAR 31536000
/**
* Stock by Brad.
@ -39,7 +43,7 @@ enum
*
* @param id The player whose language the length should be translated to
* @param unitCnt The number of time units you want translated into verbose text
* @param type The type of unit (i.e. seconds, minutes, hours, days, weeks) that you are passing in
* @param type The type of unit (i.e. seconds, minutes, hours, days, weeks, months, years) that you are passing in
* @param output The variable you want the verbose text to be placed in
* @param outputLen The length of the output variable
*
@ -50,7 +54,7 @@ stock get_time_length(id, unitCnt, type, output[], outputLen)
if (unitCnt > 0)
{
// determine the number of each time unit there are
new weekCnt = 0, dayCnt = 0, hourCnt = 0, minuteCnt = 0, secondCnt = 0;
new yearCnt = 0, monthCnt = 0, weekCnt = 0, dayCnt = 0, hourCnt = 0, minuteCnt = 0, secondCnt = 0;
switch (type)
{
@ -59,8 +63,16 @@ stock get_time_length(id, unitCnt, type, output[], outputLen)
case timeunit_hours: secondCnt = unitCnt * SECONDS_IN_HOUR;
case timeunit_days: secondCnt = unitCnt * SECONDS_IN_DAY;
case timeunit_weeks: secondCnt = unitCnt * SECONDS_IN_WEEK;
case timeunit_months: secondCnt = unitCnt * SECONDS_IN_MONTH;
case timeunit_years: secondCnt = unitCnt * SECONDS_IN_YEAR;
}
yearCnt = secondCnt / SECONDS_IN_YEAR;
secondCnt -= (yearCnt * SECONDS_IN_YEAR);
monthCnt = secondCnt / SECONDS_IN_MONTH;
secondCnt -= (monthCnt * SECONDS_IN_MONTH);
weekCnt = secondCnt / SECONDS_IN_WEEK;
secondCnt -= (weekCnt * SECONDS_IN_WEEK);
@ -75,8 +87,12 @@ stock get_time_length(id, unitCnt, type, output[], outputLen)
// translate the unit counts into verbose text
new maxElementIdx = -1;
new timeElement[5][33];
new timeElement[7][33];
if (yearCnt > 0)
format(timeElement[++maxElementIdx], charsmax(timeElement[]), "%i %L", yearCnt, id, (yearCnt == 1) ? "TIME_ELEMENT_YEAR" : "TIME_ELEMENT_YEARS");
if (monthCnt > 0)
format(timeElement[++maxElementIdx], charsmax(timeElement[]), "%i %L", monthCnt, id, (monthCnt == 1) ? "TIME_ELEMENT_MONTH" : "TIME_ELEMENT_MONTHS");
if (weekCnt > 0)
format(timeElement[++maxElementIdx], charsmax(timeElement[]), "%i %L", weekCnt, id, (weekCnt == 1) ? "TIME_ELEMENT_WEEK" : "TIME_ELEMENT_WEEKS");
if (dayCnt > 0)
@ -95,6 +111,8 @@ stock get_time_length(id, unitCnt, type, output[], outputLen)
case 2: formatex(output, outputLen, "%s, %s %L %s", timeElement[0], timeElement[1], id, "TIME_ELEMENT_AND", timeElement[2]);
case 3: formatex(output, outputLen, "%s, %s, %s %L %s", timeElement[0], timeElement[1], timeElement[2], id, "TIME_ELEMENT_AND", timeElement[3]);
case 4: formatex(output, outputLen, "%s, %s, %s, %s %L %s", timeElement[0], timeElement[1], timeElement[2], timeElement[3], id, "TIME_ELEMENT_AND", timeElement[4]);
case 5: formatex(output, outputLen, "%s, %s, %s, %s, %s %L %s", timeElement[0], timeElement[1], timeElement[2], timeElement[3], timeElement[4], id, "TIME_ELEMENT_AND", timeElement[5]);
case 6: formatex(output, outputLen, "%s, %s, %s, %s, %s, %s %L %s", timeElement[0], timeElement[1], timeElement[2], timeElement[3], timeElement[4], timeElement[5], id, "TIME_ELEMENT_AND", timeElement[6]);
}
}
}

View File

@ -181,17 +181,17 @@ PRIV_SET = Priviligiite sa nastroeni
NO_ENTRY = Nqmate dostup do servera...
[ro]
LOADED_ADMIN = 1 administrator a fost incarcat din fisier
LOADED_ADMINS = %d administratori au fost incarcati din fisier
SQL_CANT_CON = Eroare SQL: conectare esuata: '%s'
SQL_CANT_LOAD_ADMINS = Eroare SQL: esuare incarcare administratori: '%s'
NO_ADMINS = Nu a fost gasit nici un administrator.
SQL_LOADED_ADMIN = 1 administrator a fost incarcat din baza de date
SQL_LOADED_ADMINS = %d administratori au fost incarcati din baza de date
INV_PAS = Parola invalida!
PAS_ACC = Parola acceptata
PRIV_SET = Privilegii acordate
NO_ENTRY = Acest nume este rezervat pe server.
LOADED_ADMIN = 1 admin a fost încărcat din fișier
LOADED_ADMINS = %d admini au fost încărcați din fișier
SQL_CANT_CON = Eroare SQL: conectare nereușită: '%s'
SQL_CANT_LOAD_ADMINS = Eroare SQL: eșuare încărcare admini: '%s'
NO_ADMINS = Nu a fost găsit niciun admin.
SQL_LOADED_ADMIN = 1 admin a fost încărcat din baza de date
SQL_LOADED_ADMINS = %d admini au fost încărcați din baza de date
INV_PAS = Parolă invalidă!
PAS_ACC = Parolă acceptată
PRIV_SET = Drepturi de acces acordate
NO_ENTRY = Nu aveți permisiunea de a intra pe server...
[hu]
LOADED_ADMIN = 1 admin betöltve a fájlból.
@ -314,7 +314,7 @@ NO_ENTRY = Ju nuk mund të futeni në server...
LOADED_ADMIN = 1 admin foi carregado do ficheiro
LOADED_ADMINS = %d admins foram carregados do ficheiro
SQL_CANT_CON = Erro de SQL: não foi possível conectar-se: '%s'
SQL_CANT_LOAD_ADMINS = Erro de SQl: não foi possível carregar admins: '%s'
SQL_CANT_LOAD_ADMINS = Erro de SQL: não foi possível carregar admins: '%s'
NO_ADMINS = Não foram encontrados admins.
SQL_LOADED_ADMIN = 1 admin foi carregado da base de dados
SQL_LOADED_ADMINS = %d admins foram carregados da base de dados

View File

@ -182,16 +182,16 @@ PRINT_ALL = (VSICHKI) %s : %s
[ro]
COL_WHITE = alb
COL_RED = rosu
COL_RED = roșu
COL_GREEN = verde
COL_BLUE = albastru
COL_YELLOW = galben
COL_MAGENTA = purpuriu
COL_CYAN = cian
COL_ORANGE = oranj
COL_OCEAN = ocean
COL_MAGENTA = violet
COL_CYAN = bleu
COL_ORANGE = portocaliu
COL_OCEAN = bleumarin
COL_MAROON = maro
PRINT_ALL = (TOTI) %s : %s
PRINT_ALL = (TOȚI) %s : %s
[hu]
COL_WHITE = fehér

View File

@ -17,7 +17,7 @@ ADMIN_SLAY_2 = ADMIN %s: slay %s
CLIENT_SLAYED = Client "%s" slayed
ADMIN_SLAP_1 = ADMIN: slap %s with %d damage
ADMIN_SLAP_2 = ADMIN %s: slap %s with %d damage
CLIENT_SLAPED = Client "%s" slaped with %d damage
CLIENT_SLAPED = Client "%s" slapped with %d damage
MAP_NOT_FOUND = Map with that name not found or map is invalid
ADMIN_MAP_1 = ADMIN: changelevel %s
ADMIN_MAP_2 = ADMIN %s: changelevel %s
@ -126,8 +126,8 @@ PAUSED = pausiert
UNPAUSED = fortgesetzt
UNABLE_PAUSE = Server konnte das Spiel nicht anhalten. Reale Spieler werden auf dem Server benötigt.
SERVER_PROC = Server führt %s aus
PAUSING = Pausiere
UNPAUSING = setze fort
PAUSING = pausiert den Server...
UNPAUSING = setzt den Server fort...
PAUSE = Pause
UNPAUSE = Fortsetzen
COM_SENT_SERVER = Befehlszeile "%s" zur Serverconsole gesendet
@ -138,11 +138,11 @@ ACCESS = Berechtigung
TOTAL_NUM = Total %d
SKIP_MATCH = Überspringe "%s" (stimmt überein mit "%s")
SKIP_IMM = Überspringe "%s" (Immunität)
KICK_PL = Kickt "%s"
KICK_PL = Kicke "%s"
YOU_DROPPED = Du wurdest gekickt, weil der Admin nur spezielle Spielergruppen auf dem Server zulässt
KICKED_CLIENTS = Kickt %d clients
ADMIN_LEAVE_1 = ADMIN: erlaubt %s %s %s %s
ADMIN_LEAVE_2 = ADMIN %s: erlaubt %s %s %s %s
KICKED_CLIENTS = %d Spieler gekickt
ADMIN_LEAVE_1 = ADMIN: Spieler ohne Berechtigung %s %s %s %s verlassen den Server!
ADMIN_LEAVE_2 = ADMIN %s: Spieler ohne Berechtigung %s %s %s %s verlassen den Server!
ADMIN_NICK_1 = ADMIN: ändert Name von %s zu "%s"
ADMIN_NICK_2 = ADMIN %s: ändert Name von %s zu "%s"
CHANGED_NICK = Name von %s zu "%s" geändert
@ -1055,77 +1055,79 @@ MAP_EXTENDED = Kartata "%s" beshe uduljena s %d minuti
[ro]
ADMIN_KICK_1 = ADMIN: kick %s
ADMIN_KICK_2 = ADMIN %s: kick %s
IP_REMOVED = Ip-ul "%s" a fost inlaturat din lista de ban-uri
AUTHID_REMOVED = ID-ul "%s" a fost inlaturat din lista de ban-uri
IP_REMOVED = IP-ul "%s" a fost eliminat din lista de banuri
AUTHID_REMOVED = AuthID-ul "%s" a fost eliminat din lista de banuri
ADMIN_UNBAN_1 = ADMIN: unban %s
ADMIN_UNBAN_2 = ADMIN %s: unban %s
ADMIN_ADDBAN_1 = ADMIN: ban %s
ADMIN_ADDBAN_2 = ADMIN %s: ban %s
BANNED = banat
REASON = motiv
FOR_MIN = pentru %s min
FOR_MIN = pentru %s minute
PERM = permanent
CLIENT_BANNED = Jucatorul "%s" a primit ban
CLIENT_BANNED = Jucătorul "%s" a primit ban
ADMIN_SLAY_1 = ADMIN: slay %s
ADMIN_SLAY_2 = ADMIN %s: slay %s
CLIENT_SLAYED = Jucatorul "%s" a primit slay
ADMIN_SLAP_1 = ADMIN: slap %s cu %d dmg
ADMIN_SLAP_2 = ADMIN %s: slap %s cu %d dmg
CLIENT_SLAPED = Jucatorul "%s" a primit slap %d dmg
MAP_NOT_FOUND = Harta cu acel nume nu a fost gasita sau este invalida
ADMIN_MAP_1 = ADMIN: schimbare harta pe %s
ADMIN_MAP_2 = ADMIN %s: schimbare harta pe %s
NO_MORE_CVARS = Nu se pot adauga mai multe comenzi pentru accesul rcon!
UNKNOWN_CVAR = Comanda nerecunoscuta: %s
UNKNOWN_XVAR = Comanda nerecunoscuta: %s
CVAR_NO_ACC = Nu ai acces la aceasta comanda
XVAR_NO_ACC = Nu ai acces la aceasta comanda
CLIENT_SLAYED = Jucătorul "%s" a primit slay
ADMIN_SLAP_1 = ADMIN: slap %s cu %d damage
ADMIN_SLAP_2 = ADMIN %s: slap %s cu %d damage
CLIENT_SLAPED = Jucătorul "%s" a primit slap cu %d damage
MAP_NOT_FOUND = Harta cu acel nume nu a fost găsită, sau este invalidă
ADMIN_MAP_1 = ADMIN: schimbă harta pe %s
ADMIN_MAP_2 = ADMIN %s: schimbă harta pe %s
NO_MORE_CVARS = Nu se mai pot adăuga comenzi pentru accesul rcon!
UNKNOWN_CVAR = Comanda nerecunoscută: %s
UNKNOWN_XVAR = Comanda nerecunoscută: %s
CVAR_NO_ACC = Nu ai acces la această comandă
XVAR_NO_ACC = Nu ai acces la această comandă
CVAR_IS = Comanda "%s" este "%s"
XVAR_IS = Comanda "%s" este "%s"
PROTECTED = PROTEJAT
SET_CVAR_TO = %s seteaza comanda %s pe "%s"
SET_XVAR_TO = %s seteaza comanda %s pe "%s"
CVAR_CHANGED = Comanda "%s" a fost schimbata pe "%s"
XVAR_CHANGED = Comanda "%s" a fost schimbata pe "%s"
LOADED_PLUGINS = Plugin-uri incarcate
SET_CVAR_TO = %s setează comanda %s pe "%s"
SET_XVAR_TO = %s setează comanda %s pe "%s"
CVAR_CHANGED = Comanda "%s" a fost schimbată pe "%s"
XVAR_CHANGED = Comanda "%s" a fost schimbată pe "%s"
LOADED_PLUGINS = Pluginuri încărcate
NAME = nume
VERSION = versiune
AUTHOR = autor
FILE = fisier
STATUS = statut
PLUGINS_RUN = %d plugin-uri, %d functionale
LOADED_MODULES = Moduluri incarcate
NUM_MODULES = %d moduluri
FILE_NOT_FOUND = Fisier-ul "%s" nu a fost gasit
FILE = fișier
STATUS = status
PLUGINS_RUN = %d pluginuri, %d funcționale
LOADED_MODULES = Module încărcate
NUM_MODULES = %d module
FILE_NOT_FOUND = Fișierul "%s" nu a fost găsit
ADMIN_CONF_1 = ADMIN: executare config %s
ADMIN_CONF_2 = ADMIN %s: executare config %s
PAUSED = s-a intrerupt jocul
PAUSED = joc întrerupt
UNPAUSED = s-a revenit la joc
UNABLE_PAUSE = Server-ul nu a putut intrerupe jocul. Este nevoie de jucatori adevarati.
UNABLE_PAUSE = Serverul nu a putut întrerupe jocul. Este nevoie de jucători reali pe server.
SERVER_PROC = Continuare server %s
PAUSING = se interupe jocul
PAUSING = jocul se întrerupe
UNPAUSING = se revine la joc
PAUSE = intrerupe jocul
PAUSE = întrerupe jocul
UNPAUSE = revino la joc
COM_SENT_SERVER = Comanda "%s" a fost trimisa in consola server-ului
CLIENTS_ON_SERVER = Jucatori pe server
COM_SENT_SERVER = Comanda "%s" a fost trimisă în consola serverului
CLIENTS_ON_SERVER = Jucători pe server
IMMU = imu
RESERV = rez
ACCESS = acces
TOTAL_NUM = Total %d
SKIP_MATCH = Se trece peste "%s" (criteriu "%s")
SKIP_IMM = Se trece peste "%s" (imunitate)
SKIP_MATCH = Se sare peste "%s" (criteriu "%s")
SKIP_IMM = Se sare peste "%s" (imunitate)
KICK_PL = Kick "%s"
YOU_DROPPED = Ai fost dat afara deoarece admin-ul permite doar un grup specificat de jucatori pe server
KICKED_CLIENTS = %d jucatori au primit kick
ADMIN_LEAVE_1 = ADMIN: iesire %s %s %s %s
ADMIN_LEAVE_2 = ADMIN %s: iesire %s %s %s %s
ADMIN_NICK_1 = ADMIN: schimbare nume %s cu "%s"
ADMIN_NICK_2 = ADMIN %s: schimbare nume %s cu "%s"
CHANGED_NICK = Numele %s a fost schimbat cu "%s"
YOU_DROPPED = Ai fost dat afară deoarece adminul a lăsat doar un grup specific de jucători pe server.
KICKED_CLIENTS = %d jucători au primit kick
ADMIN_LEAVE_1 = ADMIN: ieșire %s %s %s %s
ADMIN_LEAVE_2 = ADMIN %s: ieșire %s %s %s %s
ADMIN_NICK_1 = ADMIN: schimbă numele lui %s cu "%s"
ADMIN_NICK_2 = ADMIN %s: schimbă numele lui %s cu "%s"
CHANGED_NICK = Numele lui %s a fost schimbat cu "%s"
ADMIN_EXTEND_1 = ADMIN: extinde harta pentru %d minute
ADMIN_EXTEND_2 = ADMIN %s: extinde harta pentru %d minute
MAP_EXTENDED = Harta "%s" a fost extinsa pentru %d minute
MAP_EXTENDED = Harta "%s" a fost extinsă pentru %d minute
ADMIN_MUST_TEMPBAN = Poți să dai numai ban temporar jucătorilor, până la %d minute
ADMIN_MUST_TEMPUNBAN = Poți să dai unban numai jucătorilor pe care i-ai banat recent.
[hu]
ADMIN_KICK_1 = ADMIN: %s kirúgva
@ -1819,9 +1821,9 @@ CLIENT_BANNED = O cliente "%s" foi banido
ADMIN_SLAY_1 = ADMIN: matou %s
ADMIN_SLAY_2 = ADMIN %s: matou %s
CLIENT_SLAYED = O cliente "%s" foi morto
ADMIN_SLAP_1 = ADMIN: esbofeteou %s com %d dano
ADMIN_SLAP_2 = ADMIN %s: esbofeteou %s com %d dano
CLIENT_SLAPED = O cliente "%s" foi esbofeteado com %d dano
ADMIN_SLAP_1 = ADMIN: esbofeteou %s com %d de dano
ADMIN_SLAP_2 = ADMIN %s: esbofeteou %s com %d de dano
CLIENT_SLAPED = O cliente "%s" foi esbofeteado com %d de dano
MAP_NOT_FOUND = O mapa com esse nome não foi encontrado ou é inválido
ADMIN_MAP_1 = ADMIN: mudou de mapa para %s
ADMIN_MAP_2 = ADMIN %s: mudou de mapa para %s
@ -1831,7 +1833,7 @@ UNKNOWN_XVAR = Xvar desconhecida: %s
CVAR_NO_ACC = Tu não tens acesso a essa cvar
XVAR_NO_ACC = Tu não tens acesso a essa xvar
CVAR_IS = A cvar "%s" é "%s"
XVAR_IS = A Xvar "%s" é "%s"
XVAR_IS = A xvar "%s" é "%s"
PROTECTED = PROTEGIDO
SET_CVAR_TO = %s mudou a cvar %s para "%s"
SET_XVAR_TO = %s mudou a xvar %s para "%s"
@ -1867,7 +1869,7 @@ SKIP_MATCH = A saltar "%s" (a coincidir com "%s")
SKIP_IMM = A saltar "%s" (imunidade)
KICK_PL = A expulsar "%s"
YOU_DROPPED = Tu foste desconectado pois o admin só deixa entrar um grupo de clientes específico
KICKED_CLIENTS = %d clientes expulsados
KICKED_CLIENTS = Foram expulsos %d clientes
ADMIN_LEAVE_1 = ADMIN: deixou %s %s %s %s
ADMIN_LEAVE_2 = ADMIN %s: deixou %s %s %s %s
ADMIN_NICK_1 = ADMIN: mudou o nome de %s para "%s"
@ -1876,5 +1878,5 @@ CHANGED_NICK = Mudou o nome de %s para "%s"
ADMIN_EXTEND_1 = ADMIN: extendeu o mapa por %d minutos
ADMIN_EXTEND_2 = ADMIN %s: extendeu o mapa por %d minutos
MAP_EXTENDED = O mapa "%s" foi extendido por %d minutos
ADMIN_MUST_TEMPBAN = Tu só podes banir jogadores temporariamente temporariamente, até %d minutos
ADMIN_MUST_TEMPUNBAN = Tu só podes desbanir jogadores que tu baniste recentemente
ADMIN_MUST_TEMPBAN = Tu só podes banir jogadores temporariamente, até %d minutos
ADMIN_MUST_TEMPUNBAN = Tu só podes desbanir jogadores que baniste recentemente

View File

@ -134,12 +134,12 @@ TIME_INFO_2 = Nqma limit na vremeto. Sledvashta karta: %s
[ro]
HELP_COMS = Ajutor AMX Mod X: Comenzi
HELP_ENTRIES = Intrari %d - %d din %d
HELP_USE_MORE = Scrie '%s %d' pentru mai mult
HELP_USE_BEGIN = Scrie '%s 1' pentru inceput
TYPE_HELP = Scrie '%s' '%s' in consola pentru afisare lista comenzi
TIME_INFO_1 = Timp Ramas: %d:%02d. Urmatoarea Harta: %s
TIME_INFO_2 = Nici o Limita a Timpului. Urmatoarea Harta: %s
HELP_ENTRIES = Se afișează %d - %d din %d
HELP_USE_MORE = Scrie '%s %d' pentru mai multe comenzi
HELP_USE_BEGIN = Scrie '%s 1' pentru a începe
TYPE_HELP = Scrie '%s' '%s' în consolă pentru a afișa lista de comenzi disponibile
TIME_INFO_1 = Timp mas: %d:%02d. Următoarea hartă: %s
TIME_INFO_2 = Fără limită de timp. Următoarea hartă: %s
[hu]
HELP_COMS = AMX Mod X segítség: Parancsok

View File

@ -45,7 +45,9 @@ DROPPED_RES = Pudotettiin palvelimelta slotvarauksen takia (adminslot)
DROPPED_RES = Premahnat poradi rezervaciq na slot
[ro]
DROPPED_RES = Ai primit kick pentru rezervare slot
DROPPED_RES = Ai primit kick deoarece locul pe server este rezervat.
CVAR_RESERVATION = Numărul de locuri rezervate
CVAR_HIDESLOTS = Dacă setezi asta pe 1, poți ascunde locuri de pe server.^nDacă locurile publice și ascunse ale serverului sunt pline, trebuie să te conectezi manual în consolă cu comanda "connect".
[hu]
DROPPED_RES = Helyfenntartás miatt kidobva.
@ -76,3 +78,5 @@ DROPPED_RES = U largua për shkak të rezervimit të vendit që është plugini
[pt]
DROPPED_RES = Foste desconectado por causa da reservação de slots
CVAR_RESERVATION = Quantidade de slots para reservar
CVAR_HIDESLOTS = Se tu definires isto para 1, tu podes esconder slots no teu servidor.^nSe os slots públicos e escondidos do servidor estiverem cheios, tu deverás manualmente conectar com o comando de consola "connect".

View File

@ -45,10 +45,10 @@ VOTING_RES_2 = %s (erhielt "%d") (benötigt "%d")
VOTING_SUCCESS = Abstimmung erfolgreich
VOTING_RES_3 = %s (erhielt "%d") (benötigt "%d"). Ergebnis: %s
THE_RESULT = Das Ergebnis
WANT_CONTINUE = Forfahren?
VOTED_FOR = %s stimmten dafür
VOTED_AGAINST = %s stimmten dagegen
VOTED_FOR_OPT = %s stimmten für Option #%d
WANT_CONTINUE = Fortfahren?
VOTED_FOR = %s stimmte dafür
VOTED_AGAINST = %s stimmte dagegen
VOTED_FOR_OPT = %s stimmte für Option #%d
ALREADY_VOTING = Abstimmung läuft bereits...
VOTING_NOT_ALLOW = Abstimmung ist momentan nicht möglich!
GIVEN_NOT_VALID = %s ist unzulässig
@ -475,38 +475,38 @@ ADMIN_VOTE_FOR_1 = %s: glasuva %s za %s
ADMIN_VOTE_FOR_2 = %s %s: glasuva %s za %s
[ro]
ADMIN_CANC_VOTE_1 = %s: anuleaza vot
ADMIN_CANC_VOTE_2 = %s %s: anuleaza vot
VOTING_CANC = Votarea a fost anulata
NO_VOTE_CANC = Nu exista votari pentru anulare sau nu poate fi anulata cu aceea comanda
ADMIN_CANC_VOTE_1 = %s: anulează votarea
ADMIN_CANC_VOTE_2 = %s %s: anulează votarea
VOTING_CANC = Votarea a fost anulată
NO_VOTE_CANC = Nu există votări ce pot fi anulate, sau nu pot fi anulate cu această comandă.
RES_REF = Rezultat refuzat
RES_ACCEPTED = Rezultat acceptat
VOTING_FAILED = Votare esuata
VOTING_RES_1 = %s (da "%d" voturi, nu "%dvoturi", necesare "%d")
VOTING_RES_2 = %s (a obtinut "%d voturi", necesare "%d")
VOTING_FAILED = Votare eșuată
VOTING_RES_1 = %s (da "%d") (nu "%d") (necesare "%d")
VOTING_RES_2 = %s (a obținut "%d" voturi) (necesare "%d")
VOTING_SUCCESS = Votarea a avut loc cu succes
VOTING_RES_3 = %s (a obtinut "%d" voturi, necesare "%d"). Rezultatul este: %s
VOTING_RES_3 = %s (a obținut "%d" voturi) (necesare "%d"). Rezultatul este: %s
THE_RESULT = Rezultatul
WANT_CONTINUE = Accepti schimbarea hartii?
WANT_CONTINUE = Doriți să continuați?
VOTED_FOR = %s a votat pentru
VOTED_AGAINST = %s a votat impotriva
VOTED_AGAINST = %s a votat împotrivă
VOTED_FOR_OPT = %s a votat pentru #%d
ALREADY_VOTING = Deja se afla o votare in curs de desfasurare...
VOTING_NOT_ALLOW = Votarile nu sunt permise acum
GIVEN_NOT_VALID = %s nu este valida
ALREADY_VOTING = Se află deja o votare în curs de desfășurare...
VOTING_NOT_ALLOW = Votările nu sunt permise momentan
GIVEN_NOT_VALID = %s este invalidă
MAP_IS = harta este
MAPS_ARE = hartile sunt
MAPS_ARE = hărțile sunt
CHOOSE_MAP = Alege harta
ADMIN_VOTE_MAP_1 = %s: votare harta
ADMIN_VOTE_MAP_2 = %s %s: votare harta
VOTING_STARTED = Votarea a inceput...
VOTING_FORBIDDEN = Votarea pentru aceasta optiune nu este permisa
ADMIN_VOTE_CUS_1 = %s: votare customizata
ADMIN_VOTE_CUS_2 = %s %s: votare customizata
VOTE = Voteaza
ACTION_PERFORMED = Aceasta comanda nu poate fi executata pe bot-ul "%s"
ADMIN_VOTE_FOR_1 = %s: vot %s pentru %s
ADMIN_VOTE_FOR_2 = %s %s: vot %s pentru %s
ADMIN_VOTE_MAP_1 = %s: votare pentru harta/hărțile
ADMIN_VOTE_MAP_2 = %s %s: votare pentru harta/hărțile
VOTING_STARTED = Votarea a început...
VOTING_FORBIDDEN = Votarea pentru această opțiune este interzisă
ADMIN_VOTE_CUS_1 = %s: votare personalizată
ADMIN_VOTE_CUS_2 = %s %s: votare personalizată
VOTE = Votează
ACTION_PERFORMED = Această comandă nu poate fi executată pe BOT-ul "%s"
ADMIN_VOTE_FOR_1 = %s: a votat %s pentru %s
ADMIN_VOTE_FOR_2 = %s %s: a votat %s pentru %s
[hu]
ADMIN_CANC_VOTE_1 = %s: szavazás visszavonása

View File

@ -41,7 +41,7 @@ STOP_FLOOD = Lopeta floodiminen!
STOP_FLOOD = Ne fluudvai servera!
[ro]
STOP_FLOOD = Nu mai flooda server-ul!
STOP_FLOOD = Oprește-te din a flooda serverul!
[hu]
STOP_FLOOD = Ne floodolj és ne spamelj!

View File

@ -69,9 +69,9 @@ CONF_MENU = Konfiguracionno menu
SPE_MENU = Menu za govorene
[ro]
CMD_MENU = Menu Comenzi
CONF_MENU = Menu Configuratie
SPE_MENU = Menu Speech
CMD_MENU = Meniu comenzi
CONF_MENU = Meniu configuri
SPE_MENU = Meniu Speech
[hu]
CMD_MENU = Parancs Menü

View File

@ -307,24 +307,24 @@ ON = Vklucheno
OFF = Isklucheno
[ro]
BACK = Inapoi
EXIT = Iesire
BACK = Înapoi
EXIT = Ieși
MORE = Mai mult
NONE = Niciunul
ADMIN = ADMIN
PLAYER = JUCATOR
PLAYER = JUCĂTOR
ERROR = eroare
YES = Da
NO = Nu
BAN = ban
KICK = kick
NO_ACC_COM = Nu ai acces la aceasta comanda
NO_ACC_COM = Nu ai acces la această comandă
USAGE = Valoare
MORE_CL_MATCHT = Sunt mai multi jucatori ce va indeplinesc cautarea
CL_NOT_FOUND = Jucatorul cu acel nume sau id nu exista
CLIENT_IMM = Jucatorul "%s" are imunitate
CANT_PERF_DEAD = Aceasta comanda nu poate fi executata pe jucatorul decedat "%s"
CANT_PERF_BOT = Aceasta comanda nu poate fi executata pe bot-ul "%s"
MORE_CL_MATCHT = Există mai mulți jucători care îndeplinesc condițiile
CL_NOT_FOUND = Jucătorul cu acel nume sau userid nu a fost găsit
CLIENT_IMM = Jucătorul "%s" are imunitate
CANT_PERF_DEAD = Această comandă nu poate fi executată pe jucătorul mort "%s"
CANT_PERF_BOT = Această comandă nu poate fi executată pe BOT-ul "%s"
ON = Activat
OFF = Dezactivat
@ -538,9 +538,9 @@ YES = Sim
NO = Não
BAN = banir
KICK = expulsar
NO_ACC_COM = Tu nao tens acesso a esse comando
NO_ACC_COM = Tu não tens acesso a esse comando
USAGE = Uso
MORE_CL_MATCHT = Tem mais do que um cliente que corresponde ao teu argumento
MORE_CL_MATCHT = mais do que um cliente a corresponder o teu argumento
CL_NOT_FOUND = O cliente com esse nome ou userid não foi encontrado
CLIENT_IMM = O cliente "%s" tem imunidade
CANT_PERF_DEAD = Essa ação não pode ser executada no cliente morto "%s"

View File

@ -41,7 +41,7 @@ INF_REACH = Information Message -raja ylitetty!
INF_REACH = Dostignat e limitut za ingormacionni suobshteniq!
[ro]
INF_REACH = Limita mesajelor informative a fost atinsa!
INF_REACH = A fost atinsă limita maximă a mesajelor informative!
[hu]
INF_REACH = Információs üzenetek limitje elérve!

View File

@ -56,7 +56,7 @@ LANG_NAME_NATIVE = Bulgarski
[ro]
LANG_NAME = Romanian
LANG_NAME_NATIVE = Romana
LANG_NAME_NATIVE = Română
[hu]
LANG_NAME = Hungarian

View File

@ -125,13 +125,13 @@ EXTED_MAP = Udalji kartata %s
TIME_CHOOSE = Vreme e da se izbere sledvashtata karta...
[ro]
CHO_FIN_EXT = Votarea s-a incheiat. Harta actuala va fi prelungita %.0f minute
CHO_FIN_NEXT = Votarea s-a incheiat. Urmatoarea harta va fi %s
CHOSE_EXT = %s a votat pentru prelungirea hartii actuale
CHO_FIN_EXT = Votarea s-a terminat. Harta actuală va fi prelungită cu %.0f minute
CHO_FIN_NEXT = Votarea s-a terminat. Următoarea hartă va fi %s
CHOSE_EXT = %s a votat pentru prelungirea hărții actuale
X_CHOSE_X = %s a votat pentru %s
CHOOSE_NEXTM = AMX Alege harta urmatoare
EXTED_MAP = Prelungirea hartii actuale %s
TIME_CHOOSE = E timpul sa alegeti harta urmatoare...
CHOOSE_NEXTM = AMX Alege harta următoare
EXTED_MAP = Prelungirea hărții %s
TIME_CHOOSE = Este timpul să alegeți harta următoare...
[hu]
CHO_FIN_EXT = A választás véget ért. A mostani pálya még %.0f percig lesz.

View File

@ -30,7 +30,7 @@ VOTE_FAILED = Abstimmung gescheitert
THE_WINNER = Der Gewinner
WANT_CONT = Willst du fortfahren?
VOT_CANC = Abstimmung abgebrochen
X_VOTED_FOR = %s stimmten für Option #%d
X_VOTED_FOR = %s stimmte für Option #%d
VOTEMAP_MENU = Menü > Mapwahl
START_VOT = Starte Abstimmung
SEL_MAPS = Ausgewählte Maps
@ -337,26 +337,26 @@ CHANGLE_MENU = Smenqne na karta Menu
[ro]
RESULT_REF = Rezultat refuzat
RESULT_ACC = Rezultat acceptat
VOTE_SUCCESS = Votarea a avut loc cu succes. Harta va fi schimbata pe
VOTE_FAILED = Votare esuata
THE_WINNER = Castigatoare
WANT_CONT = Accepti schimbarea hartii?
VOT_CANC = Votarea a fost anulata
VOTE_SUCCESS = Votarea a avut loc cu succes. Harta va fi schimbată pe
VOTE_FAILED = Votare eșuată
THE_WINNER = Câștigătoare
WANT_CONT = Doriți să continuați?
VOT_CANC = Votarea a fost anulată
X_VOTED_FOR = %s a votat pentru #%d
VOTEMAP_MENU = Menu Votare Harta
START_VOT = Incepe Votarea
SEL_MAPS = Harti Alese
ALREADY_VOT = Se desfasoara o votare deja...
NO_MAPS_MENU = Nu exista harti in menu
VOT_NOW_ALLOW = Nu sunt permise votarile acum
WHICH_MAP = Ce harta doresti?
CHANGE_MAP_TO = Schimbare harta pe
CANC_VOTE = Anuleaza Vot
ADMIN_V_MAP_1 = ADMIN: votare harta
ADMIN_V_MAP_2 = ADMIN %s: votare harta
ADMIN_CHANGEL_1 = ADMIN: schimbare harta pe %s
ADMIN_CHANGEL_2 = ADMIN %s: schimbare harta pe %s
CHANGLE_MENU = Menu Schimbare Harta
VOTEMAP_MENU = Meniu votare hartă
START_VOT = Începe votarea
SEL_MAPS = Hărți alese
ALREADY_VOT = Se desfășoară o votare deja...
NO_MAPS_MENU = Nu există hărți în meniu
VOT_NOW_ALLOW = Nu sunt permise votările momentan
WHICH_MAP = Ce hartă dorești?
CHANGE_MAP_TO = Schimbare hartă pe
CANC_VOTE = Anulează vot
ADMIN_V_MAP_1 = ADMIN: votare hartă
ADMIN_V_MAP_2 = ADMIN %s: votare hartă
ADMIN_CHANGEL_1 = ADMIN: schimbare hartă pe %s
ADMIN_CHANGEL_2 = ADMIN %s: schimbare hartă pe %s
CHANGLE_MENU = Meniu schimbare hartă
[hu]
RESULT_REF = A szavazás eredménytelen.

View File

@ -17,10 +17,10 @@ RES_WEAP = Restrict Weapons
TELE_PLAYER = Teleport Player
[de]
KICK_PLAYER = Kick Spieler
BAN_PLAYER = Ban Spieler
SLAP_SLAY = Schlage/Kille Spieler
TEAM_PLAYER = Team Spieler ^n
KICK_PLAYER = Spieler kicken
BAN_PLAYER = Spieler bannen
SLAP_SLAY = Spieler schlagen/killen
TEAM_PLAYER = Team der Spieler ändern ^n
CHANGEL = Mapwechsel
VOTE_MAPS = Map Abstimmung ^n
SPECH_STUFF = Soundausgabe
@ -32,7 +32,7 @@ LANG_SET = Spracheinstellung
STATS_SET = Statistik-Einstellungen ^n
PAUSE_PLUG = Plugins pausieren
RES_WEAP = Waffen verbieten
TELE_PLAYER = Teleport Spieler
TELE_PLAYER = Spieler teleportieren
[sr]
KICK_PLAYER = Kick Igraca
@ -251,22 +251,22 @@ RES_WEAP = Zabrani orujiq
TELE_PLAYER = Teleportirai igrachi
[ro]
KICK_PLAYER = Kick Jucator
BAN_PLAYER = Ban Jucator
SLAP_SLAY = Plesneste/Ucide Jucator
TEAM_PLAYER = Jucator Echipa ^n
CHANGEL = Schimba harta
VOTE_MAPS = Voteaza pentru hartile ^n
SPECH_STUFF = Speech
CLIENT_COM = Comenzi Jucatori
SERVER_COM = Comenzi Server
CVARS_SET = Setari Cvar
CONFIG = Configuratie
LANG_SET = Setari Limbaj
STATS_SET = Setari Statistici ^n
PAUSE_PLUG = Opreste Plugin-uri
RES_WEAP = Restrictioneaza Arme
TELE_PLAYER = Teleporteaza Jucator
KICK_PLAYER = Kick jucător
BAN_PLAYER = Ban jucător
SLAP_SLAY = Slap/Slay jucător
TEAM_PLAYER = Schimbare echipă jucător ^n
CHANGEL = Schimbă harta
VOTE_MAPS = Vot pentru hărțile ^n
SPECH_STUFF = Meniu Speech
CLIENT_COM = Comenzi jucător
SERVER_COM = Comenzi server
CVARS_SET = Setări cvar
CONFIG = Configurații
LANG_SET = Setări limbă
STATS_SET = Setări statistici ^n
PAUSE_PLUG = Întrerupe pluginuri
RES_WEAP = Restricționează arme
TELE_PLAYER = Teleportează jucător
[hu]
KICK_PLAYER = Játékos kirúgása
@ -438,7 +438,7 @@ TEAM_PLAYER = Equipa do Jogador ^n
CHANGEL = Mudar de Mapa
VOTE_MAPS = Votação de Mapas ^n
SPECH_STUFF = Menu de Voz
CLIENT_COM = Comandos do Client
CLIENT_COM = Comandos do Cliente
SERVER_COM = Comandos do Servidor
CVARS_SET = Definições de Cvars
CONFIG = Configuração

View File

@ -56,7 +56,7 @@ KNIFE_MSG_4 = %s messerte und verstümmelte %s
LAST_MSG_1 = Nun hängt alles von dir ab!
LAST_MSG_2 = Hoffentlich hast du ein Medipack dabei.
LAST_MSG_3 = Deine Teamkameraden sind alle tot. Viel Glück!
LAST_MSG_4 = Nun bist du allein. Hab Spass dabei!
LAST_MSG_4 = Nun bist du allein. Hab Spaß dabei!
HE_MSG_1 = %s sendet ein kleines Geschenk an %s
HE_MSG_2 = %s wirft ein Knallbonbon zu %s
HE_MSG_3 = %s macht einen Präzisionswurf zu %s
@ -70,7 +70,7 @@ HS_MSG_2 = $kn entfernte den Kopf von $vn^nmit einem Präzisionsschuss.
HS_MSG_3 = $kn verwandelte den Kopf ^nvon $vn in Pudding.
HS_MSG_4 = $kn besiegte $vn durch einen Kopfschuss.
HS_MSG_5 = $vn's Kopf wurde in der Gegend verteilt
HS_MSG_6 = $kn hat einen super ^nTreffer gelandet,das weiss ^n$vn nun auch.
HS_MSG_6 = $kn hat einen super ^nTreffer gelandet,das weiß ^n$vn nun auch.
HS_MSG_7 = $vn's Kopf war ein bisschen zu lange im Fadenkreuz von $kn...
DOUBLE_KILL = Wow! %s machte einen Doppelkill!!!
PREPARE_FIGHT = Vorbereiten zum Kampf!^nRunde %d
@ -670,49 +670,51 @@ HS = hs
[ro]
WITH = cu
KNIFE_MSG_1 = %s l-a taiat si feliat pe %s
KNIFE_MSG_2 = %s a scos cutitul afara si l-a macelarit pe %s
KNIFE_MSG_3 = %s se furiseaza atent pe la spate si il taie pe %s
KNIFE_MSG_4 = %s l-a injunghiat pe %s
LAST_MSG_1 = Acum toti se bazeaza pe tine!
LAST_MSG_2 = Sper ca mai ai viata.
LAST_MSG_3 = Toti colegii tai de echipa au murit. Bafta!
LAST_MSG_4 = Acum esti singur. Distreaza-te!
HE_MSG_1 = %s ii trimite un mic cadou lui %s
HE_MSG_2 = %s ii arunca un dar micut lui %s
HE_MSG_3 = %s a facut o aruncare precisa catre %s
HE_MSG_4 = %s a avut o explozie mare pentru %s
SHE_MSG_1 = %s s-a detonat cu o grenada
SHE_MSG_2 = %s incearca efectul unei grenade
SHE_MSG_3 = %s inghite grenazi cu totul!
SHE_MSG_4 = %s explodeaza!
HS_MSG_1 = $kn l-a ucis pe $vn cu o impuscatura bine^nplasata pe cap!
HS_MSG_2 = $kn a inlaturat capul lui $vn^ncu $wn
HS_MSG_3 = $kn a transformat capul lui $vn ^nin budinca cu $wn
HS_MSG_4 = $vn a fost invins de $kn
HS_MSG_5 = Capul lui $vn a fost^ntransformat in gelatina rosie
HS_MSG_6 = $kn are o tinta superba cu $wn,^niar $vn stie bine.
HS_MSG_7 = Capul lui $vn a stat prea mult in tinta lui $kn...
DOUBLE_KILL = Wow! %s a facut o dubla ucidere!!!
PREPARE_FIGHT = Pregateste-te de LUPTA!^nRunda %d
KILLED_ROW = Ai ucis %d consecutiv pana acum
DIED_ROUNDS = Ai grija! Ai murit %d runde consecutiv...
KILLED_CHICKEN = Cineva a omorat o gaina!!!
BLEW_RADIO = Cineva a aruncat radioul in aer!!!
REACHED_TARGET = Omg! %s a ajuns la destinatie!
PLANT_BOMB = %s planteaza bomba!
DEFUSING_BOMB = %s dezamorseaza bomba...
KNIFE_MSG_1 = %s l-a tăiat cubulețe pe %s
KNIFE_MSG_2 = %s a scos cuțitul și l-a măcelărit pe %s
KNIFE_MSG_3 = %s s-a furișat pe la spate și l-a cuțitat pe %s
KNIFE_MSG_4 = %s l-a înjunghiat pe %s
LAST_MSG_1 = Acum toți depind de tine!
LAST_MSG_2 = Sper că mai ai putere!
LAST_MSG_3 = Toți coechipierii tăi au murit. Baftă!
LAST_MSG_4 = Acum ești pe barba ta. Distrează-te!
HE_MSG_1 = %s i-a trimis un cadou surpriză lui %s
HE_MSG_2 = %s a aruncat o mică petardă la picioarele lui %s
HE_MSG_3 = %s i-a livrat o grenadă lui %s
HE_MSG_4 = %s l-a aruncat în aer pe %s
SHE_MSG_1 = %s s-a sinucis cu o grenadă
SHE_MSG_2 = %s a înghițit o grenadă
SHE_MSG_3 = %s și-a aruncat o grenadă sub picioare
SHE_MSG_4 = %s a explodat!
HS_MSG_1 = $kn i-a trimis lui $vn un^nglonț fix în cap!
HS_MSG_2 = $kn i-a înlăturat lui $vn^ncapul de pe umeri cu $wn
HS_MSG_3 = $kn a făcut capul lui $vn^nbudincă cu $wn
HS_MSG_4 = $vn a fost umilit de $kn
HS_MSG_5 = Capul lui $vn s-a transformat în gelatină roșie
HS_MSG_6 = $kn are o acuratețe deosebită cu $wn,^niar $vn știe bine
HS_MSG_7 = Capul lui $vn a stat în ținta lui $kn^npentru prea mult timp...
DOUBLE_KILL = Wow! %s made a double kill!!!
PREPARE_FIGHT = Pregătește-te de LUPTĂ!^nRunda %d
KILLED_ROW = Ai ucis %d consecutiv până acum
DIED_ROUNDS = Ai grijă! Ai murit %d runde la rând...
KILLED_CHICKEN = Cineva a omorât o găină!!!
BLEW_RADIO = Cineva a aruncat radio-ul în aer!!!
REACHED_TARGET = Omg! %s a ajuns la destinație!
PLANT_BOMB = %s plantează bomba...
DEFUSING_BOMB = %s dezamorsează bomba...
SET_UP_BOMB = %s ne-a pus bomba!!!
DEFUSED_BOMB = %s a dezamorsat bomba!
FAILED_DEFU = %s nu a reusit sa dezamorseze bomba...
PICKED_BOMB = %s a luat bomba...
DROPPED_BOMB = %s a scapat bomba!!!
CT = CT
CTS = CTI
TERRORIST = TERORIST
TERRORISTS = TERORISTI
REMAINING = %d %s Ramasi in viata...
KILLS = Ucideri
FAILED_DEFU = %s nu a reușit să dezamorseze bomba...
PICKED_BOMB = %s a ridicat bomba...
DROPPED_BOMB = %s a scăpat bomba!!!
CT = Contra-Terorist
CTS = Contra-Teroriști
TERRORIST = Terorist
TERRORISTS = Teroriști
REMAINING = %d %s mași în viață...
REMAINING_ENEMY = Un inamic rămas...
REMAINING_ENEMIES = %d inamici rămași...
KILLS = kills
HS = hs
[hu]
@ -1172,7 +1174,7 @@ PREPARE_FIGHT = Preparem-se para LUTAR!^nRonda %d
KILLED_ROW = Tu mataste %d vezes de seguida
DIED_ROUNDS = Cuidado! Tu morreste %d vezes de seguida...
KILLED_CHICKEN = Alguém matou a galinha!!!
BLEW_RADIO = Alguém explodiu rádio!!!
BLEW_RADIO = Alguém explodiu o rádio!!!
REACHED_TARGET = Oh meu deus! %s alcançou o objetivo!
PLANT_BOMB = %s está a plantar a bomba!
DEFUSING_BOMB = %s está a desarmar a bomba...
@ -1185,7 +1187,7 @@ CT = CT
CTS = CTS
TERRORIST = TERRORISTA
TERRORISTS = TERRORISTAS
REMAINING = %d %s Restante...
REMAINING = %d %s Restante(s)...
REMAINING_ENEMY = Resta um inimigo...
REMAINING_ENEMIES = Restam %d inimigos...
KILLS = mortes

View File

@ -153,15 +153,15 @@ TYPE_LANGMENU = Napishi 'amx_langmenu' v konzolata za da vidish menuto kudeto mo
LANG_MENU_DISABLED = Ezikovoto menu e izkliucheno.
[ro]
LANG_NOT_EXISTS = Acest limbaj nu exista
PERSO_LANG = Limbaj Personal
LANG_MENU = Menu Limbaj
SERVER_LANG = Limbaj Server
SAVE_LANG = Salveaza Limbaj
SET_LANG_SERVER = Limbajul server-ului a fost setat pe "%s"
SET_LANG_USER = Limbajul tau a fost setat pe "%s"
TYPE_LANGMENU = Scrie 'amx_langmenu' in consola pentru afisarea unui menu cu limbaje
LANG_MENU_DISABLED = Menu limbaj dezactivat.
LANG_NOT_EXISTS = Această limbă nu există
PERSO_LANG = Limbă personală
LANG_MENU = Meniu limbi
SERVER_LANG = Limbă server
SAVE_LANG = Salvează limba
SET_LANG_SERVER = Limba serverului a fost setată pe "%s"
SET_LANG_USER = Limba ta a fost setată pe "%s"
TYPE_LANGMENU = Scrie 'amx_langmenu' în consolă pentru a-ți selecta limba preferată
LANG_MENU_DISABLED = Meniu limbă dezactivat.
[hu]
LANG_NOT_EXISTS = A nyelv nem létezik

View File

@ -5,7 +5,7 @@ FRIEND_FIRE = Friendly fire
[de]
NEXT_MAP = Nächste Map:
PLAYED_MAP = Gespielte Maps
PLAYED_MAP = Aktuelle Map
FRIEND_FIRE = Friendly fire
[sr]
@ -69,9 +69,9 @@ PLAYED_MAP = Igrana karta
FRIEND_FIRE = Priqtelski ogun
[ro]
NEXT_MAP = Urmatoarea Harta:
PLAYED_MAP = Harta Actuala
FRIEND_FIRE = Friendly-Fire
NEXT_MAP = Harta următoare:
PLAYED_MAP = Harta actuală
FRIEND_FIRE = Atac coechipieri
[hu]
NEXT_MAP = A következő pálya:

View File

@ -549,44 +549,44 @@ CANT_UNPAUSE_PLUGIN = Pluginut "%s" e sprqn i ne moje da bude slojen/premahnat n
CLEAR_PAUSED = Izchisti faila s plugini na pauza
[ro]
PAUSE_COULDNT_FIND = Nu a fost gasit un plugin ce rezulta cautarea "%s"
PAUSE_PLUGIN_MATCH = Plugin-ul "%s" rezulta cautarea
PAUSE_CONF_CLEARED = Fisier-ul de configuratie a fost golit. Reincarca harta daca este nevoie
PAUSE_ALR_CLEARED = Configuratia a fost golita deja!
PAUSE_CONF_SAVED = Configuratia a fost salvata cu succes
PAUSE_SAVE_FAILED = Salvarea configuratiei a esuat!!!
PAUSE_COULDNT_FIND = Nu a fost găsit niciun plugin după căutarea "%s"
PAUSE_PLUGIN_MATCH = Pluginul îndeplinește căutarea "%s"
PAUSE_CONF_CLEARED = Fișierul de configurație a fost golit. Reîncarcă harta dacă este nevoie
PAUSE_ALR_CLEARED = Configurația a fost golită deja!
PAUSE_CONF_SAVED = Configurația a fost salvată cu succes
PAUSE_SAVE_FAILED = Salvarea configurației a eșuat!
LOCKED = BLOCAT
PAUSE_UNPAUSE = Intrerupe/Reincarca Plugin-uri
CLEAR_STOPPED = Goleste fisier-ul cu cele intrerupte
SAVE_STOPPED = Salveaza fisier-ul cu cele intrerupte
PAUSED_PLUGIN = Plugin-ul %d a fost intrerupt
PAUSED_PLUGINS = Au fost intrerupte %d plugin-uri
UNPAUSED_PLUGIN = Plugin-ul %d a fost reincarcat
UNPAUSED_PLUGINS = Au fost reincarcate %d plugin-uri
CANT_MARK_MORE = Nu se pot marca mai multe plugin-uri ca intrerupte!
PAUSE_LOADED = Intrerupe plugin-uri: Plugin-uri incarcate
STOPPED = intrerupte
PAUSE_UNPAUSE = Întrerupe/Reactivează pluginuri
CLEAR_STOPPED = Golește fișierul cu pluginurile întrerupte
SAVE_STOPPED = Salvează fișierul cu pluginurile întrerupte
PAUSED_PLUGIN = Pluginul %d a fost întrerupt
PAUSED_PLUGINS = Au fost întrerupte %d pluginuri
UNPAUSED_PLUGIN = Pluginul %d a fost reactivat
UNPAUSED_PLUGINS = Au fost reactivate %d pluginuri
CANT_MARK_MORE = Nu poți reactiva mai multe pluginuri
PAUSE_LOADED = Întrerupe plugin-uri: Pluginuri încărcate
STOPPED = întrerupte
VERSION = versiune
FILE = fisier
PAUSE_ENTRIES = Intrari %d - %d din %d (%d functioneaza)
FILE = fișier
PAUSE_ENTRIES = Se afișează %d - %d din %d (%d funcționează)
PAUSE_USE_MORE = Scrie 'amx_pausecfg list %d' pentru mai mult
PAUSE_USE_BEGIN = Scrie 'amx_pausecfg list 1' pentru inceput
PAUSE_USAGE = Folosire: amx_pausecfg <comanda> [nume]
PAUSE_USE_BEGIN = Scrie 'amx_pausecfg list 1' pentru a începe
PAUSE_USAGE = Utilizare: amx_pausecfg <comandă> [nume]
PAUSE_COMMANDS = Comenzi
COM_PAUSE_OFF = ^toff - intrerupe toate plugin-urile ce nu sunt in lista
COM_PAUSE_ON = ^ton - reincarca toate plugin-urile ce nu sunt in lista
COM_PAUSE_STOP = ^tstop <fisier> - opreste un plugin
COM_PAUSE_PAUSE = ^tpause <fisier> - intrerupe un plugin
COM_PAUSE_ENABLE = ^tenable <file> - incarca un plugin
COM_PAUSE_SAVE = ^tsave - salveaza o lista a plugin-urilor oprite
COM_PAUSE_CLEAR = ^tclear - goleste o lista a plugin-urilor oprite
COM_PAUSE_LIST = ^tlist [id] - listeaza plugin-urile
COM_PAUSE_ADD = ^tadd <title> - marcheaza un plugin ca si reincarcat
SAVE_PAUSED = Salvarea oprita
COM_PAUSE_SAVE_PAUSED = ^tsave - salveaza o lista cu pluginurile oprite
COM_PAUSE_CLEAR_PAUSED = ^tclear - sterge lista cu pluginurile oprite
CANT_UNPAUSE_PLUGIN = Pluginul "%s" este oprit si nu poate fi pus pe pauza sau scos din pauza.
CLEAR_PAUSED = Goleste fisier-ul cu cele oprite
COM_PAUSE_OFF = ^toff - întrerupe toate pluginurile care nu se află în listă
COM_PAUSE_ON = ^ton - reactivează toate pluginurile
COM_PAUSE_STOP = ^tstop <fisier> - oprește un plugin
COM_PAUSE_PAUSE = ^tpause <fisier> - întrerupe un plugin
COM_PAUSE_ENABLE = ^tenable <file> - activează un plugin
COM_PAUSE_SAVE = ^tsave - salvează o listă a pluginurilor întrerupte
COM_PAUSE_CLEAR = ^tclear - golește o listă a pluginurilor întrerupte
COM_PAUSE_LIST = ^tlist [id] - listează pluginurile
COM_PAUSE_ADD = ^tadd <title> - marchează un plugin ca și reactivat
SAVE_PAUSED = Salvare oprită
COM_PAUSE_SAVE_PAUSED = ^tsave - salvează o listă cu pluginurile oprite
COM_PAUSE_CLEAR_PAUSED = ^tclear - șterge listă cu pluginurile oprite
CANT_UNPAUSE_PLUGIN = Pluginul "%s" este oprit și nu poate fi întrerupt sau reactivat.
CLEAR_PAUSED = Golește fișierul cu pluginurile oprite
[hu]
PAUSE_COULDNT_FIND = Nem található a plugin "%s"
@ -936,18 +936,18 @@ CLEAR_PAUSED = Pastro skedarin me pushime
[pt]
PAUSE_COULDNT_FIND = Não foi possível encontrar um plugin coincidindo "%s"
PAUSE_PLUGIN_MATCH = Plugin coincidindo "%s"
PAUSE_CONF_CLEARED = Ficheiro de Configuração limpo. Recarrega o map se for necessário
PAUSE_ALR_CLEARED = A Configuração já foi limpa!
PAUSE_CONF_CLEARED = Ficheiro de configuração limpo. Recarrega o mapa se for necessário
PAUSE_ALR_CLEARED = A configuração já foi limpa!
PAUSE_CONF_SAVED = Configuração guardada com sucesso
PAUSE_SAVE_FAILED = Falha ao guardar a Configuração!!!
PAUSE_SAVE_FAILED = Falha ao guardar a configuração!!!
LOCKED = BLOQUEADO
PAUSE_UNPAUSE = Pausar/Despausar Plugins
CLEAR_STOPPED = Limpar ficheiro de plugins parados
SAVE_STOPPED = Guardar plugins parados
PAUSED_PLUGIN = %d plugin pausado
PAUSED_PLUGINS = %d plugins pausados
UNPAUSED_PLUGIN = %d plugin despausado
UNPAUSED_PLUGINS = %d plugins despausados
PAUSED_PLUGIN = %d plugin foi pausado
PAUSED_PLUGINS = %d plugins foram pausados
UNPAUSED_PLUGIN = %d plugin foi despausado
UNPAUSED_PLUGINS = %d plugins foram despausados
CANT_MARK_MORE = Não é possível marcar mais plugins como não-pausáveis!
PAUSE_LOADED = Pausar Plugins: Plugins carregados
STOPPED = parado
@ -958,17 +958,17 @@ PAUSE_USE_MORE = Usa 'amx_pausecfg list %d' para mostrar mais
PAUSE_USE_BEGIN = Usa 'amx_pausecfg list 1' para voltar ao início
PAUSE_USAGE = Uso: amx_pausecfg <comando> [nome]
PAUSE_COMMANDS = Comandos
COM_PAUSE_OFF = ^toff - pausar todos os plugins que não estão na lista
COM_PAUSE_ON = ^ton - despausar todos os plugins
COM_PAUSE_STOP = ^tstop <ficheiro> - parar um plugin
COM_PAUSE_PAUSE = ^tpause <ficheiro> - pausar um plugin
COM_PAUSE_ENABLE = ^tenable <ficheiro> - ativar um plugin
COM_PAUSE_SAVE = ^tsave - guardar a lista de plugins parados
COM_PAUSE_CLEAR = ^tclear - limpar a lista de plugins parados
COM_PAUSE_LIST = ^tlist [id] - listar plugins
COM_PAUSE_ADD = ^tadd <título> - marcar um plugin como não-pausável
COM_PAUSE_OFF = ^toff - pausa todos os plugins que não estão na lista
COM_PAUSE_ON = ^ton - despausa todos os plugins
COM_PAUSE_STOP = ^tstop <ficheiro> - para um plugin
COM_PAUSE_PAUSE = ^tpause <ficheiro> - pausa um plugin
COM_PAUSE_ENABLE = ^tenable <ficheiro> - ativa um plugin
COM_PAUSE_SAVE = ^tsave - guarda a lista de plugins parados
COM_PAUSE_CLEAR = ^tclear - limpa a lista de plugins parados
COM_PAUSE_LIST = ^tlist [id] - lista plugins
COM_PAUSE_ADD = ^tadd <título> - marca um plugin como não-pausável
SAVE_PAUSED = Guardar plugins pausados
COM_PAUSE_SAVE_PAUSED = ^tsave - guarda a lista de plugins pausados
COM_PAUSE_CLEAR_PAUSED = ^tclear - limpa a lista de plugins pausados
CANT_UNPAUSE_PLUGIN = O Plugin "%s" está parado e não pode ser pausado nem despausado.
CANT_UNPAUSE_PLUGIN = O plugin "%s" está parado e não pode ser nem pausado nem despausado.
CLEAR_PAUSED = Limpar ficheiro de plugins pausados

View File

@ -267,21 +267,21 @@ CANT_PERF_PLAYER = Tazi comanda ne moje da se izpolzva vurhu igracha "%s"
[ro]
ADMIN_BAN_1 = ADMIN: ban %s
ADMIN_BAN_2 = ADMIN %s: ban %s
BAN_MENU = Menu Ban
BAN_MENU = Meniu ban
BAN_FOR_MIN = Ban %d minute
BAN_PERM = Ban permanent
SLAP_SLAY_MENU = Slap/Slay
SLAP_WITH_DMG = Slap cu %d dmg
SLAP_WITH_DMG = Slap cu %d damage
SLAY = Slay
KICK_MENU = Menu Kick
ADMIN_TRANSF_1 = ADMIN: transfera %s la %s
ADMIN_TRANSF_2 = ADMIN %s: transfera %s la %s
TEAM_MENU = Menu Echipe
TRANSF_TO = Transfera la %s
TRANSF_SILENT = tăcut transfer
CL_CMD_MENU = Menu Comenzi Jucator
NO_CMDS = Nici o comanda valabila
CANT_PERF_PLAYER = Aceasta comanda nu poate fi executata pe jucatorul "%s"
KICK_MENU = Meniu kick
ADMIN_TRANSF_1 = ADMIN: transferă pe %s la %s
ADMIN_TRANSF_2 = ADMIN %s: transferă pe %s la %s
TEAM_MENU = Meniu schimbare echipe
TRANSF_TO = Transferă la %s
TRANSF_SILENT = transfer silențios
CL_CMD_MENU = Meniu comenzi jucător
NO_CMDS = Nicio comandă disponibilă
CANT_PERF_PLAYER = Această comandă nu poate fi executată pe jucătorul "%s"
[hu]
ADMIN_BAN_1 = ADMIN: %s bannolva

View File

@ -87,8 +87,8 @@ ADMIN_MENU_SAVEDCFG = Menu: %N saved items restrictions in "%s"
[de]
EQ_WE_RES = Ausrüstung und Waffen wurden verboten
EQ_WE_UNRES = Ausrüstung und Waffen wurden freigegeben
HAVE_BEEN = sind gewesen
HAS_BEEN = ist gewesen
HAVE_BEEN = wurden
HAS_BEEN = wurde
RESTRICTED = verboten
UNRESTRICTED = wieder erlaubt
NO_EQ_WE = Konnte diese Ausrüstung oder Waffe nicht finden
@ -105,9 +105,9 @@ REST_COULDNT_LOAD = Konfiguration konnte nicht geladen werden (Datei "%s")
COM_REST_USAGE = Benutze: amx_restrict <Befehl> [Wert]
COM_REST_COMMANDS = Befehle:
COM_REST_ON = " on - Setze Verbot auf die gesamte Ausrüstung"
COM_REST_OFF = " off - Verbot für Ausrüstung aufheben"
COM_REST_OFF = " off - Verbot für die gesamte Ausrüstung aufheben"
COM_REST_ONV = " on <value> [...] - Setze spezielles Verbot"
COM_REST_OFFV = " off <value> [...] - Spezielles Verbot aufgehoben"
COM_REST_OFFV = " off <value> [...] - Spezielles Verbot aufheben"
COM_REST_LIST = " list <value> - Zeigt die Liste der verfügbaren Waffen und Ausrüstungen"
COM_REST_SAVE = " save - Verbote speichern"
COM_REST_LOAD = " load [file] - Lädt Verbote [aus einer Datei]"
@ -155,14 +155,20 @@ MENU_ITEM_M249 = FN M249 Para
MENU_ITEM_VEST = Kevlarweste
MENU_ITEM_VESTHELM = Kevlarweste & Helm
MENU_ITEM_FLASHBANG = Blendgranate
MENU_ITEM_HEGRENADE = HE Granate
MENU_ITEM_SMOKEGRENADE = Rauch Granate
MENU_ITEM_DEFUSER = Entschärfungs Kit
MENU_ITEM_HEGRENADE = HE-Granate
MENU_ITEM_SMOKEGRENADE = Rauchgranate
MENU_ITEM_DEFUSER = Entschärfungskit
MENU_ITEM_NVGS = Nachtsichtgerät
MENU_ITEM_SHIELD = Tactical Shield
MENU_ITEM_PRIAMMO = Primär Waffen Munition
MENU_ITEM_SECAMMO = Sekundär Waffen Munition
MENU_ITEM_PRIAMMO = Primärwaffenmunition
MENU_ITEM_SECAMMO = Sekundärwaffenmunition
CONFIG_FILE_HEADER = ; Erstellt durch %s Plugin. Nicht verändern!^n; Wert Name^n
ADMIN_UPD_RES_1 = ADMIN: Waffen- und Ausrüstungsverbote wurden aktualisiert.
ADMIN_UPD_RES_2 = ADMIN %s: Waffen- und Ausrüstungsverbote wurden aktualisiert.
ADMIN_CMD_UPDATEDCFG = Cmd: %N Waffen- und Ausrüstungsverbote wurden aktualisiert.
ADMIN_CMD_LOADEDCFG = Cmd: %N Waffen- und Ausrüstungsverbote wurden von "%s" geladen.
ADMIN_CMD_SAVEDCFG = Cmd: %N Waffen- und Ausrüstungsverbote wurden in "%s" gespeichert.
ADMIN_MENU_SAVEDCFG = Menu: %N Waffen- und Ausrüstungsverbote wurden in "%s" gespeichert.
[sr]
EQ_WE_RES = Oprema i oruzje su zabranjeni
@ -702,83 +708,83 @@ ADMIN_CMD_SAVEDCFG = Cmd: %N zapazi zabranite za orujiqta v "%s"
ADMIN_MENU_SAVEDCFG = Menu: %N zapazi zabranite za orujiqta v "%s"
[ro]
EQ_WE_RES = Echipamentul si armele au fost restrictionate
EQ_WE_UNRES = Restrictia echipamentului si armelor a fost inlaturata
EQ_WE_RES = Echipamentul și armele au fost restricționate
EQ_WE_UNRES = Restricția echipamentului și a armelor a fost înlaturată
HAVE_BEEN = au fost
HAS_BEEN = a fost
RESTRICTED = adaugate restrictii
UNRESTRICTED = inlaturate restrictile
NO_EQ_WE = Nu a putut fi gasit acest echipament sau arma
WEAP_RES = Restrictii Arme
RESTRICTED = adăugate restricții
UNRESTRICTED = înlăturate restricțiile
NO_EQ_WE = Nu a putut fi găsit acest echipament sau armă
WEAP_RES = Restricții arme
VALUE = valoare
REST_ENTRIES_OF = Intrari %i - %i din %i
REST_USE_MORE = Scrie 'amx_restrict list %i' pentru mai mult
REST_USE_BEGIN = Scrie 'amx_restrict list 1' pentru inceput
REST_ENTRIES_OF = Se afișează %i - %i din %i
REST_USE_MORE = Scrie 'amx_restrict list %i' pentru mai multe
REST_USE_BEGIN = Scrie 'amx_restrict list 1' pentru a începe
REST_USE_HOW = Scrie 'amx_restrict list <valoare>' (1 -> 8)
REST_CONF_SAVED = Configuratia a fost salvata (fisier "%s")
REST_COULDNT_SAVE = Nu s-a putut salva configuratia (fisier "%s")
REST_CONF_LOADED = Configuratia a fost incarcata (fisier "%s")
REST_COULDNT_LOAD = Nu s-a putut incarca configuratia (file "%s")
COM_REST_USAGE = Folosire: amx_restrict <comanda> [valoare]
REST_CONF_SAVED = Configurația a fost salvată (fișier "%s")
REST_COULDNT_SAVE = Nu s-a putut salva configurația (fișier "%s")
REST_CONF_LOADED = Configurația a fost încarcată (fișier "%s")
REST_COULDNT_LOAD = Nu s-a putut încărca configurația (fișier "%s")
COM_REST_USAGE = Utilizare: amx_restrict <comandă> [valoare]
COM_REST_COMMANDS = Comenzi:
COM_REST_ON = " on - Adauga restrictii pe tot echipamentul"
COM_REST_OFF = " off - Inlatura restrictile de pe tot echipamentul"
COM_REST_ONV = " on <valoare> [...] - Adauga restrictile specificate"
COM_REST_OFFV = " off <valoare> [...] - Inlatura restrictile specificate"
COM_REST_LIST = " list <valoare> - Afisare lista cu echipamente si arme"
COM_REST_SAVE = " save - Salveaza restrictii"
COM_REST_LOAD = " load [fisier] - Incarca restrictii [dintr-un fisier]"
COM_REST_VALUES = Valorile valabile pentru restrictionare sunt:^nammo, equip, pistol, shotgun, sub, rifle, sniper, machine
COM_REST_ON = " on - Adaugă restricții pe tot echipamentul"
COM_REST_OFF = " off - Înlătură restricțiile de pe tot echipamentul"
COM_REST_ONV = " on <valoare> [...] - Adaugă restricțiile specificate"
COM_REST_OFFV = " off <valoare> [...] - Înlătură restricțiile specificate"
COM_REST_LIST = " list <valoare> - Afișare listă cu echipamente și arme"
COM_REST_SAVE = " save - Salvează restricții"
COM_REST_LOAD = " load [fisier] - Încarcă restricții [dintr-un fișier]"
COM_REST_VALUES = Valorile valabile pentru restricționare sunt:^nammo, equip, pistol, shotgun, sub, rifle, sniper, machine
COM_REST_TYPE = Scrie 'amx_restrict list' pentru mai multe valori specificate
REST_WEAP = Restrictioneaza arme
SAVE_SET = Salveaza setari
CONF_SAV_SUC = Configuratia a fost salvata cu succes
CONF_SAV_FAIL = Salvarea configuratiei a esuat!!!
REG_CMD_MENU = - arata meniul de restrictionare al armelor
REG_CMD_REST = - ajutor pentru restrictionarea armelor
RESTRICTED_ITEM = * Itemul este restrictionat *
MENU_TITLE_HANDGUNS = Handguns
REST_WEAP = Restricționează arme
SAVE_SET = Salvează setări
CONF_SAV_SUC = Configurația a fost salvată cu succes
CONF_SAV_FAIL = Salvarea configurației a eșuat!
REG_CMD_MENU = - arată meniul de restricționare al armelor
REG_CMD_REST = - ajutor pentru restricționarea armelor
RESTRICTED_ITEM = * Itemul este restricționat *
MENU_TITLE_HANDGUNS = Pistols
MENU_TITLE_SHOTGUNS = Shotguns
MENU_TITLE_SUBMACHINES = Sub-Machine Guns
MENU_TITLE_RIFLES = Assault Rifles
MENU_TITLE_SNIPERS = Sniper Rifles
MENU_TITLE_RIFLES = Puști de asalt
MENU_TITLE_SNIPERS = Snipere
MENU_TITLE_MACHINE = Machine Guns
MENU_TITLE_EQUIPMENT = Echipament
MENU_TITLE_AMMUNITION = Munitie
MENU_ITEM_USP = H&K USP .45 Tactical
MENU_ITEM_GLOCK18 = Glock18 Select Fire
MENU_ITEM_DEAGLE = Desert Eagle .50AE
MENU_ITEM_P228 = SIG P228
MENU_ITEM_ELITE = Dual Beretta 96G Elite
MENU_ITEM_FIVESEVEN = FN Five-Seven
MENU_ITEM_M3 = Benelli M3 Super90
MENU_ITEM_XM1014 = Benelli XM1014
MENU_ITEM_MP5NAVY = H&K MP5-Navy
MENU_ITEM_TMP = Steyr Tactical Machine Pistol
MENU_ITEM_P90 = FN P90
MENU_ITEM_MAC10 = Ingram MAC-10
MENU_ITEM_UMP45 = H&K UMP45
MENU_TITLE_AMMUNITION = Muniție
MENU_ITEM_USP = USP
MENU_ITEM_GLOCK18 = Glock18
MENU_ITEM_DEAGLE = Desert Eagle
MENU_ITEM_P228 = P228
MENU_ITEM_ELITE = Dual Beretta
MENU_ITEM_FIVESEVEN = Five-Seven
MENU_ITEM_M3 = M3 Super90
MENU_ITEM_XM1014 = XM1014
MENU_ITEM_MP5NAVY = MP5-Navy
MENU_ITEM_TMP = TMP
MENU_ITEM_P90 = P90
MENU_ITEM_MAC10 = MAC-10
MENU_ITEM_UMP45 = UMP45
MENU_ITEM_AK47 = AK-47
MENU_ITEM_SG552 = Sig SG-552 Commando
MENU_ITEM_M4A1 = Colt M4A1 Carbine
MENU_ITEM_SG552 = SG-552
MENU_ITEM_M4A1 = M4A1
MENU_ITEM_GALIL = Galil
MENU_ITEM_FAMAS = Famas
MENU_ITEM_AUG = Steyr Aug
MENU_ITEM_SCOUT = Steyr Scout
MENU_ITEM_AWP = AI Arctic Warfare/Magnum
MENU_ITEM_G3SG1 = H&K G3/SG-1 Sniper Rifle
MENU_ITEM_SG550 = Sig SG-550 Sniper
MENU_ITEM_M249 = FN M249 Para
MENU_ITEM_VEST = Vesta Kevlar
MENU_ITEM_VESTHELM = Vesta Kevlar & Casca
MENU_ITEM_FLASHBANG = Flash
MENU_ITEM_HEGRENADE = Grenada Exploziva
MENU_ITEM_SMOKEGRENADE = Grenada Smoke
MENU_ITEM_DEFUSER = Kit Dezamorsare
MENU_ITEM_NVGS = Ochelari de Noapte
MENU_ITEM_AUG = AUG
MENU_ITEM_SCOUT = Scout
MENU_ITEM_AWP = AWP
MENU_ITEM_G3SG1 = G3SG1
MENU_ITEM_SG550 = SG-550
MENU_ITEM_M249 = M249 Para
MENU_ITEM_VEST = Vestă Kevlar
MENU_ITEM_VESTHELM = Vestă Kevlar & Cască
MENU_ITEM_FLASHBANG = Grenadă Flashbang
MENU_ITEM_HEGRENADE = Grenadă HE
MENU_ITEM_SMOKEGRENADE = Grenadă Smoke
MENU_ITEM_DEFUSER = Kit dezamorsare
MENU_ITEM_NVGS = Ochelari de noapte
MENU_ITEM_SHIELD = Scut Tactic
MENU_ITEM_PRIAMMO = Gloante pentru armele principale
MENU_ITEM_SECAMMO = Gloante pentru armele secundare
MENU_ITEM_PRIAMMO = Gloanțe pentru armele principale
MENU_ITEM_SECAMMO = Gloanțe pentru armele secundare
CONFIG_FILE_HEADER = ; Generat de pluginul %s. Nu modifica!^n; numele valorii^n
[hu]
@ -1363,9 +1369,9 @@ REST_ENTRIES_OF = Entradas %i - %i de %i
REST_USE_MORE = Usa 'amx_restrict list %i' para mostrar mais
REST_USE_BEGIN = Usa 'amx_restrict list 1' para voltar ao início
REST_USE_HOW = Usa 'amx_restrict list <valor>' (1 -> 8)
REST_CONF_SAVED = A Configuração foi guardada (ficheiro "%s")
REST_CONF_SAVED = A configuração foi guardada (ficheiro "%s")
REST_COULDNT_SAVE = Não foi possível guardar a configuração (ficheiro "%s")
REST_CONF_LOADED = A Configuração foi carregada (ficheiro "%s")
REST_CONF_LOADED = A configuração foi carregada (ficheiro "%s")
REST_COULDNT_LOAD = Não foi possível carregar a configuração (ficheiro "%s")
COM_REST_USAGE = Uso: amx_restrict <comando> [valor]
COM_REST_COMMANDS = Comandos:
@ -1381,7 +1387,7 @@ COM_REST_TYPE = Escreve 'amx_restrict list' para mais valores específi
REST_WEAP = Restringir Armas
SAVE_SET = Guardar definições
CONF_SAV_SUC = Configuração guardada com sucesso
CONF_SAV_FAIL = Falha ao guardar a Configuração!!!
CONF_SAV_FAIL = Falha ao guardar a configuração!!!
REG_CMD_MENU = - mostra o menu de restrição de armas
REG_CMD_REST = - mostra a ajuda para restrição de armas
RESTRICTED_ITEM = * Este item é restrito *
@ -1427,7 +1433,7 @@ MENU_ITEM_NVGS = Óculos de Visão Noturna
MENU_ITEM_SHIELD = Escudo Tático
MENU_ITEM_PRIAMMO = Munição da arma primária
MENU_ITEM_SECAMMO = Munição da arma secundária
CONFIG_FILE_HEADER = ; Gerado por %s Plugin. Não modifique!^n; nome do valor^n
CONFIG_FILE_HEADER = ; Gerado pelo Plugin %s. Não modifique!^n; nome do valor^n
ADMIN_UPD_RES_1 = ADMIN: atualizou a restrição de itens
ADMIN_UPD_RES_2 = ADMIN %s: atualizou a restrição de itens
ADMIN_CMD_UPDATEDCFG = Cmd: %N atualizou a restrição de itens

View File

@ -69,9 +69,9 @@ MSG_FREQ = Skrolvashtoto suobshtenie se pokazva vseki: %d:%02d minuti
MSG_DISABLED = Skrolvashtoto suobshtenie e izkliucheno
[ro]
MIN_FREQ = Frecventa minima pentru acest mesaj este %d secunde
MSG_FREQ = Frecventa afisarii messajului Rulant: %d:%02d minute
MSG_DISABLED = Mesajul Rulant dezactivat
MIN_FREQ = Frecvența minimă pentru acest mesaj este de %d secunde
MSG_FREQ = Frecvența afișării mesajului rulant: %d:%02d minute
MSG_DISABLED = Mesaj rulant dezactivat
[hu]
MIN_FREQ = A minimum idő erre az üzenetre %d másodperc

View File

@ -133,7 +133,7 @@ HEAD_MSG2 = $kn entfernte den Kopf von $vn^nmit einem Präzisionsschuss.
HEAD_MSG3 = $kn verwandelte den Kopf ^nvon $vn in Pudding.
HEAD_MSG4 = $vn killte $kn durch einen Kopfschuss.
HEAD_MSG5 = $vn's Kopf wurde in der Gegend verteilt
HEAD_MSG6 = $kn hat einen super ^nTreffer gelandet,das weiss ^n$vn nun auch.
HEAD_MSG6 = $kn hat einen super ^nTreffer gelandet,das weiß ^n$vn nun auch.
HEAD_MSG7 = $vn's Kopf war ein bisschen zu lange im Fadenkreuz von $kn...
DOUBLE_MSG1 = Wow! %s machte einen Doppelkill!!!
DOUBLE_MSG2 = Unglaublich! %s macht einen dreifachen Kill !!!
@ -141,8 +141,8 @@ DOUBLE_MSG3 = Überraschung! %s macht %d Kills auf einmal !!!
MORTAR_MSG1 = %s stellte den Mörser auf und schickte %s in den Himmel.
MORTAR_MSG2 = %s killte %s über eine lange Distanz.
KILL_INFO1 = %s killte dich mit der %s^nüber eine Entfernung von %.2f Meter.^n
KILL_INFO2 = Er machte %d Schaden bei dir mit %d Treffern ^nund hat noch %dHP.^n
KILL_INFO3 = Du machtest %d Schaden bei ihm mit %d Treffern.^n
KILL_INFO2 = Er machte %d Schaden bei dir mit %d Treffer(n) ^nund hat noch %dHP.^n
KILL_INFO3 = Du machtest %d Schaden bei ihm mit %d Treffer(n).^n
KILL_INFO4 = Du hast ihn getroffen in den/das:^n%s^n
STILL_HAS = %s hat noch %dHP
NO_KILLER = Du hast keinen Killer...
@ -153,14 +153,14 @@ VICTIMS = Opfer:
DMG = Schaden
HIT_S = Treffer
YOU_HIT = Du trafst %s in:
SERVER_STATS = Server Statistik
SERVER_STATS = Serverstatistik
SHOW_STATS = Statistik anzeigen
SHOW_RANK = Rang anzeigen
TA_MSG = %s schiesst auf einen Kameraden
TA_MSG = %s schießt auf einen Kameraden
TK_MSG = %s killte einen Kameraden!
NADE_CAUGHT = Wow! %s fängt eine gegnerische Granate!
NADE_FAILEDTK = Oops.. %s killte dich bei dem Versuch, die Granate zurückzuwerfen..
NADE_FAILED = %s konnte feindliche Granate nicht zurückwerfen.
NADE_FAILED = %s konnte die feindliche Granate nicht zurückwerfen.
NADE_MASTER = OMG! %s ist der Meister der Granaten !!!
DISABLED_MSG = Server hat diese Option deaktiviert.
MOST_KILLS = Meisten Kills
@ -1333,94 +1333,94 @@ WHOLEBODY = tot corpul
HEAD = cap
CHEST = piept
STOMACH = stomac
LEFTARM = brat stang
RIGHTARM = brat drept
LEFTLEG = picior stang
LEFTARM = braț stâng
RIGHTARM = braț drept
LEFTLEG = picior stâng
RIGHTLEG = picior drept
MULTI_MSG = Multi-Ucidere! %s^ncu %d ucideri (%d hs)
ULTRA_MSG = Ultra-Ucidere!!! %s^ncu %d ucideri (%d hs)
SPREE_MSG = %s ARE CHEF DE MACEL!!!^nwith %d kills (%d hs)
RAMPAGE_MSG = %s ESTE FURIOS!!!^ncu %d ucideri (%d hs)
UNSTOPPABLE_MSG = %s ESTE DE NEOPRIT!!!^ncu %d ucideri (%d hs)
MONSTER_MSG = %s ESTE UN MONSTRU!^ncu %d ucideri (%d hs)
GODLIKE_MSG = %s ESTE DIVIN!!!!^ncu %d ucideri (%d hs)
MULTI_SMALL = %s: Multi-Ucidere!
ULTRA_SMALL = %s: Ultra-Ucidere!!!
SPREE_SMALL = %s ARE CHEF DE MACEL!!!
RAMPAGE_SMALL = %s ESTE FURIOS!!!
UNSTOPPABLE_SMALL = %s ESTE DE NEOPRIT!!!
MONSTER_SMALL = %s ESTE UN MONSTRU!
MULTI_MSG = Multi-Kill! %s^ncu %d kills (%d hs)
ULTRA_MSG = Ultra-Kill!!! %s^ncu %d kills (%d hs)
SPREE_MSG = %s ARE CHEF DE MĂCEL!!!^ncu %d kills (%d hs)
RAMPAGE_MSG = E FURIOS!!! %s^ncu %d kills (%d hs)
UNSTOPPABLE_MSG = %s E DE NEOPRIT!!!^ncu %d kills (%d hs)
MONSTER_MSG = %s E UN MONSTRU!^ncu %d kills (%d hs)
GODLIKE_MSG = %s ESTE DIVIN!!!!^ncu %d kills (%d hs)
MULTI_SMALL = %s: Multi-Kill!
ULTRA_SMALL = %s: Ultra-Kill!!!
SPREE_SMALL = %s ARE CHEF DE MĂCEL!!!
RAMPAGE_SMALL = %s E FURIOS!!!
UNSTOPPABLE_SMALL = %s E DE NEOPRIT!!!
MONSTER_SMALL = %s E UN MONSTRU!
GODLIKE_SMALL = %s ESTE DIVIN!!!
KNIFE_MSG1 = %s l-a taiat si feliat pe %s
KNIFE_MSG2 = %s a scos cutitul afara si l-a macelarit pe %s
KNIFE_MSG3 = %s se furiseaza atent pe la spate si il taie %s
KNIFE_MSG4 = %s l-a injunghiat pe %s
HE_MSG1 = %s ii trimite un mic cadou lui %s
HE_MSG2 = %s ii arunca un dar micut lui %s
HE_MSG3 = %s a facut o aruncare precisa catre %s
HE_MSG4 = %s a avut o explozie mare pentru %s
SHE_MSG1 = %s s-a detonat cu o grenada
SHE_MSG2 = %s incearca efectul unei grenade
SHE_MSG3 = %s inghite grenazi cu totul!
SHE_MSG4 = %s explodeaza!
HEAD_MSG1 = $kn l-a ucis pe $vn cu o impuscatura bine^nplasata pe cap!
HEAD_MSG2 = $kn a inlaturat capul lui $vn^ncu $wn
HEAD_MSG3 = $kn a transformat capul lui $vn ^nin budinca cu $wn
HEAD_MSG4 = $vn a fost invins de $kn
HEAD_MSG5 = Capul lui $vn a fost^ntransformat in gelatina rosie
HEAD_MSG6 = $kn are o tinta superba cu $wn,^niar $vn stie bine.
HEAD_MSG7 = Capul lui $vn a stat prea mult in tinta lui $kn...
DOUBLE_MSG1 = Wow! %s a facut o dubla ucidere!!!
DOUBLE_MSG2 = Incredibil! %s a facut o tripla ucidere !!!
DOUBLE_MSG3 = Uimitor! %s a ucis %d oameni deodata !!!
MORTAR_MSG1 = %s a plasat bine mortarul si l-a aruncat in aer pe %s
MORTAR_MSG2 = %s l-a ucis pe %s dintr-o raza mare de actiune
KILL_INFO1 = %s te-a ucis cu %s^nde la distanta de %.2f metri.^n
KILL_INFO2 = El ti-a facut %d dmg din %d lovituri^si inca mai are %dhp.^n
KILL_INFO3 = Tu i-ai facut %d dmg din %d lovituri.^n
KILL_INFO4 = El te-a lovit in:^n%s^n
STILL_HAS = %s inca mai are %dhp
NO_KILLER = Nu ai nici o ucidere...
KNIFE_MSG1 = %s l-a tăiat cubulețe pe %s
KNIFE_MSG2 = %s a scos cuțitul și l-a măcelărit pe %s
KNIFE_MSG3 = %s s-a furișat pe la spate și l-a cuțitat pe %s
KNIFE_MSG4 = %s l-a înjunghiat pe %s
HE_MSG1 = %s i-a trimis un cadou surpriză lui %s
HE_MSG2 = %s a aruncat o mică petardă la picioarele lui %s
HE_MSG3 = %s i-a livrat o grenadă lui %s
HE_MSG4 = %s l-a aruncat în aer pe %s
SHE_MSG1 = %s s-a sinucis cu o grenadă
SHE_MSG2 = %s a înghițit o grenadă
SHE_MSG3 = %s și-a aruncat o grenadă sub picioare
SHE_MSG4 = %s a explodat!
HEAD_MSG1 = $kn i-a trimis lui $vn un^nglonț fix în cap!
HEAD_MSG2 = $kn i-a înlăturat lui $vn^ncapul de pe umeri cu $wn
HEAD_MSG3 = $kn a făcut capul lui $vn^nbudincă cu $wn
HEAD_MSG4 = $vn a fost umilit de $kn
HEAD_MSG5 = Capul lui $vn s-a transformat în gelatină roșie
HEAD_MSG6 = $kn are o acuratețe deosebită cu $wn,^niar $vn știe bine
HEAD_MSG7 = Capul lui $vn a stat în ținta lui $kn^npentru prea mult timp...
DOUBLE_MSG1 = Wow! %s a făcut un double-kill !
DOUBLE_MSG2 = Incredibil! %s a făcut un tripple-kill !
DOUBLE_MSG3 = Uimitor! %s a omorât %d inamici simultan !
MORTAR_MSG1 = %s a setat bine tirul și l-a omorât pe %s
MORTAR_MSG2 = %s l-a omorât de la mare distanță pe %s
KILL_INFO1 = %s te-a omorât cu %s^nde la distanța de %.2f metri.^n
KILL_INFO2 = Ți-a provocat %d damage în %d lovituri^nși el încă are %d HP.^n
KILL_INFO3 = Tu i-ai provocat %d damage în %d lovituri.^n
KILL_INFO4 = El te-a lovit în:^n%s^n
STILL_HAS = %s încă mai are %d HP
NO_KILLER = Nu te-a omorât nimeni...
TOPX = Top %d
FFIRE_IS = Friendly-fire:
FFIRE_IS = Atac coechipieri:
ATTACKERS = Atacatori:
VICTIMS = Victime:
DMG = dmg
DMG = damage
HIT_S = lovituri
YOU_HIT = Tu l-ai lovit pe %s in:
SERVER_STATS = Statisticile Server-ului
SHOW_STATS = Arata statistici
SHOW_RANK = Arata pozitia
TA_MSG = %s a atacat un coleg de echipa
TK_MSG = %s a ucis un coleg de echipa !
YOU_HIT = L-ai lovit pe %s în:
SERVER_STATS = Statistici server
SHOW_STATS = Arată statistici
SHOW_RANK = Arată poziția
TA_MSG = %s a atacat un coechipier
TK_MSG = %s a omorât un coechipier!
NADE_CAUGHT = Wow! %s a prins grenada inamicului!
NADE_FAILEDTK = Oops.. %s te-a ucis incercand sa arunce inapoi grenada inamicului..
NADE_FAILED = %s nu a putut arunca inapoi grenada inamicului..
NADE_MASTER = OMG! %s este maestru al grenadelor !!!
DISABLED_MSG = Server-ul a dezactivat aceasta optiune
MOST_KILLS = Cele mai multe ucideri
KILL = ucidere
KILLS = ucideri
HEADSHOT = hs
HEADSHOTS = hs
NADE_FAILEDTK = Oops.. %s te-a ucis încercand sa arunce înapoi grenada inamicului..
NADE_FAILED = %s nu a reușit să arunce înapoi grenada inamicului..
NADE_MASTER = OMG! %s este un maestru al grenadelor!
DISABLED_MSG = Serverul a dezactivat această opțiune
MOST_KILLS = Cele mai multe killuri
KILL = kill
KILLS = kills
HEADSHOT = headshot
HEADSHOTS = headshots
BEST_SCORE = Cel mai bun scor
POINTS = puncte
MOST_DAMAGE = Cel mai mult dmg
DAMAGE = dmg
HIT = lovitura
MOST_DAMAGE = Cel mai mult damage
DAMAGE = damage
HIT = lovitură
HITS = lovituri
M_KILLS = Ucideri:
M_DEATHS = Decesuri:
M_KILLS = Kills:
M_DEATHS = Decese:
M_SCORE = Scor:
M_TKS = TK:
M_TKS = TKs:
M_HITS = Lovituri:
M_SHOTS = Focuri:
M_HS = HS:
M_WEAPON = Arma:
M_DAMAGE = Dmg:
M_DAMAGE = Damage:
M_NICK = Nume:
M_YOUR_RANK_IS = Pozitia ta este
M_THEIR_RANK_IS = Pozitia lor este
M_YOUR_RANK_IS = Poziția ta este
M_THEIR_RANK_IS = Poziția lui este
M_OF = din
[hu]

View File

@ -89,7 +89,7 @@ STATS_CONF_LOADED = Statistik-Konfiguration erfolgreich geladen
STATS_CONF_FAIL_LOAD = Fehler beim Laden der Statistik-Konfiguration!!!
STATS_CONF = Statistik-Konfiguration
STATS_ENTRIES_OF = Einträge %i - %i von %i
STATS_USE_MORE = Benutze 'amx_statscfg list %i' für mehr Info´s
STATS_USE_MORE = Benutze 'amx_statscfg list %i' für mehr Infos
STATS_USE_BEGIN = Benutze 'amx_statscfg list 1' um zum Anfang zu gelangen
CANT_ADD_STATS = Kann keine Statistik mehr hinzufügen, das Limit ist erreicht!
COM_STATS_USAGE = Benutze: amx_statscfg <Befehl> [Parameter] ...
@ -121,7 +121,7 @@ ST_LAST_MAN = Letzter Mann
ST_KNIFE_KILL = Messerkill
ST_KNIFE_KILL_SOUND = Messerkill Sound
ST_HE_KILL = Granatenkill
ST_HE_SUICIDE = Granaten Selbstmord
ST_HE_SUICIDE = Granatenselbstmord
ST_HS_KILL = Headshotkill
ST_HS_KILL_SOUND = Headshotkill Sound
ST_ROUND_CNT = Rundenzähler
@ -144,7 +144,7 @@ ST_SHOW_MOST_DISRUPTIVE = Zeige meisten Durchschläge
ST_SHOW_HUD_STATS_DEF = Standard HUD-Stats
ST_SHOW_DIST_HS_HUD = Distanz&HS in HUD Liste
ST_STATS_PLAYER_MAP_END = Stats am Ende der Map
ST_STATS_TOP15_MAP_END = Top15 am ende der Map
ST_STATS_TOP15_MAP_END = Top15 am Ende der Map
ST_SAY_HP = Say /hp
ST_SAY_STATSME = Say /statsme
ST_SAY_RANKSTATS = Say /rankstats
@ -162,7 +162,7 @@ ST_BOMB_CD_HUD = Bomben Countdown HUD
ST_LAST_MAN_SOUND = Letzter Mann Sound
ST_LAST_MAN_HEALTH = Letzter Mann HP
ST_HE_KILL_SOUND = Granatenkill Sound
ST_HE_SUICIDE_SOUND = Granaten Selbstmord Sound
ST_HE_SUICIDE_SOUND = Granatenselbstmord Sound
[sr]
NO_OPTION = Nepostoji optcija(e) sa tom promenljivom (ime "%s")
@ -1162,68 +1162,68 @@ ST_HE_SUICIDE_SOUND = Grenade Suicide Sound
[ro]
NO_OPTION = Couldn't find option(s) with such variable (name "%s")
STATS_CONF_SAVED = Configuratia stats a fost salvata cu succes
STATS_CONF_FAILED = Salvarea configuratiei stats a esuat!!!
STATS_CONF_LOADED = Configuratia stats a fost incarcata cu succes
STATS_CONF_FAIL_LOAD = Incarcarea configuratiei stats a esuat!!!
STATS_CONF = Configuratie Stats
STATS_ENTRIES_OF = Intrari %i - %i din %i
STATS_USE_MORE = Scrie 'amx_statscfg list %i' pentru mai mult
STATS_USE_BEGIN = Scrie 'amx_statscfg list 1' pentru inceput
STATS_ENABLED = Stats activat
STATS_DISABLED = Stats dezactivat
CANT_ADD_STATS = Nu se pot adauga stats la lista, limita depasita!
COM_STATS_USAGE = Folosire: amx_statscfg <comanda> [parametri] ...
STATS_CONF_SAVED = Configurația stats a fost salvată cu succes!
STATS_CONF_FAILED = Salvarea configurației a eșuat!
STATS_CONF_LOADED = Configurația stats a fost încărcată cu succes!
STATS_CONF_FAIL_LOAD = Încărcarea configurației a eșuat!
STATS_CONF = Configurare Stats
STATS_ENTRIES_OF = Se afișează %i - %i din %i
STATS_USE_MORE = Scrie 'amx_statscfg list %i' pentru mai multe
STATS_USE_BEGIN = Scrie 'amx_statscfg list 1' pentru a începe
STATS_ENABLED = Stats activate
STATS_DISABLED = Stats dezactivate
CANT_ADD_STATS = Limita a fost depășită! Nu mai poți adăuga stats în listă.
COM_STATS_USAGE = Utilizare: amx_statscfg <comandă> [parametri] ...
COM_STATS_COM = Comenzi:
COM_STATS_ON = ^ton <variabila> - activeaza optiunea specificata
COM_STATS_OFF = ^toff <variabila> - dezactiveaza optiunea specificata
COM_STATS_SAVE = ^tsave - salveaza configuratia stats
COM_STATS_LOAD = ^tload - incarca configuratia stats
COM_STATS_LIST = ^tlist [id] - lista statut stats
COM_STATS_ADD = ^tadd <nume> <variabila> - adauga stats la lista
NO_STATS = Plugin-urile stats nu sunt^ninstalate pe acest server^n
SAVE_CONF = Salveaza configuratie
COM_STATS_ON = ^ton <variabilă> - activează opțiunea specificată
COM_STATS_OFF = ^toff <variabilă> - dezactivează opțiunea specificată
COM_STATS_SAVE = ^tsave - salvează configurația stats
COM_STATS_LOAD = ^tload - încarcă configurațiaa stats
COM_STATS_LIST = ^tlist [id] - listează statusul stats
COM_STATS_ADD = ^tadd <nume> <variabilă> - adaugă stats în listă
NO_STATS = Pluginurile stats nu sunt^ninstalate pe acest server^n
SAVE_CONF = Salvează configurație
ST_MULTI_KILL = MultiKill
ST_MULTI_KILL_SOUND = MultiKillSound
ST_BOMB_PLANTING = Bomb Planting
ST_BOMB_DEFUSING = Bomb Defusing
ST_BOMB_PLANTED = Bomb Planted
ST_BOMB_DEF_SUCC = Bomb Defuse Succ.
ST_BOMB_DEF_FAIL = Bomb Def. Failure
ST_BOMB_PICKUP = Bomb PickUp
ST_BOMB_DROP = Bomb Drop
ST_BOMB_CD_VOICE = Bomb Countdown Voice
ST_BOMB_CD_DEF = Bomb Countdown (defuser)
ST_BOMB_SITE = Bomb Site Reached
ST_MULTI_KILL_SOUND = Sunet MultiKill
ST_BOMB_PLANTING = Bomba se plantează
ST_BOMB_DEFUSING = Bomb se dezamorsează
ST_BOMB_PLANTED = Bombă plantată
ST_BOMB_DEF_SUCC = Dezam. bombei cu succes
ST_BOMB_DEF_FAIL = Dezam. bombei a eșuat
ST_BOMB_PICKUP = Ridicarea bombei
ST_BOMB_DROP = Scăparea bombei
ST_BOMB_CD_VOICE = Voce cronometru bombă
ST_BOMB_CD_DEF = Cronometru bombă (dezamorsare)
ST_BOMB_SITE = Ajuns în bomb-site
ST_ITALY_BONUS = Italy Bonus Kill
ST_LAST_MAN = Last Man
ST_LAST_MAN = Ultimul în viață
ST_KNIFE_KILL = Knife Kill
ST_KNIFE_KILL_SOUND = Knife Kill Sound
ST_KNIFE_KILL_SOUND = Sunet Knife Kill
ST_HE_KILL = Grenade Kill
ST_HE_SUICIDE = Grenade Suicide
ST_HE_SUICIDE = Sinucidere cu grenada
ST_HS_KILL = HeadShot Kill
ST_HS_KILL_SOUND = HeadShot Kill Sound
ST_ROUND_CNT = Round Counter
ST_ROUND_CNT_SOUND = Round Counter Sound
ST_HS_KILL_SOUND = Sunet HeadShot Kill
ST_ROUND_CNT = Contor runde
ST_ROUND_CNT_SOUND = Sunet contor runde
ST_KILL_STR = Killing Streak
ST_KILL_STR_SOUND = Killing Streak Sound
ST_ENEMY_REM = Enemy Remaining
ST_KILL_STR_SOUND = Sunet Killing Streak
ST_ENEMY_REM = Inamici rămași
ST_DOUBLE_KILL = Double Kill
ST_DOUBLE_KILL_SOUND = Double Kill Sound
ST_PLAYER_NAME = Player Name
ST_FIRST_BLOOD_SOUND = First Blood Sound
ST_SHOW_KILLER_CHAT = Show Killer HP&AP
ST_SHOW_ATTACKERS = Show Attackers
ST_SHOW_VICTIMS = Show Victims
ST_SHOW_KILLER = Show Killer
ST_SHOW_TEAM_SCORE = Show Team Score
ST_SHOW_TOTAL_STATS = Show Total Stats
ST_SHOW_BEST_SCORE = Show Best Score
ST_SHOW_MOST_DISRUPTIVE = Show Most Disruptive
ST_DOUBLE_KILL_SOUND = Sunet Double Kill
ST_PLAYER_NAME = Numele jucătorului
ST_FIRST_BLOOD_SOUND = Sunet First Blood
ST_SHOW_KILLER_CHAT = Arată HP&AP ucigașului
ST_SHOW_ATTACKERS = Arată atacatorii
ST_SHOW_VICTIMS = Arată victimele
ST_SHOW_KILLER = Arată ucigașul
ST_SHOW_TEAM_SCORE = Arată scorul echipei
ST_SHOW_TOTAL_STATS = Arată statisticile totale
ST_SHOW_BEST_SCORE = Arată cel mai bun scor
ST_SHOW_MOST_DISRUPTIVE = Arată pe cel mai distrugător
ST_SHOW_HUD_STATS_DEF = Show HUD-stats default
ST_SHOW_DIST_HS_HUD = Dist&HS in HUD lists
ST_STATS_PLAYER_MAP_END = Stats at the end of map
ST_STATS_TOP15_MAP_END = Top15 at the end of map
ST_STATS_PLAYER_MAP_END = Statistici la finalul hărții
ST_STATS_TOP15_MAP_END = Top15 la finalul hărții
ST_SAY_HP = Say /hp
ST_SAY_STATSME = Say /statsme
ST_SAY_RANKSTATS = Say /rankstats
@ -1234,14 +1234,14 @@ ST_SAY_SCORE = Say /score
ST_SAY_TOP15 = Say /top15
ST_SAY_STATS = Say /stats
ST_SPEC_RANK = Spec. Rank Info
ST_BOMB_PLANTED_SOUND = Bomb Planted Sound
ST_BOMB_DEF_SUCC_SOUND = Bomb Defuse Succ. Sound
ST_BOMB_DEF_FAIL_SOUND = Bomb Def. Failure Sound
ST_BOMB_CD_HUD = Bomb Countdown Hud
ST_LAST_MAN_SOUND = Last Man Sound
ST_LAST_MAN_HEALTH = Last Man Health
ST_HE_KILL_SOUND = Grenade Kill Sound
ST_HE_SUICIDE_SOUND = Grenade Suicide Sound
ST_BOMB_PLANTED_SOUND = Sunet bombă plantată
ST_BOMB_DEF_SUCC_SOUND = Sunet bombă dezamorsată
ST_BOMB_DEF_FAIL_SOUND = Sunet bombă dezam. eșuată
ST_BOMB_CD_HUD = Cronometru bombă HUD
ST_LAST_MAN_SOUND = Sunet ultimul în viață
ST_LAST_MAN_HEALTH = HP-ul ultimului în viață
ST_HE_KILL_SOUND = Sunet Grenade Kill
ST_HE_SUICIDE_SOUND = Sunet Sinucidere Grenadă
[hu]
NO_OPTION = Nem található opció a megadott névvel (név "%s")
@ -1991,10 +1991,10 @@ ST_HE_SUICIDE_SOUND = Zëri Vetëvrasjes Granatë
[pt]
NO_OPTION = Não foi possível encontrar a(s) opção(ões) com essa variável (nome "%s")
STATS_CONF_SAVED = A configuração das Estatísticas foi guardada com sucesso
STATS_CONF_FAILED = Falha ao guardar a configuração das Estatísticas!!!
STATS_CONF_LOADED = A configuração das Estatísticas foi carregada com sucesso
STATS_CONF_FAIL_LOAD = Falha ao carregar a configuração das Estatísticas!!!
STATS_CONF_SAVED = A configuração das estatísticas foi guardada com sucesso
STATS_CONF_FAILED = Falha ao guardar a configuração das estatísticas!!!
STATS_CONF_LOADED = A configuração das estatísticas foi carregada com sucesso
STATS_CONF_FAIL_LOAD = Falha ao carregar a configuração das estatísticas!!!
STATS_CONF = Configuração das Estatísticas
STATS_ENTRIES_OF = Entradas %i - %i de %i
STATS_USE_MORE = Usa 'amx_statscfg list %i' para mostrar mais
@ -2010,7 +2010,7 @@ COM_STATS_SAVE = ^tsave - guardar configuração das estatísticas
COM_STATS_LOAD = ^tload - carregar configuração das estatísticas
COM_STATS_LIST = ^tlist [id] - listar status das estatísticas
COM_STATS_ADD = ^tadd <nome> <variável> - adicionar uma estatística á lista
NO_STATS = Os plugins de Estatísticas não estão^ninstalados neste servidor^n
NO_STATS = Os plugins de estatísticas não estão^ninstalados neste servidor^n
SAVE_CONF = Guardar configuração
ST_MULTI_KILL = MultiKill
ST_MULTI_KILL_SOUND = Som do MultiKill

View File

@ -66,8 +66,8 @@ DMG = Schaden
VICTIMS = Opfer
MOST_DMG = Am meisten verursachter Schaden durch
KILLED_YOU_DIST = %s hat dich mit einer %s ^naus %0.2f Metern Entfernung gekillt.
DID_DMG_HITS = Er verursachte %d Schaden bei dir mit %d Treffern^nund hat noch %dhp und %dap.
YOU_DID_DMG = Du hast bei ihm %d Schaden mit %d Treffern angerichtet.
DID_DMG_HITS = Er verursachte %d Schaden bei dir mit %d Treffer(n)^nund hat noch %dhp und %dap.
YOU_DID_DMG = Du hast bei ihm %d Schaden mit %d Treffer(n) angerichtet.
EFF = Effizienz
BEST_SCORE = Die meisten Punkte
KILL_S = Kill(s)
@ -717,51 +717,51 @@ WHOLEBODY = tot corpul
HEAD = cap
CHEST = piept
STOMACH = stomac
LEFTARM = brat stang
RIGHTARM = brat drept
LEFTLEG = picior stang
LEFTARM = braț stâng
RIGHTARM = braț drept
LEFTLEG = picior stâng
RIGHTLEG = picior drept
MODE_SET_TO = "amx_statsx_mode" este setat la "%s"
MODE_SET_TO = "amx_statsx_mode" este setat pe "%s"
ATTACKERS = Atacatori
ACC = ac.
ACC = acu.
HIT_S = lovituri
DMG = dmg
DMG = damage
VICTIMS = Victime
MOST_DMG = Cel mai mult dmg produs de
KILLED_YOU_DIST = %s te-a ucis cu %s^nde la distanta de %0.2f metri.
DID_DMG_HITS = El ti-a facut %d dmg din %d lovituri^nsi inca mai are %dhp si %dap.
YOU_DID_DMG = Tu i-ai facut %d dmg din %d lovituri.
MOST_DMG = Cel mai mult damage făcut de
KILLED_YOU_DIST = %s te-a omorât cu %s^nde la distanța de %0.2f metri.
DID_DMG_HITS = El ți-a provocat %d damage cu %d lovituri^nși încă mai are %dHP și %dAP.
YOU_DID_DMG = Tu i-ai provocat %d damage cu %d lovituri.
EFF = ef.
BEST_SCORE = Cel mai bun scor
KILL_S = ucideri
KILL_S = kill(s)
TOTAL = Total
SHOT_S = Focuri
HITS_YOU_IN = %s te-a lovit in
SHOT_S = focuri
HITS_YOU_IN = %s te-a lovit în
KILLED_BY_WITH = Ucis de %s cu %s de la %0.0fm
NO_HITS = nici o lovitura
YOU_NO_KILLER = Nu ai nici o ucidere...
YOU_HIT = Tu l-ai lovit pe %s de %d ori, %d dmg
LAST_RES = Ultimul rezultat: %d lovituri, %d dmg
KILLS = Ucideri
DEATHS = Decesuri
NO_HITS = nicio lovitură
YOU_NO_KILLER = Nu te-a omorât nimeni...
YOU_HIT = Tu l-ai lovit pe %s de %d ori, %d damage
LAST_RES = Ultimul rezultat: %d lovituri, %d damage
KILLS = Kills
DEATHS = Decese
HITS = Lovituri
SHOTS = Focuri
YOUR = Pozitia ta
PLAYERS = Jucatori
YOUR = Poziția ta
PLAYERS = Jucători
RANK_IS = este %d din %d
DAMAGE = Dmg
DAMAGE = Damage
WEAPON = Arma
YOUR_RANK_IS = Pozitia ta este %d din %d cu %d ucideri, %d lovituri, %0.2f% ef. si %0.2f% ac.
AMMO = munitie
HEALTH = viata
ARMOR = vesta
GAME_SCORE = Scorul Jocului
STATS_ANNOUNCE = Ai %s anunturile statisticilor
YOUR_RANK_IS = Poziția ta este %d din %d cu %d kill(s), %d lovituri, %0.2f%% ef. și %0.2f%% acu.
AMMO = muniție
HEALTH = viață
ARMOR = armură
GAME_SCORE = Scorul jocului
STATS_ANNOUNCE = Ai %s anunțurile statisticilor
ENABLED = activat
DISABLED = dezactivat
SERVER_STATS = Statistici Jucatori
X_RANK_IS = Pozitia lui %s este %d din %d
DISABLED_MSG = Server-ul a dezactivat aceasta optiune
SERVER_STATS = Statistici server
X_RANK_IS = Poziția lui %s este %d din %d
DISABLED_MSG = Serverul a dezactivat această opțiune
[hu]
WHOLEBODY = egész test

View File

@ -99,9 +99,9 @@ SAVE_LOC = Zapazi mestopolojenieto
[ro]
ADMIN_TELEPORT_1 = ADMIN: teleportare %s
ADMIN_TELEPORT_2 = ADMIN %s: teleportare %s
TELE_MENU = Menu Teleportare
CUR_LOC = Locatia Actuala
SAVE_LOC = Salveaza Locatie
TELE_MENU = Meniu teleportare
CUR_LOC = Locația actuală
SAVE_LOC = Salvează locație
[hu]
ADMIN_TELEPORT_1 = ADMIN: %s teleportálva

Some files were not shown because too many files have changed in this diff Show More