Counter Strike 1.6 HLDS fake , scris in C++ in anii 2010-2011.
#include <iostream> // pentru COUT<<
#include <stdlib.h> // pentru SYSTEM
#include <stdio.h> // pentru SPRINTF
#include <string.h> // pentru BZERO
#include <fstream> // pentru OFSTREAM OUTFILE
#include <vector>
using namespace std;
//c
char cyan[]="\033[1;36m";
char mov[]="\033[1;34m";
char red[]="\033[1;31m";
char yellow[]="\033[1;33m";
char no_color[]="\033[0m";
char quote[]="\"";
//c F
char start_red[128];
char versiune[] = "linux_2.2";
char game_description[] = "Counter-Strike";
char ip_de_folosit[16],harta[16],hostname[64],dns[56],owner[32];
char _nr_red[16],_sloturi[16],_port[16];
int nr_red,red_sup,port,jucatori,sloturi;
char redirect_suplimentar;
char bara[]="========================================================================================";
//===============================================================================================================================
// variabile - ipuri.txt
const char *_ip;
string ip_line;
//===============================================================================================================================
int main()
{
ifstream hostnames("hostnames.txt");
ifstream maps("maps.txt");
cout<<endl<<mov<<bara<<no_color<<endl;
cout<<" - redirect "<<yellow<<versiune<<no_color<<" ["<<red<<"CsServers.ro"<<no_color<<"] [build: "<<red<<"09.01.2013"<<no_color<<"]"<<endl;
cout<<" - schimbarea/editarea: "<<endl;
cout<<" \t nume redirect "<<endl;
cout<<" \t nume harta "<<endl;
cout<<" \t ip/ip-uri "<<endl;
cout<<endl<<" se face cu un editor de fisiere TXT gen "<<cyan<<"NANO"<<no_color<<" asupra fisierelor incarcate mai jos! "<<endl;
//===========================================================================================================================
// deschidem fisierele de configurare
cout<<endl<<no_color<<cyan<<" - hostnames.txt";
cout<<endl<<no_color<<cyan<<" - maps.txt";
cout<<endl<<no_color<<cyan<<" - ipuri.txt"<<endl;
cout<<endl<<red<<" !!!ATENTIE!!! "<<no_color<<"Incepand cu aceasta versiune ... "<<endl;
cout<<" Redirectele nu mai incarca nimic gen (harta,hostname) de pe site-ul "<<red<<"CsServers.ro"<<no_color<<" !!!"<<endl;
cout<<" Toate astea le schimbati voi cand editati fisierele de mai sus!"<<endl;
//===========================================================================================================================
cout<<mov<<bara<<no_color<<endl;
cout<<endl<<yellow<<" CONFIGURARE REDIRECTE:"<<no_color<<endl<<endl;
cout<<no_color<<" portul pe care pornesti redirectele ?(Ex: 29000): \t"<<cyan;
cin.getline(_port,sizeof(_port));
int port=atoi(_port);
if(port<5000) port=5000;
if(port>49000) port=49000;
cout<<no_color<<" DNS server unde ajung dropurile ?(Ex: cs.server.ro): \t"<<cyan;
cin.getline(dns,sizeof(dns));
cout<<no_color<<" numele de la evidenta ?(Ex: jiji): \t\t\t"<<cyan;
cin.getline(owner,sizeof(owner));
cout<<no_color<<" cate redirecte deschizi ?(Ex: 15): \t\t\t"<<cyan;
cin.getline(_nr_red,sizeof(_nr_red));
int nr_red=atoi(_nr_red);
if(nr_red>61) nr_red=61;
if(nr_red<1) nr_red=1;
cout<<no_color<<" cate sloturi vrei sa aibe redirectele ?(12-32): \t"<<cyan;
cin.getline(_sloturi,sizeof(_sloturi));
int sloturi=atoi(_sloturi);
if(sloturi<12) sloturi = 12;
if(sloturi>32) sloturi = 32;
cout<<no_color<<" cati jucatori fake bagam pe redirectele cu ["<<sloturi<<"] sloturi ?(Ex: "<<int(sloturi-2)<<"): "<<cyan;
cin>>jucatori;
cin.ignore();
if(jucatori<1) jucatori = 1;
if(jucatori>sloturi) jucatori = (sloturi-1);
cout<<no_color<<" deschidem redirect suplimentar , port "<<red<<"27015"<<no_color<<" ? (y/n): \t"<<cyan;
cin>>redirect_suplimentar;
cin.ignore();
if(redirect_suplimentar=='y')
{
red_sup = ++nr_red;
}
cout<<endl<<endl<<no_color<<red<<" Pornesc ["<<no_color<<nr_red<<red<<"] redirecte:"<<no_color<<endl;
for(int i=1;i<=nr_red;i++)
{
// hostname
if(hostnames.is_open())
{
hostnames.getline(hostname,1024);
}
// hostname F
// harta
if(maps.is_open()) maps >> harta;
// harta F
//ipuri
ifstream ipuri("ipuri.txt");
//ipuri F
if(ipuri.is_open())
{
while(ipuri.good())
{
getline(ipuri,ip_line);
if(ip_line!="")
{
_ip=&ip_line[0];
strncpy(ip_de_folosit,_ip,sizeof(ip_de_folosit));
if(red_sup!=0 && i==red_sup)
{
port = 27015;
}
sprintf(start_red,"screen -m -d ./redirect \"%s\" %s %d %s %d %d \"%s\" \"%s:27015\"",hostname,ip_de_folosit,port,harta,jucatori,sloturi,owner,dns);
//printf(start_red);
system(start_red);
cout<<endl<<"\t... task: ["<<yellow<<"am pornit redirectul "<<i<<no_color<<"]"<<endl;
cout<<"\t\t nume server: "<<hostname<<endl;
cout<<"\t\t adresa: "<<ip_de_folosit<<":"<<port<<endl;
cout<<"\t\t harta: "<<harta<<endl;
sleep(0.5);
}
}
}
port++;
sleep(1);
}
hostnames.close();
maps.close();
cout<<endl<<" Evidenta redirectelor apare in 5 minute pe: "<<cyan<<"www.CsServers.ro/evidenta/"<<dns<<no_color<<endl;
cout<<endl<<red<<" ./stop \t\t"<<no_color<<"- oprire redirecte";
cout<<endl<<red<<" ps x | grep redirect \t"<<no_color<<"- lista redirecte active";
cout<<endl<<mov<<bara<<no_color<<endl;
return 1;
}