Merge pull request #1 from alliedmodders/master

up
This commit is contained in:
Shorohov Sergey 2018-12-10 23:20:56 +03:00 committed by GitHub
commit 3efdad36b0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
30 changed files with 444 additions and 363 deletions

View File

@ -1272,7 +1272,6 @@ static cell AMX_NATIVE_CALL show_menu(AMX *amx, cell *params) /* 3 param */
// Fire newmenu callback so closing it can be handled by the plugin
if (!CloseNewMenus(pPlayer))
{
LogError(amx, AMX_ERR_NATIVE, "Plugin called menu_display when item=MENU_EXIT");
return 2;
}
@ -1318,7 +1317,7 @@ static cell AMX_NATIVE_CALL show_menu(AMX *amx, cell *params) /* 3 param */
return 0;
}
if (closeMenu(index))
if (closeMenu(index) == 2)
{
return 0;
}

View File

@ -1,4 +1,4 @@
// vim: set ts=4 sw=4 tw=99 noet:
// vim: set ts=4 sw=4 tw=99 noet:
//
// AMX Mod X, based on AMX Mod by Aleksander Naszko ("OLO").
// Copyright (C) The AMX Mod X Development Team.
@ -210,6 +210,16 @@ void copy_amxmemory(cell* dest, cell* src, int len)
*dest++=*src++;
}
bool utf8isspace(const char* string)
{
return utf8iscategory(string, 1, UTF8_CATEGORY_ISSPACE) != 0;
}
size_t utf8getspaces(const char* string)
{
return utf8iscategory(string, SIZE_MAX, UTF8_CATEGORY_ISSPACE);
}
char* parse_arg(char** line, int& state)
{
static char arg[3072];
@ -218,7 +228,7 @@ char* parse_arg(char** line, int& state)
while (**line)
{
if (isspace(**line))
if (utf8isspace(*line))
{
if (state == 1)
break;
@ -919,6 +929,7 @@ static cell AMX_NATIVE_CALL amx_strtok(AMX *amx, cell *params)
int right_pos = 0;
unsigned int i = 0;
bool done_flag = false;
size_t spaces;
int len = 0;
//string[]
@ -938,9 +949,9 @@ static cell AMX_NATIVE_CALL amx_strtok(AMX *amx, cell *params)
{
if (trim && !done_flag)
{
if (isspace(string[i]))
if ((spaces = utf8getspaces(string + i) > 0))
{
while (isspace(string[++i]));
i += spaces;
done_flag = true;
}
}
@ -974,6 +985,7 @@ static cell AMX_NATIVE_CALL amx_strtok2(AMX *amx, cell *params)
{
int left_pos = 0, right_pos = 0, len, pos = -1;
unsigned int i = 0;
size_t spaces;
char *string = get_amxstring(amx, params[1], 0, len);
char *left = new char[len + 1], *right = new char[len + 1];
@ -989,9 +1001,9 @@ static cell AMX_NATIVE_CALL amx_strtok2(AMX *amx, cell *params)
int trim = params[7];
// ltrim left
if (trim & 1 && isspace(string[i]))
if (trim & 1 && (spaces = utf8getspaces(string)) > 0)
{
while (isspace(string[++i]));
i += spaces;
}
for (; i < (unsigned int) len; ++i)
@ -1007,17 +1019,17 @@ static cell AMX_NATIVE_CALL amx_strtok2(AMX *amx, cell *params)
}
// rtrim left
if (trim & 2 && left_pos && isspace(left[left_pos - 1]))
if (trim & 2 && left_pos && utf8isspace(&left[left_pos - 1]))
{
while (--left_pos >= 0 && isspace(left[left_pos]));
while (--left_pos >= 0 && utf8isspace(&left[left_pos]));
++left_pos;
}
// ltrim right
if (trim & 4 && isspace(string[i]))
if (trim & 4 && (spaces = utf8getspaces(string + i)) > 0)
{
while (isspace(string[++i]));
i += spaces;
}
for (; i < (unsigned int) len; ++i)
@ -1026,9 +1038,9 @@ static cell AMX_NATIVE_CALL amx_strtok2(AMX *amx, cell *params)
}
// rtrim right
if (trim & 8 && right_pos && isspace(right[right_pos - 1]))
if (trim & 8 && right_pos && utf8isspace(&right[right_pos - 1]))
{
while (--right_pos >= 0 && isspace(right[right_pos]));
while (--right_pos >= 0 && utf8isspace(&right[right_pos]));
++right_pos;
}
@ -1058,8 +1070,12 @@ static cell AMX_NATIVE_CALL argparse(AMX *amx, cell *params)
// Strip all left-hand whitespace.
size_t i = start_pos;
while (i < input_len && isspace(input[i]))
i++;
size_t spaces;
if ((spaces = utf8getspaces(input + i)) > 0)
{
i += spaces;
}
if (i >= input_len) {
*buffer = '\0';
@ -1078,7 +1094,7 @@ static cell AMX_NATIVE_CALL argparse(AMX *amx, cell *params)
}
// If not in quotes, and we see a space, stop.
if (isspace(input[i]) && !in_quote)
if (utf8isspace(input + i) && !in_quote)
break;
if (size_t(bufpos - buffer) < buflen)
@ -1106,9 +1122,13 @@ static cell AMX_NATIVE_CALL strbreak(AMX *amx, cell *params) /* 5 param */
int RightMax = params[5];
size_t len = (size_t)_len;
size_t spaces;
if ((spaces = utf8getspaces(string)) > 0)
{
i += spaces;
}
while (isspace(string[i]) && i<len)
i++;
beg = i;
for (; i<len; i++)
{
@ -1120,12 +1140,12 @@ static cell AMX_NATIVE_CALL strbreak(AMX *amx, cell *params) /* 5 param */
if (i == len-1)
goto do_copy;
} else {
if (isspace(string[i]) && !in_quote)
if (!in_quote && (spaces = utf8getspaces(string + i)) > 0)
{
do_copy:
size_t pos = i;
while (isspace(string[i]))
i++;
i += spaces;
const char *start = had_quotes ? &(string[beg+1]) : &(string[beg]);
size_t _end = had_quotes ? (i==len-1 ? 1 : 2) : 0;
size_t end = (pos - _end > (size_t)LeftMax) ? (size_t)LeftMax : pos - _end;
@ -1367,18 +1387,27 @@ static cell AMX_NATIVE_CALL amx_strlen(AMX *amx, cell *params)
static cell AMX_NATIVE_CALL amx_trim(AMX *amx, cell *params)
{
int len, newlen;
char *str = get_amxstring(amx, params[1], 0, len);
int length;
auto string = get_amxstring(amx, params[1], 0, length);
UTIL_TrimLeft(str);
UTIL_TrimRight(str);
auto leftSpaces = utf8getspaces(string);
auto rightSpaces = 0u;
newlen = strlen(str);
len -= newlen;
auto originalLength = length;
set_amxstring(amx, params[1], str, newlen);
if (leftSpaces < size_t(length))
{
while (--length >= 0 && utf8isspace(string + length))
{
++rightSpaces;
}
}
return len;
auto totalSpaces = leftSpaces + rightSpaces;
set_amxstring(amx, params[1], string + leftSpaces, originalLength - totalSpaces);
return totalSpaces;
}
static cell AMX_NATIVE_CALL n_strcat(AMX *amx, cell *params)

View File

@ -54,7 +54,7 @@
#define CTRL_CHAR '^' /* default control character */
#define sCHARBITS 8 /* size of a packed character */
#define sDIMEN_MAX 3 /* maximum number of array dimensions */
#define sDIMEN_MAX 4 /* maximum number of array dimensions */
#define sLINEMAX 4095 /* input line length (in characters) */
#define sCOMP_STACK 32 /* maximum nesting of #if .. #endif sections */
#define sDEF_LITMAX 500 /* initial size of the literal pool, in "cells" */
@ -280,6 +280,12 @@ typedef struct s_stringpair {
char *documentation;
} stringpair;
typedef struct s_valuepair {
struct s_valuepair *next;
long first;
long second;
} valuepair;
/* macros for code generation */
#define opcodes(n) ((n)*sizeof(cell)) /* opcode size */
#define opargs(n) ((n)*sizeof(cell)) /* size of typical argument */
@ -700,6 +706,9 @@ SC_FUNC void delete_docstringtable(void);
SC_FUNC stringlist *insert_autolist(char *string);
SC_FUNC char *get_autolist(int index);
SC_FUNC void delete_autolisttable(void);
SC_FUNC valuepair *push_heaplist(long first, long second);
SC_FUNC int popfront_heaplist(long *first, long *second);
SC_FUNC void delete_heaplisttable(void);
SC_FUNC stringlist *insert_dbgfile(const char *filename);
SC_FUNC stringlist *insert_dbgline(int linenr);
SC_FUNC stringlist *insert_dbgsymbol(symbol *sym);

View File

@ -628,6 +628,7 @@ int pc_compile(int argc, char *argv[])
/* reset "defined" flag of all functions and global variables */
reduce_referrers(&glbtab);
delete_symbols(&glbtab,0,TRUE,FALSE);
delete_heaplisttable();
#if !defined NO_DEFINE
delete_substtable();
inst_datetime_defines();
@ -805,6 +806,7 @@ cleanup:
free(sc_documentation);
#endif
delete_autolisttable();
delete_heaplisttable();
if (errnum!=0) {
if (strlen(errfname)==0)
pc_printf("\n%d Error%s.\n",errnum,(errnum>1) ? "s" : "");
@ -2170,53 +2172,48 @@ static cell calc_arraysize(int dim[],int numdim,int cur)
return dim[cur]+(dim[cur]*calc_arraysize(dim,numdim,cur+1));
}
static cell adjust_indirectiontables(int dim[],int numdim,int cur,cell increment,
int startlit,constvalue *lastdim,int *skipdim)
static void adjust_indirectiontables(int dim[],int numdim,int startlit,
constvalue *lastdim,int *skipdim)
{
static int base;
int d;
int cur;
int i,d;
cell accum;
cell size;
assert(cur>=0 && cur<numdim);
assert(increment>=0);
assert(cur>0 && startlit==-1 || startlit>=0 && startlit<=litidx);
if (cur==0)
base=startlit;
if (cur==numdim-1)
return 0;
/* 2 or more dimensions left, fill in an indirection vector */
assert(dim[cur]>0);
if (dim[cur+1]>0) {
for (d=0; d<dim[cur]; d++)
litq[base++]=(dim[cur]+d*(dim[cur+1]-1)+increment) * sizeof(cell);
accum=dim[cur]*(dim[cur+1]-1);
} else {
/* final dimension is variable length */
constvalue *ld;
assert(dim[cur+1]==0);
assert(lastdim!=NULL);
assert(skipdim!=NULL);
accum=0;
/* skip the final dimension sizes for all earlier major dimensions */
for (d=0,ld=lastdim->next; d<*skipdim; d++,ld=ld->next) {
assert(ld!=NULL);
} /* for */
for (d=0; d<dim[cur]; d++) {
assert(ld!=NULL);
assert(strtol(ld->name,NULL,16)==d);
litq[base++]=(dim[cur]+accum+increment) * sizeof(cell);
accum+=ld->value-1;
*skipdim+=1;
ld=ld->next;
} /* for */
} /* if */
/* create the indirection tables for the lower level */
if (cur+2<numdim) { /* are there at least 2 dimensions below this one? */
increment+=(dim[cur]-1)*dim[cur+1]; /* this many indirection tables follow */
for (d=0; d<dim[cur]; d++)
increment+=adjust_indirectiontables(dim,numdim,cur+1,increment,-1,lastdim,skipdim);
} /* if */
return accum;
assert(startlit==-1 || startlit>=0 && startlit<=litidx);
base=startlit;
size=1;
for (cur=0; cur<numdim-1; cur++) {
/* 2 or more dimensions left, fill in an indirection vector */
if (dim[cur+1]>0) {
for (i=0; i<size; i++)
for (d=0; d<dim[cur]; d++)
litq[base++]=(size*dim[cur]+(dim[cur+1]-1)*(dim[cur]*i+d)) * sizeof(cell);
} else {
/* final dimension is variable length */
constvalue *ld;
assert(dim[cur+1]==0);
assert(lastdim!=NULL);
assert(skipdim!=NULL);
accum=0;
for (i=0; i<size; i++) {
/* skip the final dimension sizes for all earlier major dimensions */
for (d=0,ld=lastdim->next; d<*skipdim; d++,ld=ld->next) {
assert(ld!=NULL);
} /* for */
for (d=0; d<dim[cur]; d++) {
assert(ld!=NULL);
assert(strtol(ld->name,NULL,16)==d);
litq[base++]=(size*dim[cur]+accum) * sizeof(cell);
accum+=ld->value-1;
*skipdim+=1;
ld=ld->next;
} /* for */
} /* for */
} /* if */
size*=dim[cur];
} /* for */
}
/* initials
@ -2274,7 +2271,7 @@ static void initials2(int ident,int tag,cell *size,int dim[],int numdim,
for (tablesize=calc_arraysize(dim,numdim-1,0); tablesize>0; tablesize--)
litadd(0);
if (dim[numdim-1]!=0) /* error 9 has already been given */
adjust_indirectiontables(dim,numdim,0,0,curlit,NULL,NULL);
adjust_indirectiontables(dim,numdim,curlit,NULL,NULL);
} /* if */
return;
} /* if */
@ -2340,7 +2337,7 @@ static void initials2(int ident,int tag,cell *size,int dim[],int numdim,
* of the array and we can properly adjust the indirection vectors
*/
if (err==0)
adjust_indirectiontables(dim,numdim,0,0,curlit,&lastdim,&skipdim);
adjust_indirectiontables(dim,numdim,curlit,&lastdim,&skipdim);
delete_consttable(&lastdim); /* clear list of minor dimension sizes */
} /* if */
} /* if */
@ -5455,6 +5452,16 @@ static void doreturn(void)
/* nothing */;
sub=addvariable(curfunc->name,(argcount+3)*sizeof(cell),iREFARRAY,sGLOBAL,curfunc->tag,dim,numdim,idxtag);
sub->parent=curfunc;
/* Function that returns array can be used before it is defined, so at
* the call point (if it is before definition) we may not know if this
* function returns array and what is its size (for example inside the
* conditional operator), so we don't know how many cells on the heap
* we need. Calculating heap consumption is required for the fix of
* incorrect heap deallocation on conditional operator. That's why we
* need an additional pass.
*/
if ((curfunc->usage & uREAD)!=0)
sc_reparse=TRUE;
} /* if */
/* get the hidden parameter, copy the array (the array is on the heap;
* it stays on the heap for the moment, and it is removed -usually- at

View File

@ -600,13 +600,6 @@ static int htoi(cell *val,const unsigned char *curptr)
return (int)(ptr-curptr);
}
#if defined __APPLE__
static double pow10(double d)
{
return pow(10, d);
}
#endif
/* ftoi
*
* Attempts to interpret a numeric symbol as a rational number, either as
@ -682,11 +675,7 @@ static int ftoi(cell *val,const unsigned char *curptr)
exp=(exp*10)+(*ptr-'0');
ptr++;
} /* while */
#if defined __GNUC__
fmult=pow10(exp*sign);
#else
fmult=pow(10,exp*sign);
#endif
fmult=pow(10,exp*sign);
fnum *= fmult;
dnum *= (unsigned long)(fmult+0.5);
} /* if */

59
compiler/libpc300/sc3.c Executable file → Normal file
View File

@ -1010,38 +1010,60 @@ static int hier13(value *lval)
{
int lvalue=plnge1(hier12,lval);
if (matchtoken('?')) {
int locheap=decl_heap; /* save current heap delta */
long heap1,heap2; /* max. heap delta either branch */
valuepair *heaplist_node;
int flab1=getlabel();
int flab2=getlabel();
value lval2 = {0};
int array1,array2;
int orig_heap=decl_heap;
int diff1=0,diff2=0;
if (lvalue) {
rvalue(lval);
} else if (lval->ident==iCONSTEXPR) {
ldconst(lval->constval,sPRI);
error(lval->constval ? 206 : 205); /* redundant test */
} /* if */
if (sc_status==statFIRST) {
/* We should push a new node right now otherwise we will pop it in the
* wrong order on the write stage.
*/
heaplist_node=push_heaplist(0,0); /* save the pointer to write the actual data later */
} else if (sc_status==statWRITE || sc_status==statSKIP) {
#if !defined NDEBUG
int result=
#endif
popfront_heaplist(&heap1,&heap2);
assert(result); /* pop off equally many items than were pushed */
} /* if */
jmp_eq0(flab1); /* go to second expression if primary register==0 */
PUSHSTK_I(sc_allowtags);
sc_allowtags=FALSE; /* do not allow tagnames here (colon is a special token) */
if (sc_status==statWRITE) {
modheap(heap1*sizeof(cell));
decl_heap+=heap1; /* equilibrate the heap (see comment below) */
} /* if */
if (hier13(lval))
rvalue(lval);
if (lval->ident==iCONSTEXPR) /* load constant here */
ldconst(lval->constval,sPRI);
sc_allowtags=(short)POPSTK_I(); /* restore */
heap1=decl_heap-locheap; /* save heap space used in "true" branch */
assert(heap1>=0);
decl_heap=locheap; /* restore heap delta */
jumplabel(flab2);
setlabel(flab1);
if (orig_heap!=decl_heap) {
diff1=abs(decl_heap-orig_heap);
decl_heap=orig_heap;
}
needtoken(':');
if (sc_status==statWRITE) {
modheap(heap2*sizeof(cell));
decl_heap+=heap2; /* equilibrate the heap (see comment below) */
} /* if */
if (hier13(&lval2))
rvalue(&lval2);
if (lval2.ident==iCONSTEXPR) /* load constant here */
ldconst(lval2.constval,sPRI);
heap2=decl_heap-locheap; /* save heap space used in "false" branch */
assert(heap2>=0);
array1= (lval->ident==iARRAY || lval->ident==iREFARRAY);
array2= (lval2.ident==iARRAY || lval2.ident==iREFARRAY);
if (array1 && !array2) {
@ -1055,19 +1077,26 @@ static int hier13(value *lval)
if (!matchtag(lval->tag,lval2.tag,FALSE))
error(213); /* tagname mismatch ('true' and 'false' expressions) */
setlabel(flab2);
if (sc_status==statFIRST) {
/* Calculate the max. heap space used by either branch and save values of
* max - heap1 and max - heap2. On the second pass, we use these values
* to equilibrate the heap space used by either branch. This is needed
* because we don't know (at compile time) which branch will be taken,
* but the heap cannot be restored inside each branch because the result
* on the heap may needed by the remaining expression.
*/
int max=(heap1>heap2) ? heap1 : heap2;
heaplist_node->first=max-heap1;
heaplist_node->second=max-heap2;
decl_heap=locheap+max; /* otherwise it will contain locheap+heap2 and the
* max. heap usage will be wrong for the upper
* expression */
} /* if */
assert(sc_status!=statWRITE || heap1==heap2);
if (lval->ident==iARRAY)
lval->ident=iREFARRAY; /* iARRAY becomes iREFARRAY */
else if (lval->ident!=iREFARRAY)
lval->ident=iEXPRESSION; /* iREFARRAY stays iREFARRAY, rest becomes iEXPRESSION */
if (orig_heap!=decl_heap) {
diff2=abs(decl_heap-orig_heap);
decl_heap=orig_heap;
}
if (diff1==diff2) {
decl_heap+=(diff1/2);
} else {
decl_heap+=(diff1+diff2);
}
return FALSE; /* conditional expression is no lvalue */
} else {
return lvalue;

View File

@ -443,6 +443,52 @@ SC_FUNC void delete_autolisttable(void)
}
/* ----- value pair list ----------------------------------------- */
static valuepair heaplist = {NULL, 0, 0};
SC_FUNC valuepair *push_heaplist(long first, long second)
{
valuepair *cur, *last;
if ((cur=malloc(sizeof(valuepair)))==NULL)
error(103); /* insufficient memory (fatal error) */
cur->first=first;
cur->second=second;
cur->next=NULL;
for (last=&heaplist; last->next!=NULL; last=last->next)
/* nothing */;
last->next=cur;
return cur;
}
SC_FUNC int popfront_heaplist(long *first, long *second)
{
valuepair *front=heaplist.next;
if (front==NULL)
return 0;
/* copy fields */
*first=front->first;
*second=front->second;
/* unlink and free */
heaplist.next=front->next;
free(front);
return 1;
}
SC_FUNC void delete_heaplisttable(void)
{
valuepair *cur;
while (heaplist.next!=NULL) {
cur=heaplist.next;
heaplist.next=cur->next;
free(cur);
} /* while */
}
/* ----- debug information --------------------------------------- */
static stringlist dbgstrings = {NULL, NULL};

View File

@ -13,6 +13,7 @@
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <csx>
public MultiKill
@ -81,9 +82,6 @@ new g_pcvar_mp_c4timer, g_c4timer_value
const TASK_BOMB_TIMER = 8038
const TASK_DELAYED_NEW_ROUND = 98038
const TEAM_T = 1
const TEAM_CT = 2
new g_connected[MAX_PLAYERS + 1]
new g_msounds[MAX_PLAYERS + 1]
new const _msound[] = "_msound"
@ -178,13 +176,7 @@ new g_HeadShots[7][] =
"HS_MSG_7"
}
new g_teamsNames[4][] =
{
"TERRORIST",
"CT",
"TERRORISTS",
"CTS"
}
new const g_teamsNames[CsTeams][] = { "", "TERRORIST" , "CT", "" };
public plugin_init()
{
@ -543,48 +535,26 @@ public client_death(killer, victim, wpnindex, hitplace, TK)
}
}
new team = get_user_team(victim)
if (EnemyRemaining && is_user_connected(victim))
new const CsTeams:team = cs_get_user_team(victim);
if (EnemyRemaining && CS_TEAM_T <= team <= CS_TEAM_CT && is_user_connected(victim))
{
if( TEAM_T <= team <= TEAM_CT )
new const victimTeammatesCount = get_playersnum_ex(GetPlayers_ExcludeDead | GetPlayers_MatchTeam, g_teamsNames[team]);
if (victimTeammatesCount)
{
new ppl[MAX_PLAYERS], pplnum, epplnum, a
get_players(ppl, epplnum, "ae", team == TEAM_T ? "CT" : "TERRORIST")
get_players(ppl, pplnum, "ae", team == TEAM_T ? "TERRORIST" : "CT")
if( victim_alive )
{
for(a=0; a<pplnum; a++)
{
if( ppl[a] == victim )
{
ppl[a] = ppl[--pplnum]
break
}
}
}
if (pplnum && epplnum)
{
new message[128], team_name[32]
new killerTeammatesList[MAX_PLAYERS], killerTeammatesCount;
get_players_ex(killerTeammatesList, killerTeammatesCount, GetPlayers_ExcludeDead | GetPlayers_MatchTeam, g_teamsNames[CsTeams:(any:team % 2 + 1)]);
set_hudmessage(255, 255, 255, 0.02, 0.85, 2, 0.05, 0.1, 0.02, 3.0, -1)
/* This is a pretty stupid thing to translate, but whatever */
new _teamname[32]
if (team == TEAM_T)
{
formatex(_teamname, charsmax(_teamname), "TERRORIST%s", (epplnum == 1) ? "" : "S")
} else {
formatex(_teamname, charsmax(_teamname), "CT%s", (epplnum == 1) ? "" : "S")
}
if (killerTeammatesCount)
{
set_hudmessage(255, 255, 255, 0.02, 0.85, 2, 0.05, 0.1, 0.02, 3.0, -1);
new id
for (a = 0; a < pplnum; ++a)
for (new teammate; teammate < killerTeammatesCount; ++teammate)
{
id = ppl[a]
formatex(team_name, charsmax(team_name), "%L", id, _teamname)
formatex(message, charsmax(message), "%L", id, "REMAINING", epplnum, team_name)
ShowSyncHudMsg(id, g_bottom_sync, "%s", message)
victimTeammatesCount > 1 ?
ShowSyncHudMsg(killerTeammatesList[teammate], g_bottom_sync, "%l", "REMAINING_ENEMIES", victimTeammatesCount) :
ShowSyncHudMsg(killerTeammatesList[teammate], g_bottom_sync, "%l","REMAINING_ENEMY");
}
}
}
@ -600,7 +570,7 @@ public client_death(killer, victim, wpnindex, hitplace, TK)
{
switch( team )
{
case TEAM_T:
case CS_TEAM_T:
{
for(b=0; b<tsnum; b++)
{
@ -611,7 +581,7 @@ public client_death(killer, victim, wpnindex, hitplace, TK)
}
}
}
case TEAM_CT:
case CS_TEAM_CT:
{
for(b=0; b<ctsnum; b++)
{
@ -653,19 +623,19 @@ public client_death(killer, victim, wpnindex, hitplace, TK)
}
else if (!g_LastAnnounce)
{
new oposite = 0, _team = 0
new oposite = 0, CsTeams:_team
if (ctsnum == 1 && tsnum > 1)
{
g_LastAnnounce = cts[0]
oposite = tsnum
_team = 0
_team = CS_TEAM_T
}
else if (tsnum == 1 && ctsnum > 1)
{
g_LastAnnounce = ts[0]
oposite = ctsnum
_team = 1
_team = CS_TEAM_CT
}
if (g_LastAnnounce)
@ -818,7 +788,7 @@ public showStatus(id)
get_user_name(pid, name, charsmax(name))
new color1 = 0, color2 = 0
if (get_user_team(pid) == TEAM_T)
if (cs_get_user_team(pid) == CS_TEAM_T)
color1 = 255
else
color2 = 255

View File

@ -12,9 +12,9 @@ COL_MAROON = maroon
PRINT_ALL = (ALL) %s : %s
[de]
COL_WHITE = weiss
COL_WHITE = weiß
COL_RED = rot
COL_GREEN = gruen
COL_GREEN = grün
COL_BLUE = blau
COL_YELLOW = gelb
COL_MAGENTA = magenta-rot

View File

@ -85,31 +85,31 @@ ADMIN_UNBAN_2 = ADMIN %s: entbannt %s
ADMIN_ADDBAN_1 = ADMIN: bannt %s
ADMIN_ADDBAN_2 = ADMIN %s: bannt %s
BANNED = gebannt
REASON = grund
FOR_MIN = fuer %s Minuten
PERM = fuer immer
REASON = Grund
FOR_MIN = für %s Minuten
PERM = für immer
CLIENT_BANNED = Spieler "%s" gebannt
ADMIN_SLAY_1 = ADMIN: killt %s
ADMIN_SLAY_2 = ADMIN %s: killt %s
CLIENT_SLAYED = Spieler "%s" wurde gekillt
ADMIN_SLAP_1 = ADMIN: schlaegt %s mit %d Schaden
ADMIN_SLAP_2 = ADMIN %s: schlaegt %s mit %d Schaden
ADMIN_SLAP_1 = ADMIN: schlägt %s mit %d Schaden
ADMIN_SLAP_2 = ADMIN %s: schlägt %s mit %d Schaden
CLIENT_SLAPED = Spieler "%s" wurde mit %d Schaden geschlagen
MAP_NOT_FOUND = Diese Map ist nicht vorhanden oder unzulaessig
MAP_NOT_FOUND = Diese Map ist nicht vorhanden oder unzulässig
ADMIN_MAP_1 = ADMIN: wechselt zur Map %s
ADMIN_MAP_2 = ADMIN %s: wechselt zur Map %s
NO_MORE_CVARS = Kann keine weiteren CVAR´s fuer rcon-Berechtigung hinzufuegen!
NO_MORE_CVARS = Kann keine weiteren CVARs für rcon-Berechtigung hinzufügen!
UNKNOWN_CVAR = Unbekannte CVAR: %s
UNKNOWN_XVAR = Unbekannte XVAR: %s
CVAR_NO_ACC = Du hast keine Berechtigung fuer diese CVAR!
XVAR_NO_ACC = Du hast keine Berechtigung fuer diese XVAR!
CVAR_NO_ACC = Du hast keine Berechtigung für diese CVAR!
XVAR_NO_ACC = Du hast keine Berechtigung für diese XVAR!
CVAR_IS = CVAR "%s" ist "%s"
XVAR_IS = XVAR "%s" ist "%s"
PROTECTED = GESCHUETZT
PROTECTED = GESCHÜTZT
SET_CVAR_TO = %s setzte CVAR %s auf "%s"
SET_XVAR_TO = %s setzte XVAR %s auf "%s"
CVAR_CHANGED = CVAR "%s" geaendert auf "%s"
XVAR_CHANGED = XVAR "%s" geaendert auf "%s"
CVAR_CHANGED = CVAR "%s" geändert auf "%s"
XVAR_CHANGED = XVAR "%s" geändert auf "%s"
LOADED_PLUGINS = Momentan geladene Plugins
NAME = Name
VERSION = Version
@ -120,35 +120,35 @@ PLUGINS_RUN = %d Plugins, %d Plugins laufen
LOADED_MODULES = Momentan geladene Module
NUM_MODULES = %d Module
FILE_NOT_FOUND = Datei "%s" nicht gefunden
ADMIN_CONF_1 = ADMIN: fuehrt Config %s aus
ADMIN_CONF_2 = ADMIN %s: fuehrt Config %s aus
ADMIN_CONF_1 = ADMIN: führt Config %s aus
ADMIN_CONF_2 = ADMIN %s: führt Config %s aus
PAUSED = pausiert
UNPAUSED = Pause beendet
UNABLE_PAUSE = Server konnte das Spiel nicht anhalten. Reale Spieler werden auf dem Server benoetigt.
SERVER_PROC = Server fuehrt %s aus
PAUSING = Pausieren
UNPAUSING = Pause beendet
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
PAUSE = Pause
UNPAUSE = Pause beendet
UNPAUSE = Fortsetzen
COM_SENT_SERVER = Befehlszeile "%s" zur Serverconsole gesendet
CLIENTS_ON_SERVER = Spieler auf dem Server
IMMU = Immunitaet
IMMU = Immunität
RESERV = Reserviert
ACCESS = Berechtigung
TOTAL_NUM = Total %d
SKIP_MATCH = Ueberspringe "%s" (stimmt ueberein mit "%s")
SKIP_IMM = Ueberspringe "%s" (Immunitaet)
SKIP_MATCH = Überspringe "%s" (stimmt überein mit "%s")
SKIP_IMM = Überspringe "%s" (Immunität)
KICK_PL = Kickt "%s"
YOU_DROPPED = Du wurdest gekickt, weil der Admin nur spezielle Spielergruppen auf dem Server zulaesst
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
ADMIN_NICK_1 = ADMIN: aendert Name von %s zu "%s"
ADMIN_NICK_2 = ADMIN %s: aendert Name von %s zu "%s"
CHANGED_NICK = Name von %s zu "%s" geaendert
ADMIN_EXTEND_1 = ADMIN: Verlaengere Map fuer %d Minuten
ADMIN_EXTEND_2 = ADMIN %s: Verlaengere Map fuer %d Minuten
MAP_EXTENDED = Map "%s" wurde fuer %d Minuten verlaengert
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
ADMIN_EXTEND_1 = ADMIN: Verlängere Map um %d Minuten
ADMIN_EXTEND_2 = ADMIN %s: Verlängere Map um %d Minuten
MAP_EXTENDED = Map "%s" wurde um %d Minuten verlängert
[sr]
ADMIN_KICK_1 = ADMIN: kick %s

View File

@ -12,12 +12,12 @@ NO_MATCHING_RESULTS = ^nNo matching results found^n
[de]
HELP_COMS = AMX Mod X Help: Befehle
HELP_ENTRIES = Eintraege %d - %d von %d
HELP_USE_MORE = Nutze '%s %d' fuer die naechste Seite
HELP_ENTRIES = Einträge %d - %d von %d
HELP_USE_MORE = Nutze '%s %d' für die nächste Seite
HELP_USE_BEGIN = Nutze '%s 1' um zum Anfang zu gelangen
TYPE_HELP = Schreibe '%s' '%s' in die Konsole um die verfuegbaren Befehle zu sehen.
TIME_INFO_1 = Verbleibende Zeit: %d:%02d Minuten, naechste Map: %s
TIME_INFO_2 = Kein Zeitlimit. Naechste Map ist: %s
TYPE_HELP = Schreibe '%s' '%s' in die Konsole um die verfügbaren Befehle zu sehen.
TIME_INFO_1 = Verbleibende Zeit: %d:%02d Minuten, nächste Map: %s
TIME_INFO_2 = Kein Zeitlimit. Nächste Map ist: %s
[sr]
HELP_COMS = AMX Mod X Pomoc: Komande

View File

@ -36,35 +36,35 @@ ADMIN_VOTE_FOR_2 = %s %s: vote %s for %s
ADMIN_CANC_VOTE_1 = %s: Abstimmung abgebrochen
ADMIN_CANC_VOTE_2 = %s %s: Abstimmung abgebrochen
VOTING_CANC = Auswahl abgebrochen
NO_VOTE_CANC = Zur Zeit ist keine Abstimmung vorhanden oder das Abbrechen ist mit diesem Befehl nicht moeglich
NO_VOTE_CANC = Zur Zeit ist keine Abstimmung vorhanden oder das Abbrechen ist mit diesem Befehl nicht möglich
RES_REF = Resultat abgelehnt
RES_ACCEPTED = Resultat angenommen
VOTING_FAILED = Abstimmung gescheitert
VOTING_RES_1 = %s (Ja "%d") (Nein "%d") (benoetigt "%d")
VOTING_RES_2 = %s (erhielt "%d") (benoetigt "%d")
VOTING_RES_1 = %s (Ja "%d") (Nein "%d") (benötigt "%d")
VOTING_RES_2 = %s (erhielt "%d") (benötigt "%d")
VOTING_SUCCESS = Abstimmung erfolgreich
VOTING_RES_3 = %s (erhielt "%d") (benoetigt "%d"). Ergebnis: %s
VOTING_RES_3 = %s (erhielt "%d") (benötigt "%d"). Ergebnis: %s
THE_RESULT = Das Ergebnis
WANT_CONTINUE = Forfahren?
VOTED_FOR = %s stimmten dafuer
VOTED_FOR = %s stimmten dafür
VOTED_AGAINST = %s stimmten dagegen
VOTED_FOR_OPT = %s stimmten fuer Option #%d
ALREADY_VOTING = Abstimmung laeuft bereits...
VOTING_NOT_ALLOW = Abstimmung ist momentan nicht moeglich!
GIVEN_NOT_VALID = %s ist unzulaessig
VOTED_FOR_OPT = %s stimmten 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
MAP_IS = Map ist
MAPS_ARE = Maps sind
CHOOSE_MAP = Waehle Map
ADMIN_VOTE_MAP_1 = %s: Abstimmung fuer Map(s) gestartet
ADMIN_VOTE_MAP_2 = %s %s: Abstimmung fuer Map(s) gestartet
CHOOSE_MAP = Wähle Map
ADMIN_VOTE_MAP_1 = %s: Abstimmung für Map(s) gestartet
ADMIN_VOTE_MAP_2 = %s %s: Abstimmung für Map(s) gestartet
VOTING_STARTED = Abstimmung gestartet ...
VOTING_FORBIDDEN = Abstimmung dafuer ist verboten.
VOTING_FORBIDDEN = Abstimmung dafür ist verboten.
ADMIN_VOTE_CUS_1 = %s: startet eigene Umfrage
ADMIN_VOTE_CUS_2 = %s %s: startet eigene Umfrage
VOTE = Abstimmung
ACTION_PERFORMED = Durchfuehrung an BOT "%s" ist nicht moeglich
ADMIN_VOTE_FOR_1 = %s: %s Stimmen fuer %s
ADMIN_VOTE_FOR_2 = %s %s: %s Stimmen fuer %s
ACTION_PERFORMED = Durchführung an BOT "%s" ist nicht möglich
ADMIN_VOTE_FOR_1 = %s: %s Stimmen für %s
ADMIN_VOTE_FOR_2 = %s %s: %s Stimmen für %s
[sr]
ADMIN_CANC_VOTE_1 = %s: otkazi glasanje

View File

@ -4,9 +4,9 @@ CONF_MENU = Configs Menu
SPE_MENU = Speech Menu
[de]
CMD_MENU = Menu > Befehle
CONF_MENU = Menu > Konfiguration
SPE_MENU = Menu > Sprechen
CMD_MENU = Menü > Befehle
CONF_MENU = Menü > Konfiguration
SPE_MENU = Menü > Sprechen
[sr]
CMD_MENU = Komandne

View File

@ -21,7 +21,7 @@ ON = On
OFF = Off
[de]
BACK = Zurueck
BACK = Zurück
EXIT = Beenden
MORE = Mehr
NONE = Keine
@ -32,13 +32,13 @@ YES = Ja
NO = Nein
BAN = ban
KICK = kick
NO_ACC_COM = Du hast nicht genuegend Rechte, um diesen Befehl auszufuehren!
NO_ACC_COM = Du hast nicht genügend Rechte, um diesen Befehl auszuführen!
USAGE = Anwendung
MORE_CL_MATCHT = Es gibt mehrere Spieler, auf die deine Angaben zutreffen
CL_NOT_FOUND = Spieler mit diesem Namen oder dieser UserID nicht gefunden
CLIENT_IMM = Spieler "%s" hat Immnuitaet
CANT_PERF_DEAD = Diese Aktion kann nicht am toten Spieler "%s" ausgefuehrt werden.
CANT_PERF_BOT = Diese Aktion kann nicht am Bot "%s" ausgefuehrt werden.
CLIENT_IMM = Spieler "%s" hat Immunität
CANT_PERF_DEAD = Diese Aktion kann nicht am toten Spieler "%s" ausgeführt werden.
CANT_PERF_BOT = Diese Aktion kann nicht am Bot "%s" ausgeführt werden.
ON = An
OFF = Aus

View File

@ -8,13 +8,13 @@ EXTED_MAP = Extend map %s
TIME_CHOOSE = It's time to choose the nextmap...
[de]
CHO_FIN_EXT = Auswahl beendet. Laufende Map wird um %.0f Minuten verlaengert.
CHO_FIN_NEXT = Auswahl beendet. Naechste Map ist %s
CHOSE_EXT = %s waehlten Map-Verlaengerung
X_CHOSE_X = %s waehlten %s
CHOOSE_NEXTM = AMXX waehlt naechste Map
EXTED_MAP = Verlangere Map %s
TIME_CHOOSE = Es ist an der Zeit, die naechste Map zu waehlen...
CHO_FIN_EXT = Auswahl beendet. Laufende Map wird um %.0f Minuten verlängert.
CHO_FIN_NEXT = Auswahl beendet. Nächste Map ist %s
CHOSE_EXT = %s wählte Map-Verlängerung
X_CHOSE_X = %s wählte %s
CHOOSE_NEXTM = [AMXX] Wählt die nächste Map
EXTED_MAP = Verlängere Map %s
TIME_CHOOSE = Es ist an der Zeit, die nächste Map zu wählen...
[sr]
CHO_FIN_EXT = Biranje zavrseno. Sadasnja mapa ce biti produzena za %.0f minuta

View File

@ -30,21 +30,21 @@ VOTE_FAILED = Abstimmung gescheitert
THE_WINNER = Der Gewinner
WANT_CONT = Willst du fortfahren?
VOT_CANC = Abstimmung abgebrochen
X_VOTED_FOR = %s stimmten fuer Option #%d
VOTEMAP_MENU = Menu > Mapwahl
START_VOT = Start Abstimmung
SEL_MAPS = Ausgewaehlte Maps
ALREADY_VOT = Es laeuft bereits eine Abstimmung...
NO_MAPS_MENU = Es sind keine Maps im Menu vorhanden
VOT_NOW_ALLOW = Abstimmung zur Zeit nicht moeglich
WHICH_MAP = Welche Map moechtest du?
X_VOTED_FOR = %s stimmten für Option #%d
VOTEMAP_MENU = Menü > Mapwahl
START_VOT = Starte Abstimmung
SEL_MAPS = Ausgewählte Maps
ALREADY_VOT = Es läuft bereits eine Abstimmung...
NO_MAPS_MENU = Es sind keine Maps im Menü vorhanden
VOT_NOW_ALLOW = Abstimmung zur Zeit nicht möglich
WHICH_MAP = Welche Map möchtest du?
CHANGE_MAP_TO = Wechsle zu Map
CANC_VOTE = Abstimmung abgebrochen
ADMIN_V_MAP_1 = ADMIN: waehlt Map(s)
ADMIN_V_MAP_2 = ADMIN %s: waehlt Map(s)
ADMIN_V_MAP_1 = ADMIN: wählt Map(s)
ADMIN_V_MAP_2 = ADMIN %s: wählt Map(s)
ADMIN_CHANGEL_1 = ADMIN: wechselt zur Map %s
ADMIN_CHANGEL_2 = ADMIN %s: wechselt zur Map %s
CHANGLE_MENU = Menu > Mapwechsel
CHANGLE_MENU = Menü > Mapwechsel
[sr]
RESULT_REF = Rezultat odbijen

View File

@ -19,7 +19,7 @@ TELE_PLAYER = Teleport Player
[de]
KICK_PLAYER = Kick Spieler
BAN_PLAYER = Ban Spieler
SLAP_SLAY = Schlage/Toete Spieler
SLAP_SLAY = Schlage/Kille Spieler
TEAM_PLAYER = Team Spieler ^n
CHANGEL = Mapwechsel
VOTE_MAPS = Map Abstimmung ^n

View File

@ -42,53 +42,57 @@ CTS = CTS
TERRORIST = TERRORIST
TERRORISTS = TERRORISTS
REMAINING = %d %s Remaining...
REMAINING_ENEMY = One enemy remaining...
REMAINING_ENEMIES = %d enemies remaining...
KILLS = kills
HS = hs
[de]
WITH = mit
KNIFE_MSG_1 = %s hat %s geschnitten und gewuerfelt
KNIFE_MSG_2 = %s hat sein Messer gezueckt und %s ausgeweidet
KNIFE_MSG_1 = %s hat %s geschnitten und gewürfelt
KNIFE_MSG_2 = %s hat sein Messer gezückt und %s ausgeweidet
KNIFE_MSG_3 = %s hat sich angeschlichen und %s gemessert
KNIFE_MSG_4 = %s messerte und verstuemmelte %s
LAST_MSG_1 = Nun haengt alles von dir ab!
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 Glueck!
LAST_MSG_3 = Deine Teamkameraden sind alle tot. Viel Glück!
LAST_MSG_4 = Nun bist du allein. Hab Spass 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 Praezisionswurf zu %s
HE_MSG_3 = %s macht einen Präzisionswurf zu %s
HE_MSG_4 = %s schickte eine dicke Explosion an %s
SHE_MSG_1 = %s sprengte sich selbst mit einer Granate
SHE_MSG_2 = %s untersuchte die Auswirkungen ^neiner Granate an sich selbst...
SHE_MSG_2 = %s untersuchte die Auswirkungen einer Granate an sich selbst...
SHE_MSG_3 = %s schluckte eine Granate!
SHE_MSG_4 = %s explodierte!
HS_MSG_1 = $kn killte $vn mit einem ^nplazierten Schuss in den Kopf!
HS_MSG_2 = $kn entfernte den Kopf von $vn^nmit einem Praezisionsschuss.
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 siegte ueber $vn durch eine Kopfschuss.
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_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
KILLED_ROW = Du hast bis jetzt %d in einer Runde gekillt.
DIED_ROUNDS = Du bist bis jetzt %d Runden hintereinander gestorben...
KILLED_ROW = Du hast nun %d Gegner gekillt, ohne zu sterben!
DIED_ROUNDS = Achtung! Du bist schon %d Runden in Folge ohne Kill gestorben...
KILLED_CHICKEN = Irgendjemand killte ein Huhn!!!
BLEW_RADIO = Irgendjemand sprenge das Radio!!!
BLEW_RADIO = Irgendjemand sprengte das Radio!!!
REACHED_TARGET = OMG! %s erreichte das Ziel!
PLANT_BOMB = %s legt die Bombe!
DEFUSING_BOMB = %s entschaerft die Bombe...
DEFUSING_BOMB = %s entschärft die Bombe...
SET_UP_BOMB = %s legte die Bombe!!!
DEFUSED_BOMB = %s entschaerfte die Bombe!
FAILED_DEFU = %s konnte die Bombe nicht entschaerfen...
DEFUSED_BOMB = %s entschärfte die Bombe!
FAILED_DEFU = %s konnte die Bombe nicht entschärfen...
PICKED_BOMB = %s hob die Bombe auf...
DROPPED_BOMB = %s warf die Bombe weg!!!
CT = CT
CTS = CTs
TERRORIST = TERRORIST
TERRORISTS = TERRORISTEN
REMAINING = %d %s uebrig...
REMAINING = %d %s übrig...
REMAINING_ENEMY = Ein Gegner übrig...
REMAINING_ENEMIES = %d Gegner übrig...
KILLS = kills
HS = hs
@ -136,6 +140,8 @@ CTS = CTS
TERRORIST = TERORISTA
TERRORISTS = TERORISTA
REMAINING = %d %s Preostalo...
REMAINING_ENEMY = Jedan preostali protivnika...
REMAINING_ENEMIES = %d preostalih protivnika...
KILLS = ubistava
HS = hs
@ -230,6 +236,8 @@ CTS = CTS
TERRORIST = TERRORISTE
TERRORISTS = TERRORISTES
REMAINING = %d %s Restant...
REMAINING_ENEMY = Dernier ennemi restant...
REMAINING_ENEMIES = %d ennemis restants...
KILLS = frags
HS = hs

View File

@ -10,15 +10,15 @@ TYPE_LANGMENU = Type 'amx_langmenu' in the console to display a menu where you c
LANG_MENU_DISABLED = Language menu disabled.
[de]
LANG_NOT_EXISTS = Diese Sprache exsistiert nicht.
LANG_NOT_EXISTS = Diese Sprache existiert nicht.
PERSO_LANG = Eigene Sprache
LANG_MENU = Sprach Menu
SERVER_LANG = Server Sprache
LANG_MENU = Sprachmenü
SERVER_LANG = Sprache des Servers
SAVE_LANG = Spracheinstellung speichern
SET_LANG_SERVER = Die Sprache des Servers wurde auf "%s" geaendert
SET_LANG_USER = Deine Sprache wurde auf "%s" geaendert
TYPE_LANGMENU = Schreibe 'amx_langmenu' in die Konsole zum Anzeigen des Sprachauswahlmenus
LANG_MENU_DISABLED = Sprachen Menü deaktiviert.
SET_LANG_SERVER = Die Sprache des Servers wurde auf "%s" geändert
SET_LANG_USER = Deine Sprache wurde auf "%s" geändert
TYPE_LANGMENU = Schreibe 'amx_langmenu' in die Konsole zum Anzeigen des Sprachmenüs
LANG_MENU_DISABLED = Sprachmenü deaktiviert.
[sr]
LANG_NOT_EXISTS = Jezik ne postoji

View File

@ -4,7 +4,7 @@ PLAYED_MAP = Played map
FRIEND_FIRE = Friendly fire
[de]
NEXT_MAP = Naechste Map:
NEXT_MAP = Nächste Map:
PLAYED_MAP = Gespielte Maps
FRIEND_FIRE = Friendly fire

View File

@ -39,15 +39,15 @@ CANT_UNPAUSE_PLUGIN = Plugin "%s" is stopped and cannot be paused or unpaused.
CLEAR_PAUSED = Clear file with paused
[de]
PAUSE_COULDNT_FIND = Konnte kein Plugin finden, dass mit "%s" uebereinstimmt
PAUSE_PLUGIN_MATCH = Plugin stimmt mit "%s" ueberein
PAUSE_CONF_CLEARED = Konfigurationsdatei geloescht. Bei Bedarf Map neu starten.
PAUSE_ALR_CLEARED = Konfiguration war bereits geloescht!
PAUSE_COULDNT_FIND = Konnte kein Plugin finden, dass mit "%s" übereinstimmt
PAUSE_PLUGIN_MATCH = Plugin stimmt mit "%s" überein
PAUSE_CONF_CLEARED = Konfigurationsdatei gelöscht. Bei Bedarf Map neu starten.
PAUSE_ALR_CLEARED = Konfiguration war bereits gelöscht!
PAUSE_CONF_SAVED = Konfiguration erfolgreich gespeichert.
PAUSE_SAVE_FAILED = Fehler beim Speichern der Konfiguration!!!
LOCKED = GESPERRT
PAUSE_UNPAUSE = Pausiere/Aktiviere Plugins
CLEAR_STOPPED = Loeschen der Datei gestoppt
CLEAR_STOPPED = Löschen der Datei gestoppt
SAVE_STOPPED = Speichern abgebrochen
PAUSED_PLUGIN = Pausiere %d Plugin
PAUSED_PLUGINS = Pausiere %d Plugins
@ -58,8 +58,8 @@ PAUSE_LOADED = Pausierte Plugins: Plugins geladen
STOPPED = gestoppt
VERSION = Version
FILE = Datei
PAUSE_ENTRIES = Eintraege %d - %d von %d (%d laufen)
PAUSE_USE_MORE = Benutze 'amx_pausecfg list %d' fuer mehr
PAUSE_ENTRIES = Einträge %d - %d von %d (%d laufen)
PAUSE_USE_MORE = Benutze 'amx_pausecfg list %d' für mehr
PAUSE_USE_BEGIN = Benutze 'amx_pausecfg list 1' um zum Anfang zu gelangen
PAUSE_USAGE = Benutze: amx_pausecfg <Befehl> [Name]
PAUSE_COMMANDS = Befehle
@ -69,14 +69,14 @@ COM_PAUSE_STOP = ^tstop <file> - stoppt ein Plugin
COM_PAUSE_PAUSE = ^tpause <file> - pausiert ein Plugin
COM_PAUSE_ENABLE = ^tenable <file> - aktiviert ein Plugin
COM_PAUSE_SAVE = ^tsave - speichert die Liste der gestoppten Plugins
COM_PAUSE_CLEAR = ^tclear - loescht die Liste der gestoppten Plugins
COM_PAUSE_CLEAR = ^tclear - löscht die Liste der gestoppten Plugins
COM_PAUSE_LIST = ^tlist [id] - Plugins anzeigen
COM_PAUSE_ADD = ^tadd <title> - markiert ein Plugin als nicht pausierbar
SAVE_PAUSED = Speichere pausierte Plugins
COM_PAUSE_SAVE_PAUSED = ^tsave - speichert die Liste der pausierten Plugins
COM_PAUSE_CLEAR_PAUSED = ^tclear - leert die Liste der pausierten Plugins
CANT_UNPAUSE_PLUGIN = Das Plugin "%s" ist gestoppt und kann nicht pausiert oder unpausiert werden.
CLEAR_PAUSED = Loeschen der Datei pausierten
CANT_UNPAUSE_PLUGIN = Das Plugin "%s" ist gestoppt und kann nicht pausiert oder aktiviert werden.
CLEAR_PAUSED = Löscht die Liste der pausierten Plugins
[sr]
PAUSE_COULDNT_FIND = Nije moguce naci plugin koji se poklapa sa "%s"

View File

@ -20,21 +20,21 @@ CANT_PERF_PLAYER = That action can't be performed on player "%s"
[de]
ADMIN_BAN_1 = ADMIN: bannt %s
ADMIN_BAN_2 = ADMIN %s: bannt %s
BAN_MENU = Menu > bannen
BAN_FOR_MIN = Bann fuer %d Minuten
BAN_PERM = fuer immer bannen
SLAP_SLAY_MENU = Schlagen/Toeten-Menu
SLAP_WITH_DMG = Schlaegt mit %d Schaden
SLAY = toeten
KICK_MENU = Menu >kicken
BAN_MENU = Menü > bannen
BAN_FOR_MIN = für %d Minuten bannen
BAN_PERM = für immer bannen
SLAP_SLAY_MENU = Schlagen/Killen-Menü
SLAP_WITH_DMG = mit %d Schaden schlagen
SLAY = killen
KICK_MENU = Menü > kicken
ADMIN_TRANSF_1 = ADMIN: verschiebt %s zu den %s
ADMIN_TRANSF_2 = ADMIN %s: verschiebt %s zu den %s
TEAM_MENU = Menu > Team
TRANSF_TO = zu den %s geschoben
TEAM_MENU = Menü > Team
TRANSF_TO = zu den %s schieben
TRANSF_SILENT = Stiller Transfer
CL_CMD_MENU = Menu > Spielerbefehle
NO_CMDS = keine Befehle verfuegbar
CANT_PERF_PLAYER = Diese Aktion kann nicht am spieler "%s" ausgefuehrt werden.
CL_CMD_MENU = Menü > Spielerbefehle
NO_CMDS = keine Befehle verfügbar
CANT_PERF_PLAYER = Diese Aktion kann nicht am Spieler "%s" ausgeführt werden.
[sr]
ADMIN_BAN_1 = ADMIN: ban %s

View File

@ -95,7 +95,7 @@ NO_EQ_WE = Konnte diese Ausrüstung oder Waffe nicht finden
WEAP_RES = Waffenverbot
VALUE = Wert
REST_ENTRIES_OF = Eintrag %i - %i von %i
REST_USE_MORE = Benutze 'amx_restrict list %i' für mehr Info´s
REST_USE_MORE = Benutze 'amx_restrict list %i' für mehr Infos
REST_USE_BEGIN = Benutze 'amx_restrict list 1' um zum Anfang zu gelangen
REST_USE_HOW = Benutze 'amx_restrict list <value>' (1 -> 8)
REST_CONF_SAVED = Konfiguration gesichert (Datei "%s")
@ -117,8 +117,8 @@ REST_WEAP = Waffen verbieten
SAVE_SET = Einstellungen speichern
CONF_SAV_SUC = Konfiguration erfolgreich gespeichert
CONF_SAV_FAIL = Speichern der Konfiguration fehlgeschlagen!!!
REG_CMD_MENU = - Zeigt Waffen-Verbots Menü
REG_CMD_REST = - Zeigt Hilfe für Waffen-Verbots Menü
REG_CMD_MENU = - Zeigt Waffen-Verbotsmenü
REG_CMD_REST = - Zeigt Hilfe für Waffen-Verbotsmenü
RESTRICTED_ITEM = * Dieser Gegenstand ist verboten *
MENU_TITLE_HANDGUNS = Handwaffen
MENU_TITLE_SHOTGUNS = Schrotgewehre
@ -1276,4 +1276,4 @@ MENU_ITEM_NVGS = 夜视护目镜
MENU_ITEM_SHIELD = 战术盾牌
MENU_ITEM_PRIAMMO = 主武器弹药
MENU_ITEM_SECAMMO = 副武器弹药
CONFIG_FILE_HEADER = ; 由 %s 插件生成. 请勿修改!^n; 值名称^n
CONFIG_FILE_HEADER = ; 由 %s 插件生成. 请勿修改!^n; 值名称^n

View File

@ -4,8 +4,8 @@ MSG_FREQ = Scrolling message displaying frequency: %d:%02d minutes
MSG_DISABLED = Scrolling message disabled
[de]
MIN_FREQ = Minimale Frequenz fuer diese Anzeige sind %d Sekunden
MSG_FREQ = Scrollnachricht Anzeigefrequenz: %d:%02d Minuten
MIN_FREQ = Die minimale Frequenz für diese Anzeige sind %d Sekunden
MSG_FREQ = Anzeigefrequenz der Scrollnachricht: %d:%02d Minuten
MSG_DISABLED = Scrollnachrichten abgeschaltet
[sr]

View File

@ -94,9 +94,9 @@ M_THEIR_RANK_IS = Their rank is
M_OF = of
[de]
WHOLEBODY = Koerper
WHOLEBODY = Körper
HEAD = Kopf
CHEST = Oberkoerper
CHEST = Oberkörper
STOMACH = Bauch
LEFTARM = linker Arm
RIGHTARM = rechter Arm
@ -116,31 +116,31 @@ RAMPAGE_SMALL = %s: RANDALIERER!!!
UNSTOPPABLE_SMALL = %s IST NICHT ZU STOPPEN!!
MONSTER_SMALL = %s IST EIN MONSTER!
GODLIKE_SMALL = %s IST GODLIKE!!!
KNIFE_MSG1 = %s hat %s geschnitten und gewuerfelt
KNIFE_MSG2 = %s hat sein Messer gezueckt und %s ausgeweidet
KNIFE_MSG1 = %s hat %s geschnitten und gewürfelt
KNIFE_MSG2 = %s hat sein Messer gezückt und %s ausgeweidet
KNIFE_MSG3 = %s hat sich angeschlichen und %s gemessert
KNIFE_MSG4 = %s messerte und verstuemmelte %s
KNIFE_MSG4 = %s messerte und verstümmelte %s
HE_MSG1 = %s sendet ein kleines Geschenk an %s
HE_MSG2 = %s wirft ein Knallbonbon zu %s
HE_MSG3 = %s macht einen Praezisionswurf zu %s
HE_MSG3 = %s macht einen Präzisionswurf zu %s
HE_MSG4 = %s schickte eine dicke Explosion an %s
SHE_MSG1 = %s sprengte sich selbst mit einer Granate
SHE_MSG2 = %s untersuchte die Auswirkungen ^neiner Granate an sich selbst...
SHE_MSG3 = %s schluckte eine Granate!
SHE_MSG4 = %s explodierte!
HEAD_MSG1 = $kn killte $vn mit einem ^nplazierten Schuss in den Kopf!
HEAD_MSG2 = $kn entfernte den Kopf von $vn^nmit einem Praezisionsschuss.
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 siegte ueber $kn durch eine Kopfschuss.
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_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 !!!
DOUBLE_MSG3 = Ueberrascung! %s macht %d Kills auf einmal !!!
MORTAR_MSG1 = %s stellte den Moerser auf und schickte %s in den Himmel.
MORTAR_MSG2 = %s killte %s ueber eine lange Distanz.
KILL_INFO1 = %s killte dich mit der %s^nueber eine Entfernung von %.2f Meter.^n
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_INFO4 = Du hast ihn getroffen in den/das:^n%s^n
@ -149,7 +149,7 @@ NO_KILLER = Du hast keinen Killer...
TOPX = Top %d
FFIRE_IS = Friendly fire:
ATTACKERS = Angreifer:
VICTIMS = Gewinner:
VICTIMS = Opfer:
DMG = Schaden
HIT_S = Treffer
YOU_HIT = Du trafst %s in:
@ -157,10 +157,10 @@ SERVER_STATS = Server Statistik
SHOW_STATS = Statistik anzeigen
SHOW_RANK = Rang anzeigen
TA_MSG = %s schiesst auf einen Kameraden
TK_MSG = %s toetete einen Kameraden!
NADE_CAUGHT = Wow! %s faengt eine gegnereische Granate!
NADE_FAILEDTK = Oops.. %s killte dich bei dem Versuch, die Granate zurueckzuwerfen..
NADE_FAILED = %s konnte feindliche Granate nicht zurück werfen.
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_MASTER = OMG! %s ist der Meister der Granaten !!!
DISABLED_MSG = Server hat diese Option deaktiviert.
MOST_KILLS = Meisten Kills
@ -179,7 +179,7 @@ M_DEATHS = Deaths:
M_SCORE = Note:
M_TKS = TKs:
M_HITS = Treffer:
M_SHOTS = Schuesse:
M_SHOTS = Schüsse:
M_HS = HS:
M_WEAPON = Waffe:
M_DAMAGE = Schaden:

View File

@ -88,59 +88,59 @@ STATS_CONF_FAILED = Fehler beim Speichern der Statistik-Konfiguration!!!
STATS_CONF_LOADED = Statistik-Konfiguration erfolgreich geladen
STATS_CONF_FAIL_LOAD = Fehler beim Laden der Statistik-Konfiguration!!!
STATS_CONF = Statistik-Konfiguration
STATS_ENTRIES_OF = Eintraege %i - %i von %i
STATS_USE_MORE = Benutze 'amx_statscfg list %i' fuer mehr Info´s
STATS_ENTRIES_OF = Einträge %i - %i von %i
STATS_USE_MORE = Benutze 'amx_statscfg list %i' für mehr Info´s
STATS_USE_BEGIN = Benutze 'amx_statscfg list 1' um zum Anfang zu gelangen
CANT_ADD_STATS = Kann keine Statistik mehr hinzufuegen, das Limit ist erreicht!
CANT_ADD_STATS = Kann keine Statistik mehr hinzufügen, das Limit ist erreicht!
COM_STATS_USAGE = Benutze: amx_statscfg <Befehl> [Parameter] ...
COM_STATS_COM = Befehl:
COM_STATS_ON = ^ton <variable> - gibt spezielle Option frei
COM_STATS_OFF = ^toff <variable> - sperrt spezielle Option
COM_STATS_SAVE = ^tsave - speichert Statistik-Konfiguration
COM_STATS_LOAD = ^tload - laedt Statistik-Konfiguration
COM_STATS_LOAD = ^tload - lädt Statistik-Konfiguration
COM_STATS_LIST = ^tlist [id] - Statistik-Status anzeigen
COM_STATS_ADD = ^tadd <name> <variable> - fuegt eine Statistik zur Liste hinzu
COM_STATS_ADD = ^tadd <name> <variable> - fügt eine Statistik zur Liste hinzu
NO_STATS = Statistik-Plugin ist nicht^nauf diesem Server installiert^n
SAVE_CONF = Konfiguration speichern
STATS_ENABLED = Stats enabled
STATS_DISABLED = Stats disabled
ST_MULTI_KILL = MultiKill
ST_MULTI_KILL_SOUND = MultiKill Sound
STATS_ENABLED = Stats aktiviert
STATS_DISABLED = Stats deaktiviert
ST_MULTI_KILL = Multikill
ST_MULTI_KILL_SOUND = Multikill Sound
ST_BOMB_PLANTING = Bombe platzieren
ST_BOMB_DEFUSING = Bombe entschaerfen
ST_BOMB_DEFUSING = Bombe entschärfen
ST_BOMB_PLANTED = Bombe platziert
ST_BOMB_DEF_SUCC = Bombe entschaerfen erf.
ST_BOMB_DEF_FAIL = Bombe entschaerfen fehl.
ST_BOMB_DEF_SUCC = Bombe entschärfen erf.
ST_BOMB_DEF_FAIL = Bombe entschärfen fehl.
ST_BOMB_PICKUP = Bombe aufgenommen
ST_BOMB_DROP = Bombe verloren
ST_BOMB_CD_VOICE = Bomben Countdown Stimme
ST_BOMB_CD_DEF = Bomben Countdown (entschaerfer)
ST_BOMB_SITE = Bomben Platz erreicht
ST_ITALY_BONUS = Italy extra Kill
ST_BOMB_CD_VOICE = Bombencountdown Stimme
ST_BOMB_CD_DEF = Bombencountdown (Entschärfer)
ST_BOMB_SITE = Bombenplatz erreicht
ST_ITALY_BONUS = Italy Bonuskill
ST_LAST_MAN = Letzter Mann
ST_KNIFE_KILL = Messer Kill
ST_KNIFE_KILL_SOUND = Messer Kill Sound
ST_HE_KILL = Granaten Kill
ST_KNIFE_KILL = Messerkill
ST_KNIFE_KILL_SOUND = Messerkill Sound
ST_HE_KILL = Granatenkill
ST_HE_SUICIDE = Granaten Selbstmord
ST_HS_KILL = Headshot Kill
ST_HS_KILL_SOUND = Headshot Kill Sound
ST_ROUND_CNT = Runden Zaehler
ST_ROUND_CNT_SOUND = Runden Zaehler Sound
ST_HS_KILL = Headshotkill
ST_HS_KILL_SOUND = Headshotkill Sound
ST_ROUND_CNT = Rundenhler
ST_ROUND_CNT_SOUND = Rundenhler Sound
ST_KILL_STR = Kill Serie
ST_KILL_STR_SOUND = Kill Serie Sound
ST_ENEMY_REM = Gegner verbleibend
ST_DOUBLE_KILL = Doppel Kill
ST_DOUBLE_KILL_SOUND = Doppel Kill Sound
ST_PLAYER_NAME = Spieler Name
ST_DOUBLE_KILL = Doppelkill
ST_DOUBLE_KILL_SOUND = Doppelkill Sound
ST_PLAYER_NAME = Spielername
ST_FIRST_BLOOD_SOUND = Erstes Blut Sound
ST_SHOW_KILLER_CHAT = Zeige Killer HP&AP
ST_SHOW_ATTACKERS = Zeige Angreifer
ST_SHOW_VICTIMS = Zeige Gegner
ST_SHOW_VICTIMS = Zeige Opfer
ST_SHOW_KILLER = Zeige Killer
ST_SHOW_TEAM_SCORE = Zeige Team Score
ST_SHOW_TOTAL_STATS = Zeige totale Stats
ST_SHOW_BEST_SCORE = Zeige besten Score
ST_SHOW_MOST_DISRUPTIVE = Zeige meisten Durchschlaege
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
@ -156,12 +156,12 @@ ST_SAY_TOP15 = Say /top15
ST_SAY_STATS = Say /stats
ST_SPEC_RANK = Spec. Rang Info
ST_BOMB_PLANTED_SOUND = Bombe platziert Sound
ST_BOMB_DEF_SUCC_SOUND = Bombe entschaerfen erf. Sound
ST_BOMB_DEF_FAIL_SOUND = Bombe entschaerfen fehl. Sound
ST_BOMB_CD_HUD = Bomben Countdown Hud
ST_BOMB_DEF_SUCC_SOUND = Bombe entschärfen erf. Sound
ST_BOMB_DEF_FAIL_SOUND = Bombe entschärfen fehl. Sound
ST_BOMB_CD_HUD = Bomben Countdown HUD
ST_LAST_MAN_SOUND = Letzter Mann Sound
ST_LAST_MAN_HEALTH = Last Man Health
ST_HE_KILL_SOUND = Granaten Kill Sound
ST_LAST_MAN_HEALTH = Letzter Mann HP
ST_HE_KILL_SOUND = Granatenkill Sound
ST_HE_SUICIDE_SOUND = Granaten Selbstmord Sound
[sr]

View File

@ -50,9 +50,9 @@ X_RANK_IS = %s's rank is %d of %d
DISABLED_MSG = Server has disabled that option
[de]
WHOLEBODY = Koerper
WHOLEBODY = Körper
HEAD = Kopf
CHEST = Oberkoerper
CHEST = Oberkörper
STOMACH = Bauch
LEFTARM = linker Arm
RIGHTARM = rechter Arm
@ -63,26 +63,26 @@ ATTACKERS = Angreifer
ACC = Genauigkeit
HIT_S = Treffer
DMG = Schaden
VICTIMS = Sieger
VICTIMS = Opfer
MOST_DMG = Am meisten verursachter Schaden durch
KILLED_YOU_DIST = %s hat dich getoetet ^naus einer Entfernung von %0.2f Metern.
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 %d Schaden bei ihm angerichtet mit %d Treffern.
YOU_DID_DMG = Du hast bei ihm %d Schaden mit %d Treffern angerichtet.
EFF = Effizienz
BEST_SCORE = Die meisten Punkte
KILL_S = Kill(s)
TOTAL = Total
SHOT_S = Schuesse
HITS_YOU_IN = %s Treffer bei ihm
KILLED_BY_WITH = Getoetet von %s mit %s @ %0.0fm
SHOT_S = Schüsse
HITS_YOU_IN = %s traf dich in:
KILLED_BY_WITH = Gekillt von %s mit %s @ %0.0fm
NO_HITS = keine Treffer
YOU_NO_KILLER = Du hast niemanden getoetet...
YOU_NO_KILLER = Du hast niemanden gekillt...
YOU_HIT = Deine Treffer: %s %d mal, %d Schaden
LAST_RES = Letztes Ergebnis: %d Treffer, %d Schaden
KILLS = Kills
DEATHS = Deaths
HITS = Treffer
SHOTS = Schuesse
SHOTS = Schüsse
YOUR = Dein
PLAYERS = Spieler
RANK_IS = Platzierung: %d von %d
@ -91,14 +91,14 @@ WEAPON = Waffe
YOUR_RANK_IS = Deine Platzierung: %d von %d mit %d Kill(s), %d Treffer, %0.2f%% eff. und %0.2f%% acc.
AMMO = Munition
HEALTH = Gesundheit
ARMOR = Ruestung
ARMOR = Rüstung
GAME_SCORE = Punkte
STATS_ANNOUNCE = Du hast %s Statistik-Meldungen
ENABLED = eingeschaltet
DISABLED = ausgeschaltet
ENABLED = aktiviert
DISABLED = deaktiviert
SERVER_STATS = Serverstatistik
X_RANK_IS = %s's Platzierung: %d von %d
DISABLED_MSG = Der Server hat diese Option ausgeschaltet.
DISABLED_MSG = Der Server hat diese Option deaktiviert.
[sr]
WHOLEBODY = celo telo

View File

@ -8,7 +8,7 @@ SAVE_LOC = Save Location
[de]
ADMIN_TELEPORT_1 = ADMIN: teleportiert %s
ADMIN_TELEPORT_2 = ADMIN %s: teleportiert %s
TELE_MENU = Menu > Teleport
TELE_MENU = Menü > Teleport
CUR_LOC = Momentane Position
SAVE_LOC = Position speichern

View File

@ -9,7 +9,7 @@ SECONDS = seconds
[de]
THE_TIME = Es ist
TIME_LEFT = Zeit uebrig
TIME_LEFT = Zeit übrig
NO_T_LIMIT = Kein Zeitlimit
MINUTE = Minute
MINUTES = Minuten

View File

@ -468,7 +468,7 @@ public CvarMenuSelection(id, menu, item)
if (ExplicitPlugin[id]==-1)
{
DisplayPluginMenuDefault(id);
DisplayPluginMenu(id,"Plugin Cvar Menu:", "PluginMenuSelection","DisplayCvarMenu","GetNumberOfCvarsForPlid");
}
}
else if (item==MENU_BACK)
@ -790,7 +790,7 @@ public CommandMenuSelection(id, menu, item)
if (ExplicitPlugin[id]==-1)
{
client_cmd(id,"amx_plugincmdmenu");
DisplayPluginMenu(id,"Plugin Command Menu:", "PluginMenuSelection","DisplayCmdMenu","GetNumberOfCmdsForPlid");
}
}
else if (item==MENU_BACK)
@ -914,7 +914,7 @@ public CommandMenuCommand(id, level, cid)
{
// We need to display a list of the plugins, instead of a specific plugin.
ExplicitPlugin[id]=-1;
DisplayPluginMenuDefault(id);
DisplayPluginMenu(id,"Plugin Command Menu:", "PluginMenuSelection","DisplayCmdMenu","GetNumberOfCmdsForPlid");
}
else
{
@ -925,8 +925,3 @@ public CommandMenuCommand(id, level, cid)
}
return PLUGIN_HANDLED;
}
DisplayPluginMenuDefault(id)
{
DisplayPluginMenu(id,"Plugin Command Menu:", "PluginMenuSelection","DisplayCmdMenu","GetNumberOfCmdsForPlid");
}