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
https://github.com/katursis/Pawn.RakNet/releases - Pawn.RakNet eklentisi
https://github.com/katursis/Pawn.RakNet/wiki - Pawn.RakNet wiki
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!// 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.
// 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;
}
// 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:
Maverick (https://erenumutozdemir.com/)
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
Yorum ve bilgilendirme için teşekkürler
@ThePosition. Diğer kolaylıkları github wiki bağlantısından inceleyip öğrenmek geliştiriciye kalmış.
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.
Alıntı yapılan: Helen - 22 Ekim 2020, 15:37:52Konu 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.
Bilmiyordum Ama Epey Faydalı Bir Sistemmiş. :okumak: :helal:
Alıntı yapılan: s4ndra - 24 Ekim 2020, 00:15:07Bilmiyordum Ama Epey Faydalı Bir Sistemmiş. :okumak: :helal:
Sistem?
Nimet bu nimet :D
Anlatım için teşekkürler.
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:
Alıntı yapılan: Bilinmeyen Bey - 12 Mart 2021, 15:00:11Maş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
Emeğine sağlık kardeşim. :helal:
Teşekkürler.
Elline saglik
Teşekkürler.
eline sağlık
Emeğine sağlık.
Teşekkürler.
Teşekkürler emeğine sağlık.:helal:
Elinize sağlık, faydalı konu.:helal: