Guest Odesláno: 6. Červen, 2011 Share Odesláno: 6. Červen, 2011 Ahoj ... velmi se mi líbí jedna funkce.. když se někdo přihlásí do RCONu ať již hackem nebo uhádne heslo což je dost nepravděpodobné pokud nemáte nějaké extra jednoduché heslo jako např. "1234", tak si můžete udělat krásnou AntiRconOchranu pouze pro vaši IP Odzkoušeno a funguje to na 100 procent Upozornění: Pokud se Vám někdo hackne přes konzoli tak to nefunguje, sice nevím jak to dělají ale moc lidí neví jak to udělat Dost keců, jdeme na to Děláme si stock pro vaši IP adresu Takže, nejdříve si uděláme nějaký stock, já to mám např takhle: stock RconAdmins(playerid) { A teď doplníme funkce ... Takže si uděláte vlastní proměnnou Př.: new IP[16]; A teď si uděláme funkci která zjistí IP hráče .. na to je funkce GetPlayerIp Takže to teď bude vypadat nějak takto: GetPlayerIp(playerid,IP,sizeof(IP)); Takže, máme funkci pro zjištění hráčovy IP, a teď si dosadíme hlavní funkci a tím je vaše IP adresa kterou se připojujete na server if(!strcmp(IP, "Vaše IP adresa")) return true; Místo "Vaše IP adresa" si dejte vaší IP adresu Vaši IP adresu se kterou se připojujete na server zjistíte na webu http://www.mojeip.cz Co to return true ? Tomu se říká tzv "návratové hodnoty" .. A pak již jen ukončíme stock return false; } Public který zjištuje kdo je admin Takže, když máme stock hotový, zbývá nám už jen pravidelná kontrola... Takže si uděláme libovolný forward forward VasPublic(); Tak ... a teď tak část kde bude kontrolovat jestli je admin a nemá povolenou IP adresu ... Takže, otevřeme si váš public public VasPublic() { return true; } Tohle zatím nic nedělá, takže si doplníme funkce .. začneme cyklusem for(new i;i{ Takhle je klasický cyklus, ale rádím vám si udělat cyklus podle TOHOTO NÁVODU Teď si přidáme podmínku jestli je hráč připojený ... IsPlayerConnected if(IsPlayerConnected(i)) Tak, a předposlední funkce, tady zjistíme jestli NENÍ na seznamu povolených IP adres a je hráč admin ... Takže to bude vypadat takhle: if(!RconAdmins(i) && IsPlayerAdmin(i)) Tak, a teď už jen si doděláme funkci pokud tahle podmínka je pravda tak udělá to a to ... new string[80]; // uděláme si string format(string,80,"[ ANTI - RCON - HACK] Hráč %s se dostal do RCON systému !! Byl zabanován !",PlayerName(i)); // naformátujeme si zprávu SCMTA(COLOR_RED,string); // odešleme všem BanEx(i,"Hacknutí do RCONu"); // v administraci se vám objeví jako důvod: Hacknutí do RCONu Tak, tohle je všechno, na tohle jsem přišel když jsem neměl co dělat Je to jednoduché a i přesto efektivní A pak si najdeme ve vašem scriptu OnRconLoginAttemp, a do něj vložíme: VasPublic(); Vždy když se někdo přihlásí do RCON systému tak mu to vyvolá tento public Řešíme errory a warningy Undefined symbol "PlayerName": stock PlayerName(playerid) { new name[MAX_PLAYER_NAME]; if(IsPlayerConnected(playerid)) GetPlayerName(playerid, name, MAX_PLAYER_NAME); return name; } ======================================== Undefined symbol "COLOR_RED": #define COLOR_RED 0xE10000AA ======================================== Undefined symbol "SCMTA": #define SCMTA SendClientMessageToAll ======================================== Warning: Loose identitation Naserte si, odtabujte si to ======================================== Jednoduché, efektivní, funkční S pozdravem, Mort Link to comment Share on other sites More sharing options...
Dave 0 Odesláno: 6. Červen, 2011 Share Odesláno: 6. Červen, 2011 pěkný, ale pro většinu zbytečný .. 90% hráčů má dinamiku .. ale jinak tut vypadá pěkně Link to comment Share on other sites More sharing options...
Roox 1 Odesláno: 6. Červen, 2011 Share Odesláno: 6. Červen, 2011 if(!RconAdmins && IsPlayerAdmin(i)) Chybí ti tam parametr u RconAdmins.. Link to comment Share on other sites More sharing options...
Guest Frodo Odesláno: 6. Červen, 2011 Share Odesláno: 6. Červen, 2011 Není lepší to rovnou hodit do RconLoginAttempt? nebo jak se ten public nazývá. http://wiki.sa-mp.com/wiki/OnRconLoginAttempt Na wiki to dokonce máš public OnRconLoginAttempt(ip[], password[], success) { if(!success) //If the password was incorrect { printf("FAILED RCON LOGIN BY IP %s USING PASSWORD %s",ip, password); new pip[16]; for(new i=0; i { GetPlayerIp(i, pip, sizeof(pip)); if(!strcmp(ip, pip, true)) //If a player's IP is the IP that failed the login { SendClientMessage(i, 0xFFFFFFFF, "Wrong Password. Bye!"); //Send a message Ban(i); //They are now banned. } } } return 1; } Link to comment Share on other sites More sharing options...
Guest Odesláno: 6. Červen, 2011 Share Odesláno: 6. Červen, 2011 Roox":wdiosdll] if(!RconAdmins && IsPlayerAdmin(i)) Chybí ti tam parametr u RconAdmins.. Opraveno, dobrej postřeh Není lepší to rovnou hodit do RconLoginAttempt? nebo jak se ten public nazývá.http://wiki.sa-mp.com/wiki/OnRconLoginAttempt Je to taky možný, ale já jsem pro tuto variantu, s OnRconLoginAttemp moc zkušenosti nemám ale díky za tip ... kdyžtak doplním až se naučím Link to comment Share on other sites More sharing options...
Guest Frodo Odesláno: 6. Červen, 2011 Share Odesláno: 6. Červen, 2011 Na tom není co se učit, Callback se vyvolá při /rcon login a script bude stejnej jak máš ty. Jen nemusíš dělat zbytečně timer Link to comment Share on other sites More sharing options...
Guest Odesláno: 6. Červen, 2011 Share Odesláno: 6. Červen, 2011 Na tom není co se učit, Callback se vyvolá při /rcon login a script bude stejnej jak máš ty. Jen nemusíš dělat zbytečně timer Aha Asi máš pravdu no ... 1:1 Link to comment Share on other sites More sharing options...
Guest Odesláno: 6. Červen, 2011 Share Odesláno: 6. Červen, 2011 fuj skurvene dementnný spôsob ! btw OnRconLoginAttempt má parameter "ip" takže netreba getplayerip... + žiadny timer, public sa vyvolá iba keď sa hráč logne za rcon... TUT do KOŠA... -999/10 Link to comment Share on other sites More sharing options...
Guest Odesláno: 7. Červen, 2011 Share Odesláno: 7. Červen, 2011 A teď mě napadlo, stačí smazat timer a publuc: VášPublic(); dát do OnRconLoginAttemp Link to comment Share on other sites More sharing options...
Guest Frodo Odesláno: 7. Červen, 2011 Share Odesláno: 7. Červen, 2011 A teď mě napadlo, stačí smazat timer a publuc:VášPublic(); dát do OnRconLoginAttemp Dyť jsem to psal na začátku :? Není lepší to rovnou hodit do RconLoginAttempt? nebo jak se ten public nazývá. Na wiki je dokonce v příloze návod podobnej tomu tvýmu návodu. Link to comment Share on other sites More sharing options...
paulie2907 12 Odesláno: 7. Červen, 2011 Share Odesláno: 7. Červen, 2011 Žádnej dnešní hacker ( if(IQ[hacker] > 10) ) by se nesral s hackováním hráčům samp kteří mu nic neudělaly. Ale je to poměřně velice jednoduché ale určitě se to některým bude hodit, a chvlálím! 7/10 - 1 jednoduché (MINI TUT) - 2 nepotřebuji to Link to comment Share on other sites More sharing options...
Guest Odesláno: 7. Červen, 2011 Share Odesláno: 7. Červen, 2011 UPDATE:Upravené, jednodušší a méně-zátěžové Link to comment Share on other sites More sharing options...
Petr 44 Odesláno: 7. Červen, 2011 Share Odesláno: 7. Červen, 2011 Pořád tam máš tu podmínku IsPlayerConnected 2x (public + PlayerName) + zoptimalizuj timer » tut Link to comment Share on other sites More sharing options...
paulie2907 12 Odesláno: 7. Červen, 2011 Share Odesláno: 7. Červen, 2011 ":24wuec8j]Pořád tam máš tu podmínku IsPlayerConnected 2x (public + PlayerName) + zoptimalizuj timer » tut Dobře ty Link to comment Share on other sites More sharing options...
Guest Frodo Odesláno: 7. Červen, 2011 Share Odesláno: 7. Červen, 2011 Proč tam cpeš ten timer? Link to comment Share on other sites More sharing options...
Guest Odesláno: 7. Červen, 2011 Share Odesláno: 7. Červen, 2011 ":2c1tmwqs]Pořád tam máš tu podmínku IsPlayerConnected 2x (public + PlayerName) + zoptimalizuj timer » tut Timer už není, teďka jsem to upravil, není timer ale napsal jsem že se má dát ten public co mají dát do OnRconLoginAttemp IsPlayerConnected upravím Link to comment Share on other sites More sharing options...
Guest Odesláno: 22. Červen, 2011 Share Odesláno: 22. Červen, 2011 public OnRconLoginAttempt(ip[], password[], success){ if(success){ new playerid = GetPlayerIDFromIP(ip); if(!strcmp(tvujnick2,PlayerName(playerid),true) || !strcmp(tvujnick1,PlayerName(playerid),true) ){ SendClientMessage(playerid,COLOR_SYSTEM,"Vítej Hlavní Administrátore v Rconu!"); }else{ Kick(playerid); } } return 1; } to bolo hardcore ! a nezaťažuje to tak ako tvoj "script"... Link to comment Share on other sites More sharing options...
Vivera 0 Odesláno: 22. Červenec, 2011 Share Odesláno: 22. Červenec, 2011 To je good ale co kdybych chtěl aby mi bral 2 ip jako rcon?Např Doma v Měste 1 a Doma u tatky v města 2 ? Link to comment Share on other sites More sharing options...
Guest Odesláno: 22. Červenec, 2011 Share Odesláno: 22. Červenec, 2011 jo jen do toho stocku přidej IP stock RconAdmins(playerid) { new ip[16]; GetPlayerIp(playerid,ip,sizeof(ip)); if(strcmp(ip,"IP_DOMA_VE_MESTE",true)==0) return true; if(strcmp(ip,"IP_U_TATKY",true)==0) return true; return false; } Link to comment Share on other sites More sharing options...
Vivera 0 Odesláno: 22. Červenec, 2011 Share Odesláno: 22. Červenec, 2011 Díky Link to comment Share on other sites More sharing options...
Guest SpiRinG Odesláno: 29. Červenec, 2011 Share Odesláno: 29. Červenec, 2011 da sa napr na 2IP ? -- pát 29. črc 2011 19:12:33 -- ok amm to DIKI Link to comment Share on other sites More sharing options...
Guest SpiRinG Odesláno: 29. Červenec, 2011 Share Odesláno: 29. Červenec, 2011 da sa napr na 2IP ? -- pát 29. črc 2011 19:12:33 -- ok amm to DIKI Link to comment Share on other sites More sharing options...
Brunes 1 Odesláno: 29. Červenec, 2011 Share Odesláno: 29. Červenec, 2011 da sa napr na 2IP ? -- pát 29. črc 2011 19:12:33 -- ok amm to DIKI asi takto if(!strcmp(IP, "Vaše IP adresa") || !strcmp(IP,"...")) Link to comment Share on other sites More sharing options...
Brunes 1 Odesláno: 29. Červenec, 2011 Share Odesláno: 29. Červenec, 2011 da sa napr na 2IP ? -- pát 29. črc 2011 19:12:33 -- ok amm to DIKI asi takto if(!strcmp(IP, "Vaše IP adresa") || !strcmp(IP,"...")) Link to comment Share on other sites More sharing options...
Guest SpiRinG Odesláno: 3. Srpen, 2011 Share Odesláno: 3. Srpen, 2011 pls niekto mi to psravim ako FS prosim prosim Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now