SA:MP Destek Blogu
Samp Destek Sitesi

Anti Para Hilesi

Bu mantıkla sadece anti para hilesi yapılmıyor, para hilesini önlemenin dışında kalan diğer hilelerin kullanımı da engellenebilir. Para hilesini önlemek için takip edeceğiniz adımları sıralamadan önce belirtelim, bu tür mantık içeren anti hile kullanacaksanız bazı alışkanlıklarınızı mazide bırakmanız gerekiyor.

GivePlayerMoney bildiğiniz üzere belirtilen ID numarasına sahip olan kullanıcının kendisine belirtilen miktarda oyun parası vermek için San Andreas Multiplayer tarafından tasarlanan bir fonksiyondur. Hile yazılımları, "GivePlayerMoney" içeren oyun modlarının kullanıldığı sunucularda kolaylıkla para hilesine başvurabilirler. Yukarıda da bahsettiğimiz gibi, para hilesinin yapılmasını engellemek istiyorsanız GivePlayerMoney kullanımını artık bırakmanız ve aşağıdaki sistemi kullanmanız gerekiyor.

SA:Mp Anti Para Hilesi Nasıl Yapılır?

İlk olarak sunucunuzu çalıştırmak için kullandığınız oyun modunun kaynak kodlarını Pawno gibi bir kod düzenleme yazılımı ile açın ve oyun modunun başına şu tanımı yapıştırın:

new sdspara[MAX_PLAYERS];
Oyun modunuzun sonuna ise aşağıda yer alan kodları yapıştırın:
stock paraver(playerid, miktar) // GivePlayerMoney yerine artık paraver(id, miktar) fonksiyonunu kullanacağız.
{
sdspara[playerid] += miktar;
GivePlayerMoney(playerid, miktar);
return 1;
}

stock paradegis(playerid, miktar) // SetPlayerMoney normalde yok ama bunun sayesinde artık var!
{
sdspara[playerid] = miktar;
ResetPlayerMoney(playerid), GivePlayerMoney(playerid, miktar);
return 1;
}
stock parasifirla(playerid) return ResetPlayerMoney(playerid), sdspara[playerid]=0; // GetPlayerMoney yerine artık paraogren(playerid) kullanacağız.
stock paraogren(playerid) return sdspara[playerid]; // GetPlayerMoney yerine artık paraogren(playerid)  kullanılacak.
Oyuncunun para hilesi kullandığında gerçekleşmesini istediğimiz işlemleri ise OnPlayerUpdate veya bir Timer kullanarak kontrol ettirebilirsiniz. OnPlayerUpdate'i lüzumsuzca kullanmanızı önermiyorum ama bu çok kapsamlı bir kod olmadığı için kullanmanızda bir problem olmayacaktır ama elbette ki nihai karar size aittir. Timer veya OnPlayerUpdate'in içine aşağıdaki kodu yapıştırırsanız para hilesi yapan kullanıcının para hilesi yaptığı tespit edildiğinde parası orijinal parasına eşitlenecektir.
 
if(sdspara[playerid] != GetPlayerMoney(playerid)) paradegis(playerid, sdspara[playerid]); // paradegis yerine isterseniz Ban(playerid); veya Kick(playerid); gibi fonksiyonlar kullanabilirsiniz.

Anti para hilesi
eğer kullanıcı sunucu taraflı para kullanırsa işlem yapar, kendi para biriminizi kullandığı sürece hiçbir engelle karşılaşmaz.

Modunuzda, filterscriptinizde dikkat etmeniz gerekenler şunlardır:

GivePlayerMoney, GetPlayerMoney ve ResetPlayerMoney artık yoklar, öldüler!

GivePlayerMoney, paraver; GetPlayerMoney, paraogren; ResetPlayerMoney, parasifirla oldu. Onun dışında artık paradegis adında bir fonksiyonun daha var.

Filterscriptlerde GetPlayerMoney, GivePlayerMoney, ResetPlayerMoney ve benzeri San Andreas Multiplayer taraflı parayla ilişkili fonksiyon kullanmamanız gerekmektedir. Filterscript içerisinde parayla ilişkili fonksiyon yer alıyorsa filterscripti modunuza gömmeyi deneyin. ara hilesini bu şekilde mantıkla engelleyecek kişiler şunları göz önünde bulundurmalıdır:
 
  • Oyuncu stunt bonus parası alamaz.
  • Oyuncu belirli noktalardaki içecekleri içtiğinde para kesilemez -kesildiğinde geri gelir.
  • Filterscriptlarda kullandığınız GivePlayerMoney fonksiyonu hile olarak algılanacaktır. Bu yüzden filterscriptları moda geçirmenizde fayda var.
Stunt bonus paralarını engellemek için OnGameModeInit callbackine EnableStuntBonusForAll(0); kodunu, Sprunk makineleri kaldırmak için ise aşağıdaki kodları OnPlayerConnect callbackine ekleyebilirsiniz.
 
RemoveBuildingForPlayer(playerid, 955, 1928.7344, -1772.4453, 12.9453, 0.25);
RemoveBuildingForPlayer(playerid, 955, 2325.9766, -1645.1328, 14.2109, 0.25);
RemoveBuildingForPlayer(playerid, 955, 1520.1484, 1055.2656, 10.0000, 0.25);
RemoveBuildingForPlayer(playerid, 955, 2085.7734, 2071.3594, 10.4531, 0.25);
Mesaj At
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol