Am văzut în istoricul său mai multe mesaje/topice făcute identic. L-am banat permanent.
-
#361Reply in Staff Complaints
-
#362Reply in Staff Complaints
Îl puteți bana dacă continuă(excluderea sv-ului)
-
#364Reply in Servers management & Affiliation
Dacă vreți, îmi dați pm cu nick & pw.
-
#365Reply in Servers management & Affiliation
Nick : eVoLuTiOn
Varsta : 20
Experienta AMXX MODX : n-am stat să număr =)....sper să nu greșesc când zic că am aproximativ 4 ani
Contact : la semnătură
Grad dorit ? : ceva cu acces la ban/voteban/banmenu & gag/mapmenu/vote/votemap
Poti ajuta serverul cu un BOOST / DONATIE ? : poate
Alte precizari ? : nu
-
#366Reply in Forum Management
Faci 1 topic, și precizezi calumea tot ce dorești.
Ai primit +1 warn.
-
#367Reply in DNS Requests
ACCEPTAT. Te aștept cu cerere pt. categorii aici - http://ECILA.ro/forum/index.php/forum/22-forum-management/
-
#368Reply in Forum Management
Nu se mai pun efecte.
EDIT - Gata. Roagă-te să nu ceară un deținător de pe cs modificarea..
-
#369Reply in Forum Management
Nu prea înțeleg
-
#370Reply in Staff Complaints
Ultima oară când repimește gradu.
-
#371Reply in Forum Management
adăugat
-
#372Reply in Requests Archive
Nu mai trebuie. Se vede că e dezinteres. O să cer altcuiva care are „timp”. T.C
-
#373Reply in Plugins
NU MERGE PE RE-HLDS(rehlds este protejat 100%, nu aveți nevoie de nici un fel de plugin pentru „protecție”) !!!Teoretic îl pot lăsa să meargă, dar nu are rost/
-
#374Reply in Plugins
-
#375Reply in Plugins
Mai jos vă voi lăsa un plugin bazat pe Orpheu(Click pentru a descărca ultima versiune, în caz că nu aveți deja Orpheu), dar și Funcțiile Orpheu necesare. Acesta este plugin care blochează orice tip de Flood(de ex, flood prin script python, de pe un vps)
SMA
Spoiler
#include <amxmodx> #include <orpheu> new OrpheuFunction:HandleFuncNETQueuePacket; new OrpheuFunction:HandleFuncConPrintf; new OrpheuHook:HandleHookConPrintf; public plugin_init() { register_plugin( "Ban NET Packet Spammer", "1.0.1", "Arkshine" ); HandleFuncNETQueuePacket = OrpheuGetFunction( "NET_QueuePacket" ); HandleFuncConPrintf = OrpheuGetFunction( "Con_Printf" ); OrpheuRegisterHook( HandleFuncNETQueuePacket, "NET_QueuePacket_Pre", OrpheuHookPre ); OrpheuRegisterHook( HandleFuncNETQueuePacket, "NET_QueuePacket_Post", OrpheuHookPost ); } public NET_QueuePacket_Pre() { HandleHookConPrintf = OrpheuRegisterHook( HandleFuncConPrintf, "Con_Printf" ); } public Con_Printf( const fmt[], const arg[] ) { static const message[] = "Oversize packet from "; if( contain( fmt, message ) >= 0 ) { new ip[ 16 ], i, c; while( i < charsmax( ip ) && ( c = fmt[ i + charsmax( message ) ] ) && c != ':' ) { ip[ i++ ] = c; } ip[ i ] = EOS; log_to_file( "NET_Packet_Spammer.log", "Blocking %s", ip ); server_cmd( "addip 0 ^"%s^"", ip ); server_exec(); } } public NET_QueuePacket_Post() { OrpheuUnregisterHook( HandleHookConPrintf ); }Funcția „Con_Printf” (v1)
Spoiler
{ "name" : "Con_Printf", "library" : "engine", "arguments" : [ { "type" : "char *" }, { "type" : "char *" } ], "identifiers" : [ { "os" : "windows", "mod" : "cstrike", "value" : [0x55,0x8B,0xEC,0xB8,"*","*","*","*",0xE8,"*","*","*","*",0x8B,"*","*",0x8D,"*","*",0x50,0x51,0x8D,0x95,"*","*","*","*",0x68,"*","*","*","*",0x52,0xE8,"*","*","*","*",0x8D,0x85,"*","*","*","*",0x50] }, { "os" : "linux", "mod" : "cstrike", "value" : "Con_Printf" } ] }Funcția „Con_Printf” (v2)
Spoiler
{ "name" : "Con_Printf", "library" : "engine", "arguments" : [ { "type" : "char *" }, { "type" : "char *" } ], "identifiers" : [ { "os" : "windows", "mod" : "cstrike", "value" : [0x55,0x8B,"*",0x81,"*","*","*","*","*",0x53,0x56,0x57,0xB9,"*","*","*","*",0xBE] }, { "os" : "linux", "mod" : "cstrike", "value" : "Con_Printf" } ] }Funcția „NET_QueuePacket”
Spoiler
{ "name" : "NET_QueuePacket", "library" : "engine", "arguments" : [ { "type" : "int" } ], "identifiers" : [ { "os" : "windows", "mod" : "cstrike", "value" : [0x55,0x8B,0xEC,0x81,0xEC,"*","*","*","*",0x53,0x8B,"*","*",0x56,0x57,0x33,0xFF,0x89,"*","*",0x85,0xFF] }, { "os" : "linux", "mod" : "cstrike", "value" : "NET_QueuePacket" } ] } -
#376Reply in Plugins
Mai jos vă voi lăsa un plugin, care crează un fișier al său, prin care vă arată detalii despre „crash”-uri.
Spoiler
#include <amxmodx> #define PLUGIN "Crash Counter" #define VERSION "1.0" #define AUTHOR "stupok" #define DIR_CRASHLOG "addons\amxmodx\logs\CrashLog" #define FILE_CRASHMAP "addons\amxmodx\logs\CrashLog\crash_map.txt" #define FILE_LOG "CrashLog.log" // will be found in addons\amxmodx\logs new cvar_Crashed public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) cvar_Crashed = register_cvar("server_crashed", "1", FCVAR_SPONLY) // do not let players edit this cvar if(!dir_exists(DIR_CRASHLOG)) mkdir(DIR_CRASHLOG) // make addons\amxmodx\logs\CrashLog if(!file_exists(FILE_CRASHMAP)) write_file(FILE_CRASHMAP, "-- Do not edit --", -1) // make crash_map.txt new szMapName[32] new iLineLen read_file(FILE_CRASHMAP, 2, szMapName, charsmax(szMapName), iLineLen) // read previous map from file if(get_pcvar_num(cvar_Crashed)) // check if server just started, 1 = start, 0 = restart/mapchange { if(szMapName[0]) // do we have a map from crash_map.txt? { log_to_file(FILE_LOG, "The server exited or crashed on '%s' before this recorded time.", szMapName) } set_pcvar_num(cvar_Crashed, 0) // this will be set to 1 again when the server has a "fresh" start (not restart) } get_mapname(szMapName, charsmax(szMapName)) // get the name of the current map write_file(FILE_CRASHMAP, szMapName, 2) // write it to crash_map.txt } -
#377Reply in Plugins
Plugin pentru reHLDS & HLDS , care blochează OVER-FLOW-ul la jucători!
Pentru HLDS , veți avea nevoie de Orpheu(în caz că nu aveți deja) - Click (nu contează versiunea), dar și de Funcția „SV_DropClient”(se pune în folderul „functions” din folderul „oprheu” din folderul „configs” din folderul „amxmodx”
V1 SMA + Funcția sa „SV_DropClient”
Spoiler
#include <amxmodx> #define RETRY_ON_KICK // Çŕńňŕâčňü čăđîęŕ ďĺđĺďîäęëţ÷čňüń˙ ďĺđĺä ęčęîě //#define ReAPI // Çŕęîěěĺíňčđîâŕňü, ĺńëč íĺň ReAPI #if defined ReAPI #include <reapi> #define IGNORE_CALL HC_CONTINUE #define BLOCK_CALL HC_BREAK #else #include <fakemeta> #include <orpheu> #define IGNORE_CALL _:OrpheuIgnored #define BLOCK_CALL _:OrpheuSupercede #endif #if !defined ReAPI new g_ClientPtr; new g_ElementSize; new g_EntityOffset; #endif new g_PlayerWarns[33]; enum CVAR { CVAR_MAX_WARNS, CVAR_RESET_TIME }; new g_Cvars[CVAR] = {0, }; #if !defined ReAPI new g_DisconnectForward; #endif #pragma semicolon 1 public plugin_init() { #if defined ReAPI register_plugin("[ReAPI] Anti overflow", "3.1", "mazdan & Inline, WPMGPRoSToTeMa"); #else register_plugin("Anti overflow", "3.1", "mazdan & Inline, WPMGPRoSToTeMa"); #endif g_Cvars[CVAR_MAX_WARNS] = register_cvar("antir_max_warns", "5"); g_Cvars[CVAR_RESET_TIME] = register_cvar("antir_reset_time", "10"); #if defined ReAPI RegisterHookChain(RH_SV_DropClient, "SV_DropClient", false); #else OrpheuRegisterHook( OrpheuGetFunction("SV_DropClient"), "SV_DropClient",OrpheuHookPre); g_DisconnectForward = register_forward(FM_ClientDisconnect, "ClientDisconnect"); #endif } #if defined ReAPI public SV_DropClient( id , crash , const message[] ) #else public OrpheuHookReturn:SV_DropClient( clientPtr , crash , const message[] ) #endif { new ret = IGNORE_CALL; #if !defined ReAPI if(g_ElementSize && g_EntityOffset) #endif { if(containi(message, "Reliable channel overflowed") != -1) { #if !defined ReAPI new id = (clientPtr - g_EntityOffset) / g_ElementSize; #endif if(g_PlayerWarns[id]++ < get_pcvar_num(g_Cvars[CVAR_MAX_WARNS])) { if(task_exists(id)) remove_task(id); set_task(get_pcvar_float(g_Cvars[CVAR_RESET_TIME]), "Task_ResetWarns", id); ret = BLOCK_CALL; } else { #if defined RETRY_ON_KICK client_cmd(id, "retry"); #endif ret = IGNORE_CALL; } } } #if !defined ReAPI else { if(containi(message, "Reliable channel overflowed") != -1) { ret = BLOCK_CALL; } g_ClientPtr = clientPtr; } #endif #if defined ReAPI return ret; #else return OrpheuHookReturn:ret; #endif } public Task_ResetWarns(id) g_PlayerWarns[id] = 0; public client_connect(id) g_PlayerWarns[id] = 0; #if !defined ReAPI public ClientDisconnect(id) // After SV_DropClient { static entityId = 0, lastPointer = 0; if(g_ClientPtr) { if(entityId && entityId != id) { g_ElementSize = abs( (g_ClientPtr - lastPointer) / (id - entityId) ); g_EntityOffset = abs( g_ClientPtr - (id * g_ElementSize) ); unregister_forward(FM_ClientDisconnect, g_DisconnectForward); } else { lastPointer = g_ClientPtr; entityId = id; } } } #endifSpoiler
{ "name" : "SV_DropClient", "library" : "engine", "arguments" : [ { "type" : "int" }, { "type" : "int" }, { "type" : "char *" } ], "identifiers": [ { "os" : "windows", "mod" : "cstrike", "value" : [0x55,0x8B,"?",0x81,"?","?","?","?","?",0x8B,0x4D,"?","?",0x56,0x8D,"?","?",0x57,0x50,0x51,0x8D] }, { "os" : "linux", "mod" : "cstrike", "value" : "SV_DropClient" } ] }V2 + Funcția sa „SV_DropClient”
Spoiler
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <orpheu> #define PLUGIN "HLDS-Project" #define VERSION "1.0.5" #define AUTHOR "SkillartzHD" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) OrpheuRegisterHook(OrpheuGetFunction("SV_DropClient"), "sv_dropclient_f") // Add your code here... } public OrpheuHookReturn:sv_dropclient_f(a[],b[],c[]) { /* bCleanDecals= dword pentru -638h // a[] count= dword pentru -634h // b[] argptr= dword pentru -630h // c[] */ if(containi(c,"Reliable channel overflowed")!=-0x01) { return OrpheuSupercede; } return OrpheuIgnored; }Spoiler
{ "name" : "SV_DropClient", "library" : "engine", "arguments" : [ { "type" : "int" }, { "type" : "int" }, { "type" : "char *" } ], "identifiers": [ { "os" : "windows", "mod" : "cstrike", "value" : [0x55,0x8B,"*",0x81,"*","*","*","*","*",0x8B,0x4D,"*",0x53,0x56,0x8D,0x45,"*",0x57,0x50,0x51,0x8D,0x95] }, { "os" : "linux", "mod" : "cstrike", "value" : "SV_DropClient" } ] }V3 + luați a 2-a versiunea pt. „SV_DropClient”
Spoiler
// corrected by Safety1st #include <amxmodx> #include <orpheu> new g_offset new size new offset new g_maxwarns new p[33] public plugin_init() { register_plugin("Anti overflow", "2.0", "mazdan") register_cvar("anti_reliable_warns", "5") set_cvar_string("anti_reliable_time", "10") } public plugin_cfg() { OrpheuRegisterHook( OrpheuGetFunction("SV_DropClient"), "SV_DropClient",OrpheuHookPre); set_task(get_cvar_float("anti_reliable_time"),"r",0,_,_,"b") g_maxwarns=get_cvar_num("anti_reliable_warns") } public OrpheuHookReturn:SV_DropClient( a , b , const szMessage[] ) { new OrpheuHookReturn:ret=OrpheuIgnored if(size && offset) { if(containi(szMessage,"Reliable channel overflowed")!=-1) { ret = (p[(a-offset)/size]++<g_maxwarns)?OrpheuSupercede:OrpheuIgnored; } } else { if(containi(szMessage,"Reliable channel overflowed")!=-1) { ret = OrpheuSupercede } g_offset=a } return ret } public r() arrayset(p,0,33) public client_disconnect(id) { p[id]=0 static bool:zdes_byl_ya static uid, l_o if(!zdes_byl_ya && g_offset) { if(uid) { if(uid!=id) { size=(g_offset-l_o)/(id-uid) offset=g_offset-id*size zdes_byl_ya=true; } } else { l_o=g_offset uid=id } } }V4 + luați tot a 2-a funcție „SV_DropClient”
Spoiler
#include <amxmodx> #include <orpheu> public plugin_init() { register_plugin("Anti overflow", "2.0", "mazdan") } public plugin_cfg() { OrpheuRegisterHook( OrpheuGetFunction("SV_DropClient"), "SV_DropClient",OrpheuHookPre); } public OrpheuHookReturn:SV_DropClient( a , b , const szMessage[] ) { return containi(szMessage,"Reliable channel overflowed")==-1?OrpheuIgnored:OrpheuSupercede }Pentru reHLDS , aveți nevoie de reAPI - Click
Spoiler
#include <amxmodx> #define RETRY_ON_KICK // Çŕńňŕâčňü čăđîęŕ ďĺđĺďîäęëţ÷čňüń˙ ďĺđĺä ęčęîě #define ReAPI // Çŕęîěěĺíňčđîâŕňü, ĺńëč íĺň ReAPI #if defined ReAPI #include <reapi> #define IGNORE_CALL HC_CONTINUE #define BLOCK_CALL HC_BREAK #else #include <fakemeta> #include <orpheu> #define IGNORE_CALL _:OrpheuIgnored #define BLOCK_CALL _:OrpheuSupercede #endif #if !defined ReAPI new g_ClientPtr; new g_ElementSize; new g_EntityOffset; #endif new g_PlayerWarns[33]; enum CVAR { CVAR_MAX_WARNS, CVAR_RESET_TIME }; new g_Cvars[CVAR] = {0, }; #if !defined ReAPI new g_DisconnectForward; #endif #pragma semicolon 1 public plugin_init() { #if defined ReAPI register_plugin("[ReAPI] Anti overflow", "3.1", "mazdan & Inline, WPMGPRoSToTeMa"); #else register_plugin("Anti overflow", "3.1", "mazdan & Inline, WPMGPRoSToTeMa"); #endif g_Cvars[CVAR_MAX_WARNS] = register_cvar("antir_max_warns", "5"); g_Cvars[CVAR_RESET_TIME] = register_cvar("antir_reset_time", "10"); #if defined ReAPI RegisterHookChain(RH_SV_DropClient, "SV_DropClient", false); #else OrpheuRegisterHook( OrpheuGetFunction("SV_DropClient"), "SV_DropClient",OrpheuHookPre); g_DisconnectForward = register_forward(FM_ClientDisconnect, "ClientDisconnect"); #endif } #if defined ReAPI public SV_DropClient( id , crash , const message[] ) #else public OrpheuHookReturn:SV_DropClient( clientPtr , crash , const message[] ) #endif { new ret = IGNORE_CALL; #if !defined ReAPI if(g_ElementSize && g_EntityOffset) #endif { if(containi(message, "Reliable channel overflowed") != -1) { #if !defined ReAPI new id = (clientPtr - g_EntityOffset) / g_ElementSize; #endif if(g_PlayerWarns[id]++ < get_pcvar_num(g_Cvars[CVAR_MAX_WARNS])) { if(task_exists(id)) remove_task(id); set_task(get_pcvar_float(g_Cvars[CVAR_RESET_TIME]), "Task_ResetWarns", id); ret = BLOCK_CALL; } else { #if defined RETRY_ON_KICK client_cmd(id, "retry"); #endif ret = IGNORE_CALL; } } } #if !defined ReAPI else { if(containi(message, "Reliable channel overflowed") != -1) { ret = BLOCK_CALL; } g_ClientPtr = clientPtr; } #endif #if defined ReAPI return ret; #else return OrpheuHookReturn:ret; #endif } public Task_ResetWarns(id) g_PlayerWarns[id] = 0; public client_connect(id) g_PlayerWarns[id] = 0; #if !defined ReAPI public ClientDisconnect(id) // After SV_DropClient { static entityId = 0, lastPointer = 0; if(g_ClientPtr) { if(entityId && entityId != id) { g_ElementSize = abs( (g_ClientPtr - lastPointer) / (id - entityId) ); g_EntityOffset = abs( g_ClientPtr - (id * g_ElementSize) ); unregister_forward(FM_ClientDisconnect, g_DisconnectForward); } else { lastPointer = g_ClientPtr; entityId = id; } } } #endifȘI NIȘTE SETĂRI PENTRU SERVER.CFG
//RCON Protection rcon_password "" sv_rcon_banpenalty "100" sv_rcon_maxfailures "1" sv_rcon_minfailures "1" sv_rcon_minfailuretime "1" // Set Rates sv_instancebaselines "1" sv_lan "0" sv_unlag "1" sv_unlagmax "0.5" sv_maxunlag "0.1" sv_unlagsamples "1" sv_unlagpush "0" sys_ticrate "666" host_framerate "0" edgefriction "2" fps_max "666" sv_minrate "100000" sv_maxrate "25000" sv_minupdaterate "30" sv_maxupdaterate "60" sv_allowupload "0" // daca vreti spray-uri customizate, pe riscul dvs., setati pe 1 sv_allowdownload "0" // daca aveti probleme cu dwd url..setati 1 pe riscul dvs. max_queries_sec_global "0" max_queries_sec "0" decalfrequency "100" hpk_maxsize "0.1" sv_consistency "0" mp_consistency "1" //setati pe 0 daca nu aveti reHLDS sv_pure "1" sv_stats "1" sv_allow_dlfile "0" sv_timeout "90" -
#378Reply in DNS Requests
Schimbă hostname.
-
#379Reply in Requests Archive
Tipul lucrării (avatar / semnătură / banner / logo / userbar) : semnătură
Dimensiuni: -
Text principal (dacă se poate, nick-ul dvs.): -
Text secundar (dacă se poate, numele comunităţii sau al unui server care aparţine acesteia): -
Stock (stock opţional, dar obligatoriu precizaţi o tematică): -
Tematica (ex. natură / maşini / animale / etc): -
Link de la ultima cerere: -
Alte informaţii: gen cum am acum, doar că vreau să fie ceva mai „modern ca și icon”, mai luminat, „fixat”, numărul de wap să fie de forma „+40 728 1919 64”
-
#380Reply in DNS Requests
Modifică hostname!