Pawn.RakNet

Započeo m1lfman, Oktobar 21, 2017, 16:38:17 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Pawn.RakNet 1.0.2

Objasnjenje:
- Ovaj plugin vam dozvoljava da radite sa RakNet-om u Pawn-u, i olaksa vam dosta da kreirate dosta efikasan anti-cheat.

Ovaj plugin preporucljivo je koristiti iskljucivo na 0.3.7 verziji ali moguce je i na starijim.

Glavne karakteristike:

  • Presretanje i procesuiranje dolaznih/odlaznih RPC-ova, dolaznih/odlaznih paketa.
  • Slanje RPC i paketa do igraca.

Instalacija:

  • Ubacite pawnraknet.dll/pawnraknet.so i pawnraknet.cfg u plugins folder
  • Ubacite Pawn.RakNet.inc u pawno/include folder (Windows)
  • Dodajte u server.cfg kod ostalih plugin-ova sledece: pawnraknet.dll (Windows) ili pawnraknet.so (Linux)
  • U vasoj skripti dodajte #include <Pawn.RakNet>

Podesavanje (pawnraknet.cfg):
Vrednosti u zagradama su podrazumevane vrednosti

  • InterceptIncomingRPC (true)
  • InterceptIncomingPacket (true)
  • InterceptOutcomingRPC (true)
  • InterceptOutcomingPacket (true)
  • UseCaching (false)
Download:
https://github.com/urShadow/Pawn.RakNet/releases

Wiki:
https://github.com/urShadow/Pawn.RakNet/wiki

Source:
https://github.com/urShadow/Pawn.RakNet

Credits:
YourShadow
ostalim SA:MP forum korisnicima na primerima

Primeri:
Anti-InvalidSeat (Anti-Crasher)
[pawn]const PASSENGER_SYNC = 211;

IPacket:PASSENGER_SYNC(playerid, BitStream:bs){
   if GetPlayerVehicleSeat(playerid) == 0 *then{
      new string[100],name[MAX_PLAYER_NAME];
      GetPlayerName(playerid, name, sizeof(name));
      format(string,sizeof(string),"[Anti-CrasherHack]: %q (ID:%d) auto-kicked [Reason: InvalidSeat]",name,playerid);
      SendClientMessageToAll(-1,string);
      string[0] = EOS;
      Kick(playerid);
      return false;
   }
   return true;
}[/pawn]

Anti-SpeedCar

[pawn]const VEHICLE_SYNC = 200;

IPacket:VEHICLE_SYNC(playerid, BitStream:bs)
   {
      new inCarData[PR_InCarSync];
      BS_IgnoreBits(bs, 8);
      BS_ReadInCarSync(bs, inCarData);
      static Float:S = floatsqroot(floatpower(floatabs(inCarData[PR_velocity][0]), 2.0) + floatpower(floatabs(inCarData[PR_velocity][1]), 2.0) + floatpower(floatabs(inCarData[PR_velocity][2]), 2.0)) * 253.3;
      if(S > 350.0) {
         new string[144],name[MAX_PLAYER_NAME];
         GetPlayerName(playerid, name, sizeof(name));
         format(string,sizeof(string),"{FF0000}[Anti-SpeedCar]: {FFFF00}%s {999999}(ID:%d) {00FF00}auto-kicked {FF0000}[Reason: SpeedCar]", name,playerid);
         SendClientMessageToAll(-Unu, string);
         string[0] = EOS;
         Kick(playerid);
         return false;
      }
      return true;
   }[/pawn]

Anti-SpeedSkin

[pawn]const PLAYER_SYNC = 207;

IPacket:PLAYER_SYNC(playerid, BitStream:bs)
   {
      new onFootData[PR_OnFootSync];
      BS_IgnoreBits(bs, 8);
      BS_ReadInCarSync(bs, onFootData);
      static Float:S = floatsqroot(floatpower(floatabs(onFootData[PR_velocity][0]), 2.0) + floatpower(floatabs(onFootData[PR_velocity][1]), 2.0) + floatpower(floatabs(onFootData[PR_velocity][2]), 2.0)) * 253.3;
      if(S > 100.0) {
         new string[144],name[MAX_PLAYER_NAME];
         GetPlayerName(playerid, name, sizeof(name));
         format(string,sizeof(string),"{FF0000}[Anti-SpeedSkin]: {FFFF00}%s {999999}(ID:%d) {00FF00}auto-kicked {FF0000}[Reason: SpeedSkin]", name,playerid);
         SendClientMessageToAll(-Unu, string);
         string[0] = EOS;
         Kick(playerid);
         return false;
      }
      return true;
   }[/pawn]

Anti-Minigun (Anti -Invisible Weapon Minigun)
Detektuje samo kada igrac puca

[pawn]const BULLET_SYNC = 206;

IPacket:BULLET_SYNC(playerid, BitStream:bs)
{
   new bulletData[PR_BulletSync];
   BS_IgnoreBits(bs, 8);
   BS_ReadBulletSync(bs, bulletData);
   if(!IsPlayerAdmin(playerid) && bulletData[PR_weaponId] == WEAPON_MINIGUN){ //it is allowed to use minigun, only rcon admin!
      new string[144],name[MAX_PLAYER_NAME];
      GetPlayerName(playerid, name, sizeof(name));
      format(string,sizeof(string),"{FF0000}[Anti-Minigun]: {FFFF00}%s {999999}(ID:%d) {00FF00}auto-kicked {FF0000}[Reason: MinigunHack]", name,playerid);
      SendClientMessageToAll(-1, string);
      string[0] = EOS;
      Kick(playerid);
      return false;
   }
   return true;
}[/pawn]

Anti - CleoFly (Anti-Cheat)
Samo detektuje Cleo fly cheat

[pawn]const PLAYER_SYNC = 207;

IPacket:PLAYER_SYNC(playerid, BitStream:bs)
   {
      new onFootData[PR_OnFootSync];
      BS_IgnoreBits(bs, 8);
      BS_ReadOnFootSync(bs, onFootData);
      if(onFootData[PR_animationId] == 958 && onFootData[PR_weaponId] != WEAPON_PARACHUTE || onFootData[PR_animationId] == 959 && onFootData[PR_weaponId] != WEAPON_PARACHUTE){
         new string[144],name[MAX_PLAYER_NAME];
         GetPlayerName(playerid, name, sizeof(name));
         format(string,sizeof(string),"{FF0000}[Anti-CleoFly]: {FFFF00}%s {999999}(ID:%d) {00FF00}auto-kicked {FF0000}[Reason: CleoFly]", name,playerid);
         SendClientMessageToAll(-1, string);
         string[0] = EOS;
         Kick(playerid);
         return false;
      }
      return true;
   }[/pawn]



au pa ovo je dobro, svaka cast kreatoru




A dali znate da postoji pravilo koje kaze, citiram "Zabranjeno citiranje samog posta bez vlastitog komentara". Mnogi to rade, ali ocito moderatore boli racku. Zato molim moderatora da obriše 'komentare' iznad.
Poslednja Izmena: Oktobar 31, 2017, 21:40:15 POSLE PODNE od Bolex_
Former Developer | COD: Lords Of War - Modern Warfare 3 | Stunt Planet | Global Warfare |



Odlično,

btw. tek sad primjetio temu...

Ovo je pravo dobro za dobar antičit sustav  8)

Odlicno
#ROBY
#ONLINE !
----- NIKAD PORAZ SAMO LEKCIJA! -----