GTAMulti.com - Türkiye'nin Türkçe GTA Sitesi

[Anlatım] Gelişmiş Anti Hile Eklentisi & Dahası - Trafik Polisi Pawn.RakNet

Başlatan Maverick, 20 Ekim 2020, 01:50:58

« önceki - sonraki »

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Maverick

Pawn.RakNet - Trafik Polisi
Pawn.RakNet nedir?

RakNet tarfiğini kontrol etmenizi sağlayan SA:MP sunucu eklentisidir.

RakNet tarfiğine eriştikte ne oldu?

Sunucuya oyuncu tarafından gönderilen trafiği, sunucunun oyuncuya gönderdiği trafiği veya SA:MP Query Mechanism tarafından sunucuya gönderilen trafiği engeleyebiliyor, düzenleyebiliyor & tekrardan gönderebiliyoruz.
EE, yani?
YANİ,

  • Sunucunuza rcon trafiği göndererek sabote edemiyorlar.
  • Üçüncü parti hile programlarıyla klavyeden saçma sapan komutlar yazıp sunucunuzdaki araçları silemiyorlar.
  • Karakterine ait olmayan bir silah yaratıp mermi veremiyorlar.
  • Rapid fire, aim kullanamıyorlar.
  • Araç üzerinde surf yapamıyorlar, uçamıyorlar.
  • Araçlara binip farklı konumlara taşıyarak veya binerek oyununuzu çökertemiyorlar.
  • Oyuncu ateş ettiğinde karşı tarafa giden mermileri kontrol edebiliyoruz.
  • SA:MP geri aramalarını ve fonksiyonlarını kontrol edebiliyoruz, bu sayede çoğu hileyi hayal gücümüzü kullanarak engelleyebiliyoruz.


Pawn.RakNet nasıl kurulur?

https://github.com/BrunoBM16/samp-packet-list/wiki - Yönetebileceğiniz trafik listesi

Yukarıdaki bağlantıdan eklentiyi indiriyoruz ve arşivi ayıklıyoruz sonrasında;

  • pawnraknet.dll/pawnraknet.so ve pawnraknet.cfg dosyasını plugins dosyasının içine taşıyoruz.
  • Pawn.RakNet.inc dosyasını kullandığınız Pawn Compiler'in include klasörünün içine taşıyoruz.
  • server.cfg dosyasının plugins kısmına pawnraknet.dll/pawnraknet.so ekliyoruz & kaydedip kapatıyoruz.

Trafik Polisinin görevleri!

PAWN Kodu: Seç
// Anti Vehicle Spawn - /dcar düşmanı
#include <Pawn.RakNet>

new VehicleDestroyed = 136;

IRPC:VehicleDestroyed(playerid, BitStream:bs)
{
    new vehicleid;

    BS_ReadUint16(bs, vehicleid);

    if (GetVehicleModel(vehicleid) < 400)
    {
        return 0;
    }

    return OnVehicleRequestDeath(vehicleid, playerid);
}

forward OnVehicleRequestDeath(vehicleid, killerid);
public OnVehicleRequestDeath(vehicleid, killerid)
{
    new Float:health;

    GetVehicleHealth(vehicleid, health);

    if (health >= 250.0)
    {
        fuckYou(killerid);
        return 0;
    }

    return 1;
}

stock fuckYou(playerid)
{
    playerBan(playerid); // burayı ban veya kick fonksiyonuznuzla değiştirebilirsiniz.
    Kick(playerid);

    return 1;
}

// NOT: Suya düşen araçlar suda kalır, spawnlanmaz. Bu sorunu çözmek için mapandreas veya colandreas eklentilerini kullanabilirsiniz.
PAWN Kodu: Seç
// Anti Crasher
#include <Pawn.RakNet>

#if !defined IsNaN
    #define IsNaN(%0) ((%0) != (%0))
#endif

const UNOCCUPIED_SYNC = 209;

IPacket:UNOCCUPIED_SYNC(playerid, BitStream:bs)
{
    new unoccupiedData[PR_UnoccupiedSync];
 
    BS_IgnoreBits(bs, 8);
    BS_ReadUnoccupiedSync(bs, unoccupiedData);
 
    if (IsNaN(unoccupiedData[PR_roll]) || IsNaN(unoccupiedData[PR_roll][1]) ||
        IsNaN(unoccupiedData[PR_roll][2]) ||
        IsNaN(unoccupiedData[PR_direction]) || IsNaN(unoccupiedData[PR_direction][1]) ||
        IsNaN(unoccupiedData[PR_direction][2]) ||
        IsNaN(unoccupiedData[PR_position]) || IsNaN(unoccupiedData[PR_position][1]) ||
        IsNaN(unoccupiedData[PR_position][2]) ||
        IsNaN(unoccupiedData[PR_angularVelocity]) || IsNaN(unoccupiedData[PR_angularVelocity][1]) ||
        IsNaN(unoccupiedData[PR_angularVelocity][2]) ||
        IsNaN(unoccupiedData[PR_velocity]) || IsNaN(unoccupiedData[PR_velocity][1]) ||
        IsNaN(unoccupiedData[PR_velocity][2]) ||
        (floatabs(unoccupiedData[PR_roll]) > 1.0) || (floatabs(unoccupiedData[PR_roll][1]) > 1.0) ||
        (floatabs(unoccupiedData[PR_roll][2]) > 1.0) ||
        (floatabs(unoccupiedData[PR_direction]) > 1.0) || (floatabs(unoccupiedData[PR_direction][1]) > 1.0) ||
        (floatabs(unoccupiedData[PR_direction][2]) > 1.0) ||
        (floatabs(unoccupiedData[PR_position]) > 20000.0) || (floatabs(unoccupiedData[PR_position][1]) > 20000.0) ||
        (floatabs(unoccupiedData[PR_position][2]) > 20000.0) ||
        (floatabs(unoccupiedData[PR_angularVelocity]) > 1.0) || (floatabs(unoccupiedData[PR_angularVelocity][1]) > 1.0) ||
        (floatabs(unoccupiedData[PR_angularVelocity][2]) > 1.0) ||
        (floatabs(unoccupiedData[PR_velocity]) > 100.0) ||
(floatabs(unoccupiedData[PR_velocity][1]) > 100.0) ||
        (floatabs(unoccupiedData[PR_velocity][2]) > 100.0)
    ) {
        fuckYou(playerid);
        return 0;
    }

    return 1;
}

stock fuckYou(playerid)
{
    playerBan(playerid); // burayı ban veya kick fonksiyonuznuzla değiştirebilirsiniz.
    Kick(playerid);

    return 1;
}
PAWN Kodu: Seç
// Anti Vehicle Crasher
#include <Pawn.RakNet>

const UNOCCUPIED_SYNC = 209;

IPacket:UNOCCUPIED_SYNC(playerid, BitStream:bs)
{
    new unoccupiedData[PR_UnoccupiedSync];
 
    BS_IgnoreBits(bs, 8);
    BS_ReadUnoccupiedSync(bs, unoccupiedData);
 
    if ((unoccupiedData[PR_roll] == unoccupiedData[PR_direction]) &&
(unoccupiedData[PR_roll][1] == unoccupiedData[PR_direction][1]) &&
        (unoccupiedData[PR_roll][2] == unoccupiedData[PR_direction][2])
    ) {
        fuckYou(playerid);
        return 0;
    }

    return 1;
}

stock fuckYou(playerid)
{
    playerBan(playerid); // burayı ban veya kick fonksiyonuznuzla değiştirebilirsiniz.
    Kick(playerid);

    return 1;
}
Detayları öğrenmek istiyorsanız yukardaki github bağlantılarına bakabilirsiniz. :helal:
Son düzenlenme: 12 Mart 2021, 15:23:18 Maverick Sebep: HTML Beauty

squarepants

Güzel konu, ek olarak Senkronizasyon Yapılarını da paylaş ki sunucu istemcisine gönderilen trafik akışı daha kolay kontrol edilebilsin:
https://github.com/katursis/Pawn.RakNet/wiki/Synchronization-structures



Maverick

Yorum ve bilgilendirme için teşekkürler @ThePosition. Diğer kolaylıkları github wiki bağlantısından inceleyip öğrenmek geliştiriciye kalmış.


Heleina

Konu düzeni ve konu içeriği gerçekten yağ gibi akıyor. Eline sağlık paylaşım için teşekkürler.

Tanrı düşmanlarıma acısın ve merhamet göstersin; çünkü ben göstermeyeceğim.

Maverick

Alıntı yapılan: Helen - 22 Ekim 2020, 15:37:52
Konu düzeni ve konu içeriği gerçekten yağ gibi akıyor. Eline sağlık paylaşım için teşekkürler.

Yorum için teşekkürler.


s4ndra



_Code





SA:MP Turkiye CnR IP: server.sampturkiyecnr.com:7777



Bilinmeyen Bey

Maşallah, gün gelmiş ve artık kendi Anti-Hile Eklenti'mizi kendimiz yapıyoruz. Helal Olsun. Vallahi. Ve Sadece Bir Hosting için değil. Direk bu kod yahu! Her Website, Sunucu için bir anti-hile. Yine helal olsun :helal:


Eamon

Alıntı yapılan: Bilinmeyen Bey - 12 Mart 2021, 15:00:11
Maşallah, gün gelmiş ve artık kendi Anti-Hile Eklenti'mizi kendimiz yapıyoruz. Helal Olsun. Vallahi. Ve Sadece Bir Hosting için değil. Direk bu kod yahu! Her Website, Sunucu için bir anti-hile. Yine helal olsun :helal:

O kadar abartmana gerek yok bu yeni bir şey değil xd

Bugünün güzel zamanları, yarının üzücü düşünceleridir.

Lloyd




☆☬κɪɴɢ☬☆

pixlr bg result (2)" border="0
SA-MP Başlangiç: 2020 Türk Ibiza

SA-MP daki nicklerim: bet, BeT.BeY, Sirhan,

Samp Hayatim Bitti

Ben onun gülüşüne öldüm o benim ölüşüme güldü...🥀

Giden gitmiştir gittiği gün bitmiştir ben gideni değil giden beni kaybetmiştir...