Fix symbols

Pluginuri facute de utilizatorii forumului eXtream.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3844
Joined: 24 Aug 2011, 12:24
Detinator Steam: Da
CS Status:
Detinator server CS: ☯∴
SteamID: riseofevo
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 594 times
Contact:

17 Feb 2019, 00:31

Descriere: înlocuiește simbolurile # , %(unicode) și eventual + , ^ , & , "(la final de nick) unele fiind blocate de majoritatea plg. de protecție, și de unele noi versiuni de amxx/metamod/engine

Descarcare: .AMXX compilat cu .inc de 182(utf8) Descarcă
SMA | Afiseaza codul
[code]
#pragma tabsize 0

#include <amxmodx>

#pragma ctrlchar '\'

/*
1 - caută pentru mai multe simboluri, precum: ^ / & / + / " (la sf. de nick)
orice valoare care nu este egală cu 1 reprezintă ocolirea simbolurilor precizate anterior
*/
#define EXTRA 0

new cmdx[21]

public plugin_init()
{
	if(GetEngineVersion()>=6999)	set_fail_state("Ai o versiune avansata a engine-ului, iar acest plugin nu mai este necesar")
	else if(AMXX_VERSION_NUM>str_to_num("182"))	set_fail_state("Ai o versiune avansata a amxmodx-ului, iar acest plugin nu mai este necesar")
	else if(cvar_exists("reu_version")||GetEngineVersion()<=3000)	set_fail_state("Acest plugin nu este necesar pe rehlds")


    /*register_clcmd("say","chat_handle")
    register_clcmd("say_team","chat_handle2")*/
}

public client_connect(id)
{
   new name[32]
   get_user_info(id,"name",name,charsmax(name))
   check_param(id,name,charsmax(name),1)
}

public client_infochanged(id)
{
   new newname[32],oldname[32]
   get_user_info(id,"name",newname,charsmax(newname))
   get_user_name(id,oldname,charsmax(oldname))
   if(!equal(oldname,newname))   check_param(id,newname,charsmax(newname),1)
}

public client_command(id)
{
    new cmd[9],Said[130],said[2]
    read_argv(0,cmd,charsmax(cmd))

	read_argv(1,said,1)
	if(said[0]=='@')	return PLUGIN_CONTINUE
	
    read_args(Said,charsmax(Said))
    remove_quotes(Said)

	if(equali(cmd,"say_team",8)||equali(cmd,"say",3))	copy(cmdx,charsmax(cmdx),cmd)

	if(equali(cmd,"say_team",8))	check_param(id,Said,charsmax(Said),2)
	else if(equali(cmd,"say",3))	check_param(id,Said,charsmax(Said),2)

	return PLUGIN_CONTINUE
}

/*
public chat_handle(id)
{
   new args[195]
   read_args(args,charsmax(args))
   remove_quotes(args)

   check_param(id,args,charsmax(args),2)
}
public chat_handle2(id)
{
   new args[195]
   read_args(args,charsmax(args))
   remove_quotes(args)

   check_param(id,args,charsmax(args),3)
}
*/

check_param(const id,fc[],fc_max,number)
{
   switch(number)
   {
      case 1:
      {
         if(containi(fc,"%")!=-1)
         {
            replace_all(fc,fc_max,"%","%")
            set_user_info(id,"name",fc)
         }
         if(containi(fc,"#")!=-1)
         {
            replace_all(fc,fc_max,"#","﹟")
            set_user_info(id,"name",fc)
         }


#if EXTRA==1
         if(containi(fc,"+")!=-1)
         {
            replace_all(fc,fc_max,"+"," + ")
            set_user_info(id,"name",fc)
         }
         if(containi(fc,"&")!=-1)
         {
            replace_all(fc,fc_max,"&","&")
            set_user_info(id,"name",fc)
         }
         if(containi(fc,"\"")!=-1)
         {
            replace_all(fc,fc_max,"\"","^")
            set_user_info(id,"name",fc)
         }

         new lenx=strlen(fc)-1
         if(lenx>0)
         {
            if(equali(fc[lenx],"\""))
            {
               fc[lenx]='^'//s3x
               set_user_info(id,"name",fc)
            }
         }
#endif

      }
      case 2:
      {
         if(containi(fc,"%")!=-1)
         {
            replace_all(fc,fc_max,"%","%")
            engclient_cmd(id,cmdx,fc)
         }
         if(containi(fc,"#")!=-1)
         {
            replace_all(fc,fc_max,"#","﹟")
            engclient_cmd(id,cmdx,fc)
         }


#if EXTRA==1
         if(containi(fc,"+")!=-1)
         {
            replace_all(fc,fc_max,"+"," + ")
            engclient_cmd(id,cmdx,fc)
         }
         if(containi(fc,"&")!=-1)
         {
            replace_all(fc,fc_max,"&","&")
            engclient_cmd(id,cmdx,fc)
         }
         if(containi(fc,"\"")!=-1)
         {
            replace_all(fc,fc_max,"\"","^")
            engclient_cmd(id,cmdx,fc)
         }
#endif
      }
   }
}


GetEngineVersion()
{
   new VersionPonter,VersionString[24],Pos
   new const VersionSizeNum=4
   
   VersionPonter=get_cvar_pointer("sv_version")
   get_pcvar_string(VersionPonter,VersionString,charsmax(VersionString))
   Pos=strlen(VersionString)-VersionSizeNum
   format(VersionString,VersionSizeNum,VersionString[Pos])
   
   return str_to_num(VersionString)
}
[/code]
Nume: -
Versiune: 17.02.2019 / 12:50
Link oficial:

Code: Select all

https://www.extreamcs.com/forum/post2754470.html#p2754470
Instalare:
1. Fisierul nume_plugin.sma il puneti in addons/amxmodx/scripting
2. Fisierul nume_plugin.amxx il puneti in addons/amxmodx/plugins
3. Intrati in fisierul addons/amxmodx/configs/plugins.ini si adaugati la urma:

Code: Select all

nume_plugin.amxx
4. Să fie primul în lista de plugine
Last edited by levin on 18 Feb 2019, 02:06, edited 1 time in total.
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
RoyalServer
Lux0R^
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 1222
Joined: 13 Jul 2013, 16:31
Detinator Steam: Da
Reputatie: Scripter eXtreamCS
Moderator ajutator
Has thanked: 15 times
Been thanked: 12 times

17 Feb 2019, 19:01

1. cred ca in loc sa loghezi in fisierul ala... mai bine pui set_fail_state si atunci cand lumea o sa vada eroarea o sa stearga pluginul, asa cum faci tu acum... doar logheaza in fisierul ala chiar daca e sau nu nevoie

2. chat_handle si chat_handle2 pot sa fie doar unul singur, si comanda o iei cu : read_argv

https://www.amxmodx.org/api/amxmodx/read_argv\

Argument index starting from 1, 0 returns the command itself

reduci codul o gramada



3. nu am inteles ce ai facut cu #define BLOCK ala, tot ce scrii acolo e doar la compile time ! nu la run time, asa ca mereu valoarea va fi 0

4. new args[195],name[32],lenx
nu declara global daca nu ai nevoie, tii memoria ocupata degeaba



in rest codul e bun, incearca totusi sa scrii mai frumos :sob: (foloseste cat mai putin #if #else, etc)
Pauza pana in iulie... licenta ^^

Fara pm-uri pentru pluginuri de zm/furien + tot ce tine de vip.

Codul Scripterului: scripting/codul-scripterului-t362300.html#p2754224
User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3844
Joined: 24 Aug 2011, 12:24
Detinator Steam: Da
CS Status:
Detinator server CS: ☯∴
SteamID: riseofevo
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 594 times
Contact:

17 Feb 2019, 19:28

2. bună idee,eu gândeam altă variantă prin client_command
1&3. am vrut să fac ceva mai complex&rapid prin define,inițial fiind set_fail_state,doar că nu mi-a ieșit un „mini-sistem” prin #define cum voiam..nu am stat să testez, făcând ieri un plugin simplu fără „block”&log, doar prin set_fail_state,doar că mi s-a părut că e prea des întâlnit, așa că am vrut ceva mai „nevăzut”...acu sunt n cazuri cu set_fail_state,fiind și el în /logs/..mă gândeam să trimit și prin server_print,în cazul în care persoana respectivă nu are treburi prin logs=),da na, nu prea are rost să fac un mare cod pentru ceva ce se poate face în câteva linii,oricum acum fiecare funcție cu beneficiul său, în mare parte chiar eu folosesc set_fail_state,pentru că arată clar statut de plugin inactiv(amxx plugins,logs),da mna,eu unu verific logs
4. voiam să fie ceva mic, să nu pun în fiecare caz new..mna acu, iar pentru name am vrut inițial să-l declar doar pe el global de forma name[33][32],doar că trebuia să parcurcg mai multe acțiuni(mai multe linii),precum modificarea în infochanged=),am întâlnit unele cauzi,în care publicele precum client_spawn/client_death/client_kill/client_command etc.. nu funcționează pe anumite servere,nu mai știu ce amxx/engine aveau sau dacă aveau ceva lipsă/inactiv,da acum am lăsat pe client_infochanged ca să nu mai fac alte linii

oricum nu cred că va fi folosit,am mers mai mult le opțiunea asta când am postat,pentru că ce urmează e strălucit(amxx)
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
User avatar
SkillartzHD
Membru, skill +3
Membru, skill +3
Posts: 1096
Joined: 08 Feb 2013, 19:43
Detinator Steam: Da
CS Status: HLDS Vulnerability
Detinator server CS: GoldSrc
SteamID: SkillartzHD_hlds
Reputatie: Fost Moderator ajutator
Location: Bucuresti
Has thanked: 14 times
Been thanked: 28 times
Contact:

21 Feb 2019, 02:48

| Afiseaza codul
[quote]#pragma tabsize 0

#include <amxmodx>
#include <fakemeta>

#pragma ctrlchar '\'

/*
1 - cauta pentru mai multe simboluri, precum: ^ / & / + / " (la sf. de nick)
orice valoare care nu este egala cu 1 reprezinta ocolirea simbolurilor precizate anterior
*/
#define EXTRA 1

#define MAX_USER_MSG_DATA 36 //default is 192 in hlds/rehlds

new cmdx[21]

public plugin_precache()
{
	if(GetEngineVersion()>=6999){
		set_fail_state("Ai o versiune avansata a engine-ului, iar acest plugin nu mai este necesar")
	}
	/*
	else if(AMXX_VERSION_NUM>str_to_num("182"))
	{
		set_fail_state("Ai o versiune avansata a amxmodx-ului, iar acest plugin nu mai este necesar")
	}
	*/
	/*
	else if(cvar_exists("reu_version")||GetEngineVersion()<=3000){
		set_fail_state("Acest plugin nu este necesar pe rehlds")
	}
	*/
	register_message(get_user_msgid("SayText"),"ProtectAllPluginsChatReplaced")
}

/*
public client_connect(id)
{
	new name[32]
	get_user_info(id,"name",name,charsmax(name))
	check_param(id,name,charsmax(name),1)
}
*/
public client_infochanged(id)
{
	new newname[32-1],oldname[32-1]
	get_user_info(id,"name",newname,charsmax(newname))
	get_user_name(id,oldname,charsmax(oldname))
	if(!equal(oldname,newname)){
		check_param(id,newname,charsmax(newname),1)
	}
}

public ProtectAllPluginsChatReplaced(){
	new string[128]
	read_argv(1,string,charsmax(string))
	if(strlen(string)>=180){
		return 1; // fix possible crash in replace with unicode char for all plugins tags/replace chat
	}
	return 0
}
public client_command(id)
{
	new cmd[9],Said[130]/*,said[2]*/
	read_argv(0,cmd,charsmax(cmd))
	
	/*read_argv(1,said,1)
	if(said[0]=='@')   return PLUGIN_CONTINUE
	*/
	
	read_args(Said,charsmax(Said))
	remove_quotes(Said)
	
	if(strlen(Said)>=MAX_USER_MSG_DATA) {
		
		/* Prevenire crash pentru pluginurile proaste scrise care n-au o limita in replace
		Host_Error("%s: Refusing to send user message %s of %i bytes to client, user message 
		size limit is %i bytes\n", __func__, pUserMsg->szName, gMsgBuffer.cursize, MAX_USER_MSG_DATA);
		*/
		return 1
	}
	copy(cmdx,charsmax(cmdx),cmd)
	check_param(id,Said,charsmax(Said),2)
	
	/*if(equali(cmd,"say_team",8)||equali(cmd,"say",3))   copy(cmdx,charsmax(cmdx),cmd)
	if(equali(cmd,"say_team",8))   check_param(id,Said,charsmax(Said),2)
	else if(equali(cmd,"say",3))   check_param(id,Said,charsmax(Said),2)
		*/
	
	return PLUGIN_CONTINUE
}

stock check_param(const id,fc[],fc_max,number)
{
	switch(number)
	{
		case 1:
		{
			if(strlen(fc)>=0x17){
				copy(fc,31,fc[0x17]) // debug print
			}
			
			if(containi(fc,"%")!=-1)
			{
				if(GetEngineVersion()>=5788){
					replace_all(fc,fc_max,"%","ï¼…") //xEFBC2026
				}
				else if(GetEngineVersion()<=5787){
					replace_all(fc,fc_max,"%","%.")
				}
				set_user_info(id,"name",fc)
			}
			if(containi(fc,"#")!=-1)
			{
				if(GetEngineVersion()>=5788){
					replace_all(fc,fc_max,"#","#") //xEFBC192
				}
				else if(GetEngineVersion()<=5787){
					replace_all(fc,fc_max,"#","#.")
				}
				set_user_info(id,"name",fc)
			}
			
			
			#if EXTRA==1
			if(containi(fc,"+")!=-1)
			{
				replace_all(fc,fc_max,"+",".+.")
				set_user_info(id,"name",fc)
			}
			if(containi(fc,"&")!=-1)
			{
				if(GetEngineVersion()>=5788){
					replace_all(fc,fc_max,"&","&") //xEFBC2020
				}
				else if(GetEngineVersion()<=5787){
					replace_all(fc,fc_max,"&","^x20.")
				}
				set_user_info(id,"name",fc)
			}
			if(containi(fc,"\"")!=-1)
			{
				replace_all(fc,fc_max,"\"","^")
				set_user_info(id,"name",fc)
			}
			
			new lenx=strlen(fc)-1
			if(lenx>0)
			{
				if(equali(fc[lenx],"\""))
				{
					fc[lenx]='^'//s3x
					set_user_info(id,"name",fc)
				}
			}
			#endif
			
		}
		case 2:
		{
			if(containi(fc,"%")!=-1)
			{
				replace_all(fc,fc_max,"%","ï¼…") //xEFBC2026
				engclient_cmd(id,cmdx,fc)
			}
			if(containi(fc,"#")!=-1)
			{
				replace_all(fc,fc_max,"#","#") //xEFBC192
				engclient_cmd(id,cmdx,fc)
			}
			
			
			#if EXTRA==1
			if(containi(fc,"+")!=-1)
			{
				replace_all(fc,fc_max,"+",".+.")
				engclient_cmd(id,cmdx,fc)
			}
			if(containi(fc,"&")!=-1)
			{
				replace_all(fc,fc_max,"&","&") //xEFBC2020
				engclient_cmd(id,cmdx,fc)
			}
			if(containi(fc,"\"")!=-1)
			{
				replace_all(fc,fc_max,"\"","^")
				engclient_cmd(id,cmdx,fc)
			}
			#endif
		}
	}
}


stock GetEngineVersion()
{
	new VersionPonter,VersionString[24],Pos
	new const VersionSizeNum=4
	
	VersionPonter=get_cvar_pointer("sv_version")
	get_pcvar_string(VersionPonter,VersionString,charsmax(VersionString))
	Pos=strlen(VersionString)-VersionSizeNum
	format(VersionString,VersionSizeNum,VersionString[Pos])
	
	return str_to_num(VersionString)
}[/quote]
mult mai ok e asa
ce modificari am facut :

+ n-ai nevoie de client_connect(pfnclientconnect) pentru a trimite functia catre jucator deoarece jucatorul trimite automat cand se conecteaza un pachet de setari(name\andrei\topcolor\30\etc...) catre server si automat jucatorul intra in client_infochanged(pfnclientuserinfochanged)
+ am adaugat acel caracter alternativ (aceptat de client) pentru a fi vazut de compilator-ul vechi/amxx studio/forum/balbal) am incercat sa adaug cu \x daca tot exista pragma dar nu a functionat treaba asta in replace , idk
+ daca eu puneam numele mai mare de 17 caractere cu un anume caracter din acele exista o eroare in check_param = rezolvat
+ daca puneam numele "+a" atunci check_param imi tot inlocuia acel "+" cu un space in plus pana la limita hlds/rehlds = rezolvat
+ am scos acel say_team/say si acea restrictie pentru @ pentru ca erau inutile
+
+ am facut in asa fel ca orice comanda din client_command(daca tot e apelata) sa execute orice comanda care este trimisa si detectata cu acele caractere sa fie inlocuite(chit ca e amx_say amx_slap amx_gag amx_chat/say/say_team/say_team @) adica un support pentru toate comenzile inregistrate/neinregistrate
+ pluginuri proaste codate (tag name in chat/chat replace) cu mesaje colorate si misto pot provoca un crash din cauza acestui replace (clientul nu printeaza mai mult de 192 caractere , insa daca acel caracter este unu utf8 atunci limita o sa fie de 36 de caractere printate , insa serverul citeste mai mult de 192 si 36 si atunci cand nu exista o limita intr-un plugin care modifica chatul cu mesaje colorate/tag-uri in nume in chat blalba atunci serverul provoaca un host_error (say #(de 192 ori) , rahatul asta il gasim si pe rehlds )
+amxx 1.8.3 nu remediaza complet %#& / si nu pentru toate comenzile /say_team @ amx_say etc..
+daca vrei sa fie ceva mai rapid ca restul pluginurilor poti folosi plugin_precache in loc de plugin_init (indiferent ca e ultimul in lista plugins.ini)
Project by HLDS-Project 2017
Static Emulator : Native | Random Emulator : SettiEmu/AVSMP1/AVSMP0/SteamEmu/oldRevEmu/RevEmu is done
KickASS-HLDS v2 (hlds)
KickASS-HLDS v1 (fakedetector)
HL-ClientSteam exploit (pure hlds)
PLCore exploit (dproto&hlds)
FakeConnect 2.0(reunion&rehlds)
KickASS-HLDS v3 in amxx(hlds&rehlds)
...... time passes and evidence are many
Special thanks to Spanwer and Magister
Skype : spyware.spyware1
Steam : Click

SV_CheckForDuplicateNames V2 download
User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3844
Joined: 24 Aug 2011, 12:24
Detinator Steam: Da
CS Status:
Detinator server CS: ☯∴
SteamID: riseofevo
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 594 times
Contact:

21 Feb 2019, 16:40

adică client infochanged nu e apleat doar dacă e conectat pe server????
*și eu voiam să pun spațiu sau alte chestii pentru a lăsa simbolul original(pentru că nu toți folosesc un client de joc care suportă utf8), doar că e degeaba să pui .+. sau .%. sau # cu spațiu, ele fiind blocate oricum
*restricția pe @ am pus-o datorită faptului că există comenzile say@ & say_team@, și vor crea text dublu, vizibil și pe chat(eventual puteam adăuga suport și pentru ele, dar trebuie să fie și pluginele compatibile)
- register_message(get_user_msgid("SayText"),"ProtectAllPluginsChatReplaced") ceva de genu „avoid for duplicates text” ? de asta am uitat
aș fi folosit saytext în încercarea înlocuirii simbolurilor în general(din alte plugine), doar că trebuie să editez ceva mai mult, ce nu ține doar de acest cod+limitarea specificată de tine, fiind o idee bună
nu înțeleg de ce ai înlăturat say/say_team din client command
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
User avatar
SkillartzHD
Membru, skill +3
Membru, skill +3
Posts: 1096
Joined: 08 Feb 2013, 19:43
Detinator Steam: Da
CS Status: HLDS Vulnerability
Detinator server CS: GoldSrc
SteamID: SkillartzHD_hlds
Reputatie: Fost Moderator ajutator
Location: Bucuresti
Has thanked: 14 times
Been thanked: 28 times
Contact:

22 Feb 2019, 03:20

| Afiseaza codul
[quote]#pragma tabsize 0

#include <amxmodx>

#pragma ctrlchar '\'

/*
1 - cauta pentru mai multe simboluri, precum: ^ / & / + / " (la sf. de nick)
orice valoare care nu este egala cu 1 reprezinta ocolirea simbolurilor precizate anterior
*/
#define EXTRA 1

#define MAX_USER_MSG_DATA 36 //default is 192 in hlds/rehlds

new cmdx[21]

public plugin_precache(){
	register_message(get_user_msgid("SayText"),"ProtectAllPluginsChatReplaced")
}

public client_infochanged(id)
{
	new newname[100],oldname[100]
	get_user_info(id,"name",newname,charsmax(newname))
	get_user_name(id,oldname,charsmax(oldname))
	if(!equal(oldname,newname)){
		check_param(id,newname,charsmax(newname),1)
	}
}

public ProtectAllPluginsChatReplaced(){
	new string[128],id = get_msg_arg_int(1)
	read_argv(1,string,charsmax(string))
	
	check_param(id,string,charsmax(string),2)
	
	if(strlen(string)>=150){
		return 1; // fix possible crash in replace with unicode char for all plugins tags/replace chat
	}
	return 0
}
public client_command(id)
{
	new cmd[20],cmd1[20],cmd2[20],cmd3[20],cmd4[20],Said[128]
	read_argv(0,cmd,charsmax(cmd))
	read_argv(1,cmd1,charsmax(cmd1))
	read_argv(2,cmd2,charsmax(cmd2))
	read_argv(3,cmd3,charsmax(cmd3))
	read_argv(4,cmd4,charsmax(cmd4))
	
	read_args(Said,charsmax(Said))
	remove_quotes(Said)
	
	if(strlen(Said)>=MAX_USER_MSG_DATA) {
		return 1
	}
	copy(cmdx,charsmax(cmdx),cmd)
	check_param(id,Said,charsmax(Said),2)
	
	if(containi(cmd1,"%")!=-1 
	|| containi(cmd1,"#")!=-1
	|| containi(cmd2,"#")!=-1
	|| containi(cmd2,"%")!=-1
	|| containi(cmd3,"#")!=-1
	|| containi(cmd3,"%")!=-1
	|| containi(cmd4,"#")!=-1
	|| containi(cmd4,"%")!=-1){
		return 1
	}
	return PLUGIN_CONTINUE
}

stock check_param(const id,fc[],fc_max,number)
{
	switch(number)
	{
		case 1:
		{
			if(containi(fc,"%")!=-1)
			{
				if(GetEngineVersion()>=5788){
					replace_all(fc,fc_max,"%","ï¼…") //xEFBC2026
				}
				else if(GetEngineVersion()<=5787){
					replace_all(fc,fc_max,"%","%.")
				}
				set_user_info(id,"name",fc)
			}
			if(containi(fc,"#")!=-1)
			{
				if(GetEngineVersion()>=5788){
					replace_all(fc,fc_max,"#","#") //xEFBC192
				}
				else if(GetEngineVersion()<=5787){
					replace_all(fc,fc_max,"#","#.")
				}
				set_user_info(id,"name",fc)
			}
			
			
			#if EXTRA==1
			if(containi(fc,"+")!=-1)
			{
				replace_all(fc,fc_max,"+","+.")
				server_print("%d",fc_max)
				set_user_info(id,"name",fc)
			}
			if(containi(fc,"&")!=-1)
			{
				if(GetEngineVersion()>=5788){
					replace_all(fc,fc_max,"&","&") //xEFBC2020
				}
				else if(GetEngineVersion()<=5787){
					replace_all(fc,fc_max,"&","*")
				}
				set_user_info(id,"name",fc)
			}
			if(containi(fc,"\"")!=-1)
			{
				replace_all(fc,fc_max,"\"","^")
				set_user_info(id,"name",fc)
			}
			
			new lenx=strlen(fc)-1
			if(lenx>0)
			{
				if(equali(fc[lenx],"\""))
				{
					fc[lenx]='^'//s3x
					set_user_info(id,"name",fc)
				}
			}
			#endif
			
		}
		case 2:
		{
			if(containi(fc,"%")!=-1)
			{
				replace_all(fc,fc_max,"%","ï¼…") //xEFBC2026
				if(containi(cmdx,"amx_")!=-1){
					client_cmd(id,"%s %s",cmdx,fc)
				}
				else{
					engclient_cmd(id,cmdx,fc)
				}
			}
			if(containi(fc,"#")!=-1)
			{
				replace_all(fc,fc_max,"#","#") //xEFBC192
				if(containi(cmdx,"amx_")!=-1){
					client_cmd(id,"%s %s",cmdx,fc)
				}
				else{
					
					engclient_cmd(id,cmdx,fc)
				}
			}
			
			
			#if EXTRA==1
			if(containi(fc,"+")!=-1)
			{
				replace_all(fc,fc_max,"+"," + ")
				engclient_cmd(id,cmdx,fc)
			}
			if(containi(fc,"&")!=-1)
			{
				replace_all(fc,fc_max,"&","&") //xEFBC2020
				engclient_cmd(id,cmdx,fc)
			}
			if(containi(fc,"\"")!=-1)
			{
				replace_all(fc,fc_max,"\"","^")
				engclient_cmd(id,cmdx,fc)
			}
			#endif
		}
	}
}


stock GetEngineVersion()
{
	new VersionPonter,VersionString[24],Pos
	new const VersionSizeNum=4
	
	VersionPonter=get_cvar_pointer("sv_version")
	get_pcvar_string(VersionPonter,VersionString,charsmax(VersionString))
	Pos=strlen(VersionString)-VersionSizeNum
	format(VersionString,VersionSizeNum,VersionString[Pos])
	
	return str_to_num(VersionString)
}
[/quote]
*client infochanged e apelat si atunci cand jucatorul se conecteaza pe server (si cand isi schimba un anume string in setinfo pe server si cand se conecteaza jucatorul trimite pachetul cu informati catre server prin care se enumera si "name") , deci e ok si fara client_connect
*depinde de caracterul utf8 , cele care le-am adaugat sunt citite si de buildul 4554(fara support utf8 in name/consola)
doar ca pe buildul 4554(aici ma refer la server nu si la client)
daca serverul este un build 4554/5787 atunci nu permite nici clientul sa aibe acel % in nume (chit ca e build vechi clientul) , dar % il printeaza in chat problema e in name , atat in rest functioneaza ok , dar pe buildurile care suporta utf8 (server) atunci si jucatorul cu un build fara utf8 o sa poata avea acel % in nume (totul depinde de build-ul serverului de a printa acel % in nume , aici e vorba doar de set_user_info :) )
* cu say_team @ am rezolvat sa nu se mai printeze de 2 ori + am adaugat suport si pentru toate comenzile amx_ sa printeze acel % # utf8 fara a il dubla de 2 ori
* say/say_team le-am eliminat pentru ca erau inutile acolo , acum orice comanda inregistrata/neinregistrata de amxx suporta acel % # in printarea lor , adica amx_say amx_tsay amx_psay/say_team/say/amx_chat blalbalba..
++buildurile peste 6153 nu remediaza complet %/#

asta-i un fel de "support %/# for all plugins/commands" , amxx 1.9 nu face asta/nici buildul 7xxx/nici rehlds/nici safenamechat

totusi , un fix total ar fi prin folosirea orpheu cu un hook pe UTIL_ClientPrint(din cauza ca client_print(id,print_chat("%s")) pentru amxmodx si pentru hlds PF_WriteString_I(din cauza ca hostname %s0) , cand o sa am timp poate o sa incerc sa vad cum funtioneaza asta :gaben:
Project by HLDS-Project 2017
Static Emulator : Native | Random Emulator : SettiEmu/AVSMP1/AVSMP0/SteamEmu/oldRevEmu/RevEmu is done
KickASS-HLDS v2 (hlds)
KickASS-HLDS v1 (fakedetector)
HL-ClientSteam exploit (pure hlds)
PLCore exploit (dproto&hlds)
FakeConnect 2.0(reunion&rehlds)
KickASS-HLDS v3 in amxx(hlds&rehlds)
...... time passes and evidence are many
Special thanks to Spanwer and Magister
Skype : spyware.spyware1
Steam : Click

SV_CheckForDuplicateNames V2 download
User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3844
Joined: 24 Aug 2011, 12:24
Detinator Steam: Da
CS Status:
Detinator server CS: ☯∴
SteamID: riseofevo
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 594 times
Contact:

22 Feb 2019, 16:51

din câte am văzut se lucrează la un fix în amxx pentru 1.9, în rehlds parcă e deja, iar in build > 7xxx(server) am văzut că există
nu știu dacă va fi o diferență prea mare dacă-l fac în orpheu/okapi/re, cum am zis, voiam să folosec opheu pentru a bloca mesajele tip saytext(alea prost codate) pentru fixarea lor, dar oricum mă axez mai mult în plugine fără cele enumerate
în rest e ok,ms xd
da știi ce-am uitat? =))
Image
aici un alternativ nu prea știu, nu sunt sigur dacă va merge dacă folosec eu stock, sau cu ;x083 sau cum era formatul(de blocat pun direct caracterul de culoare și înlocuirea spațiu liber ceva)
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
User avatar
SkillartzHD
Membru, skill +3
Membru, skill +3
Posts: 1096
Joined: 08 Feb 2013, 19:43
Detinator Steam: Da
CS Status: HLDS Vulnerability
Detinator server CS: GoldSrc
SteamID: SkillartzHD_hlds
Reputatie: Fost Moderator ajutator
Location: Bucuresti
Has thanked: 14 times
Been thanked: 28 times
Contact:

22 Feb 2019, 18:36

orpheu version
| Afiseaza codul
[quote]#include <amxmodx>
#include <fakemeta>
#include <orpheu>

/*
1 - cauta pentru mai multe simboluri, precum: ^ / & / + / " (la sf. de nick)
orice valoare care nu este egala cu 1 reprezinta ocolirea simbolurilor precizate anterior
*/
#define EXTRA 1


#define MAX_USER_MSG_DATA 36 //default is 192 in hlds/rehlds

new cmdx[21]

new CheckOS = 0 // 1 - windows 2 - linux

public plugin_precache(){
	register_message(get_user_msgid("SayText"),"ProtectAllPluginsChatReplaced")
	
	register_forward(FM_ClientCommand,"ClientCommand")
	register_forward(FM_ClientUserInfoChanged,"ClientUserInfoChanged")
	
	RegisterOrpheuFunction()
}
public RegisterOrpheuFunction(){
	if(CheckOS==0){
		if(is_linux_server()){
			CheckOS = 2 // linux
		}
		else{
			CheckOS = 1 // windows
		}
	}
	
	if(CheckOS==1){
		if(!file_exists("addons/amxmodx/configs/orpheu/functions/UTIL_ClientPrint")){
			FileManager("UTIL_ClientPrint")
			set_task(5.0,"reloadtask")
		}
		else{
			OrpheuRegisterHook(OrpheuGetFunction("UTIL_ClientPrint"),"UTIL_ClientPrint_Hook")
		}
	}
	
	if(CheckOS==2){
		if(!file_exists("addons/amxmodx/configs/orpheu/functions/PF_WriteString_I")){
			FileManager("PF_WriteString_I")
			set_task(5.0,"reloadtask")
		}
		else{
			OrpheuRegisterHook(OrpheuGetFunction("PF_WriteString_I"),"PF_WriteString_I_Hook")
		}
	}
}
public UTIL_ClientPrint_Hook(string,string2,stringmsg[]){
	VoidFunction(stringmsg,1)
}

public PF_WriteString_I_Hook(stringmsg[]){
	VoidFunction(stringmsg,2)
}

stock VoidFunction(stringUS[],func){
	new id = engfunc(EngFunc_GetCurrentPlayer)+0x01
	if(is_user_connected(id)){
		new string[255]
		formatex(string,charsmax(string),"%s",stringUS)
		check_param(id,string,charsmax(string),2,0)
		if(strlen(string)>=150){
			return 0 // don't print client message
		}
		else{
			if(func==1){
				server_print("%s",string) // deoarece e o functie swds/engine
			}
			if(func==2){
				log_amx("%s",string) // deoarece e o functie amxmodx
			}
		}
	}
	return 1
}
public ClientUserInfoChanged(id)
{
	new newname[100],oldname[100]
	get_user_info(id,"name",newname,charsmax(newname))
	get_user_name(id,oldname,charsmax(oldname))
	if(!equal(oldname,newname)){
		check_param(id,newname,charsmax(newname),1,1)
	}
}
public ProtectAllPluginsChatReplaced(){
	new string[128],id = engfunc(EngFunc_GetCurrentPlayer)+0x01
	read_argv(1,string,charsmax(string))
	
	check_param(id,string,charsmax(string),2,1)
	
	if(strlen(string)>=150){
		return 1; // fix possible crash in replace with unicode char for all plugins tags/replace chat
	}
	return 0
}
public ClientCommand(id)
{
	new cmd[20],cmd1[20],Said[600]
	
	read_argv(0,cmd,charsmax(cmd))
	read_argv(1,cmd1,charsmax(cmd1))
	
	if(containi(cmd1,"@")!=-1){
		return PLUGIN_HANDLED
	}
	
	if(containi(cmd,"say_team")!=-1 || containi(cmd,"say")!=-1){
		read_args(Said,charsmax(Said))
		remove_quotes(Said)
		copy(cmdx,charsmax(cmdx),cmd)
		check_param(id,Said,charsmax(Said),2,1)
	}
	return 0
}

stock check_param(const id,fc[],fc_max,number,printable)
{
	switch(number){
		case 1:{
			if(containi(fc,"%")!=-1){
				if(GetEngineVersion()>=5788){
					replace_all(fc,fc_max,"%","ï¼…") //xEFBC2026
				}
				else if(GetEngineVersion()<=5787){
					replace_all(fc,fc_max,"%","%.")
				}
				set_user_info(id,"name",fc)
			}
			if(containi(fc,"#")!=-1){
				if(GetEngineVersion()>=5788){
					replace_all(fc,fc_max,"#","#") //xEFBC192
				}
				else if(GetEngineVersion()<=5787){
					replace_all(fc,fc_max,"#","#.")
				}
				set_user_info(id,"name",fc)
			}
			#if EXTRA==1
			if(containi(fc,"+")!=-1){
				replace_all(fc,fc_max,"+","+.")
				server_print("%d",fc_max)
				set_user_info(id,"name",fc)
			}
			if(containi(fc,"&")!=-1){
				if(GetEngineVersion()>=5788){
					replace_all(fc,fc_max,"&","&") //xEFBC2020
				}
				else if(GetEngineVersion()<=5787){
					replace_all(fc,fc_max,"&","*")
				}
				set_user_info(id,"name",fc)
			}
			if(containi(fc,"^x5c")!=-1){
				replace_all(fc,fc_max,"^x5c","^x5e")
				set_user_info(id,"name",fc)
			}
			
			new lenx=strlen(fc)-1
			if(lenx>0){
				if(equali(fc[lenx],"^x5c")){
					fc[lenx]='^x5e'//s3x
					set_user_info(id,"name",fc)
				}
			}
			#endif
		}
		case 2:{
			if(containi(fc,"%")!=-1){
				replace_all(fc,fc_max,"%","ï¼…") //xEFBC2026
				if(printable==1){
					engclient_cmd(id,cmdx,fc)
				}
			}
			if(containi(fc,"#")!=-1){
				replace_all(fc,fc_max,"#","#") //xEFBC192
				if(printable==1){
					engclient_cmd(id,cmdx,fc)
				}
			}
			if(containi(fc,"^x01")!=-1){
				replace_all(fc,fc_max,"^x01","1")
				if(printable==1){
					engclient_cmd(id,cmdx,fc)
				}
			}
			if(containi(fc,"^x02")!=-1){
				replace_all(fc,fc_max,"^x02","2")
				if(printable==1){
					engclient_cmd(id,cmdx,fc)
				}
			}
			if(containi(fc,"^x03")!=-1){
				replace_all(fc,fc_max,"^x03","3")
				if(printable==1){
					engclient_cmd(id,cmdx,fc)
				}
			}
			if(containi(fc,"^x04")!=-1){
				replace_all(fc,fc_max,"^x04","4")
				if(printable==1){
					engclient_cmd(id,cmdx,fc)
				}
			}
			#if EXTRA==1
			if(containi(fc,"+")!=-1){
				replace_all(fc,fc_max,"+"," + ")
				if(printable==1){
					engclient_cmd(id,cmdx,fc)
				}
			}
			if(containi(fc,"&")!=-1){
				replace_all(fc,fc_max,"&","&") //xEFBC2020
				if(printable==1){
					engclient_cmd(id,cmdx,fc)
				}
			}
			#endif
		}
	}
}
public reloadtask(){
	server_cmd("reload")
}
stock FileManager(file[]){
	if(equali(file,"PF_WriteString_I")){
		new PF_WriteString_I = fopen("addons/amxmodx/configs/orpheu/functions/PF_WriteString_I","wb")
		fprintf(PF_WriteString_I,"{")
		fprintf(PF_WriteString_I,"^"name^"       : ^"PF_WriteString_I^",")
		fprintf(PF_WriteString_I,"^"library^"    : ^"engine^",")
		fprintf(PF_WriteString_I,"^"arguments^"  :")
		fprintf(PF_WriteString_I,"[")
		fprintf(PF_WriteString_I,"{")
		fprintf(PF_WriteString_I,"^"type^" : ^"char *^"")
		fprintf(PF_WriteString_I,"}")
		fprintf(PF_WriteString_I,"],")
		fprintf(PF_WriteString_I,"^"identifiers^":")
		fprintf(PF_WriteString_I,"[")
		fprintf(PF_WriteString_I,"{")
		fprintf(PF_WriteString_I,"^"os^"    : ^"windows^",")
		fprintf(PF_WriteString_I,"^"value^" : [0x55,0x8B,0xEC,0x53,0x8B,0x5D,^"*^",0x56,0x8B,0x75,^"*^",0x83,^"*^",^"*^",0x57,0x74]") // posibile crash in windows idk
		fprintf(PF_WriteString_I,"},")
		fprintf(PF_WriteString_I,"{")
		fprintf(PF_WriteString_I,"^"os^"    : ^"linux^",")
		fprintf(PF_WriteString_I,"^"value^" : ^"PF_WriteString_I^"")
		fprintf(PF_WriteString_I,"}")
		fprintf(PF_WriteString_I,"]")
		fprintf(PF_WriteString_I,"}")
		fclose(PF_WriteString_I)
	}
	if(equali(file,"UTIL_ClientPrint")){
		new utilclientprint = fopen("addons/amxmodx/configs/orpheu/functions/UTIL_ClientPrint","wb")
		fprintf(utilclientprint,"{")
		fprintf(utilclientprint,"^"name^"       : ^"UTIL_ClientPrint^",")
		fprintf(utilclientprint,"^"library^"    : ^"amxmodx_mm^",")
		fprintf(utilclientprint,"^"arguments^"  :")
		fprintf(utilclientprint,"[")
		fprintf(utilclientprint,"{")
		fprintf(utilclientprint,"^"type^" : ^"edict_s *^"")
		fprintf(utilclientprint,"},")
		fprintf(utilclientprint,"{")
		fprintf(utilclientprint,"^"type^" : ^"int^"")
		fprintf(utilclientprint,"},")
		fprintf(utilclientprint,"{")
		fprintf(utilclientprint,"^"type^" : ^"char *^"")
		fprintf(utilclientprint,"}")
		fprintf(utilclientprint,"],")
		fprintf(utilclientprint,"^"identifiers^":")
		fprintf(utilclientprint,"[")
		fprintf(utilclientprint,"{")
		fprintf(utilclientprint,"^"os^"    : ^"windows^",")
		fprintf(utilclientprint,"^"value^" : [0x83,^"*^",^"*^",^"*^",^"*^",^"*^",0x00,0x74,^"*^",0x8B,0x44,^"*^",^"*^",0x53,0x56,0x8B,0x74,^"*^",^"*^",0x8A,0x9E,^"*^",^"*^",^"*^",^"*^",0xC6,0x86,^"*^",^"*^",^"*^",^"*^",0x00,0x85,0xC0,0x74,^"*^",0x50,0xA1,^"*^",^"*^",^"*^",^"*^",0x6A,0x00,0x50,0x6A,0x01,0xEB]")
		fprintf(utilclientprint,"},")
		fprintf(utilclientprint,"{")
		fprintf(utilclientprint,"^"os^"    : ^"linux^",")
		fprintf(utilclientprint,"^"value^" : ^"PF_WriteString_I^"")
		fprintf(utilclientprint,"}")
		fprintf(utilclientprint,"]")
		fprintf(utilclientprint,"}")
		fclose(utilclientprint)
	}
}
stock GetEngineVersion()
{
	new VersionPonter,VersionString[24],Pos
	new const VersionSizeNum=4
	
	VersionPonter=get_cvar_pointer("sv_version")
	get_pcvar_string(VersionPonter,VersionString,charsmax(VersionString))
	Pos=strlen(VersionString)-VersionSizeNum
	format(VersionString,VersionSizeNum,VersionString[Pos])
	
	return str_to_num(VersionString)
}[/quote]
0x01,0x02,0x03,0x04 n-am testat pentru a vedea daca afecteaza cu ceva acel replace
PF_WriteString_I : am testat pe linux , it's ok (windows = am gasit semnatura dar provoca un crash idk)
UTIL_ClientPrint : pe linux nu functioneaza , nu il gaseste in libraria amxmodx , merge pe windows
si cu functile astea 2 ai scapat de toate stringurile din hlds/amxx (am scos / deoarece era folosit pentru hlds pentru anumite chestii)
Project by HLDS-Project 2017
Static Emulator : Native | Random Emulator : SettiEmu/AVSMP1/AVSMP0/SteamEmu/oldRevEmu/RevEmu is done
KickASS-HLDS v2 (hlds)
KickASS-HLDS v1 (fakedetector)
HL-ClientSteam exploit (pure hlds)
PLCore exploit (dproto&hlds)
FakeConnect 2.0(reunion&rehlds)
KickASS-HLDS v3 in amxx(hlds&rehlds)
...... time passes and evidence are many
Special thanks to Spanwer and Magister
Skype : spyware.spyware1
Steam : Click

SV_CheckForDuplicateNames V2 download
User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3844
Joined: 24 Aug 2011, 12:24
Detinator Steam: Da
CS Status:
Detinator server CS: ☯∴
SteamID: riseofevo
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 594 times
Contact:

22 Feb 2019, 18:42

formatex(string,charsmax(string),"%s",stringUS)
>
formatex(string,charsmax(string),stringUS)
&
server_print("%s",string)
>
server_print(string)

crashu pe windows e posibil să provină de la librăria orpheu..trebuie o versiune mai mică, sau poate din lipsa unor .dll(nu cred că are legătură cu .net framework sau mvc++), și eu luam crash pe windows de la oprheu, și am încercat cu o versiune mai veche
apelarea forward în precache nu cauzează loss? nu știu dacă în cfg e mai ok, da în init e sigur
în
if(containi(cmd,"say_team")!=-1 || containi(cmd,"say")!=-1){
merge un trim&strlen :v_tone2:
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
User avatar
SkillartzHD
Membru, skill +3
Membru, skill +3
Posts: 1096
Joined: 08 Feb 2013, 19:43
Detinator Steam: Da
CS Status: HLDS Vulnerability
Detinator server CS: GoldSrc
SteamID: SkillartzHD_hlds
Reputatie: Fost Moderator ajutator
Location: Bucuresti
Has thanked: 14 times
Been thanked: 28 times
Contact:

22 Feb 2019, 22:00

apelarea forward în precache nu cauzează loss? nu știu dacă în cfg e mai ok, da în init e sigur
nu afecteaza
server_print("%s",string) eu asa stiu ca e ok
server_print(string) nu mai stiu pe unde am vazut ca prvoaca erori pentru anumite versiuni amxx?idk sau server_cmd
#include <amxmodx>
public plugin_init() {
register_clcmd("test","asda")
}
public asda(id){
#define test "%c%c%s"
client_print(id,print_chat,"%s",test)
}
de asemenea versiunea oprheu remediaza si asta
Project by HLDS-Project 2017
Static Emulator : Native | Random Emulator : SettiEmu/AVSMP1/AVSMP0/SteamEmu/oldRevEmu/RevEmu is done
KickASS-HLDS v2 (hlds)
KickASS-HLDS v1 (fakedetector)
HL-ClientSteam exploit (pure hlds)
PLCore exploit (dproto&hlds)
FakeConnect 2.0(reunion&rehlds)
KickASS-HLDS v3 in amxx(hlds&rehlds)
...... time passes and evidence are many
Special thanks to Spanwer and Magister
Skype : spyware.spyware1
Steam : Click

SV_CheckForDuplicateNames V2 download
Lux0R^
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 1222
Joined: 13 Jul 2013, 16:31
Detinator Steam: Da
Reputatie: Scripter eXtreamCS
Moderator ajutator
Has thanked: 15 times
Been thanked: 12 times

22 Feb 2019, 23:38

SkillartzHD wrote:
apelarea forward în precache nu cauzează loss? nu știu dacă în cfg e mai ok, da în init e sigur
nu afecteaza
server_print("%s",string) eu asa stiu ca e ok
server_print(string) nu mai stiu pe unde am vazut ca prvoaca erori pentru anumite versiuni amxx?idk sau server_cmd
la baza e C, nu afecteaza cu nimic, doar scrii mai mult fara motiv
Pauza pana in iulie... licenta ^^

Fara pm-uri pentru pluginuri de zm/furien + tot ce tine de vip.

Codul Scripterului: scripting/codul-scripterului-t362300.html#p2754224
Post Reply

Return to “Pluginuri eXtream”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 17 guests