Bu eklentiyi kullanmak için oyun modunuzun colandreas plugini kullanması gerekir.
Scripti test edecek zaman bulamadım ama teorik olarak çalışır vaziyette.
Duvardayim(forplayer,playerid)
{
if(GetPlayerInterior(forplayer) != 0) return 1;
new Float:x, Float:y, Float:z, Float:endx, Float:endy,Float:endz;
new Float:fPX, Float:fPY, Float:fPZ, Float:fVX, Float:fVY, Float:fVZ;
const Float:fScale = 2.0;
GetPlayerCameraPos(playerid, fPX, fPY, fPZ);
GetPlayerCameraFrontVector(forplayer, fVX, fVY, fVZ);
x = fPX + floatmul(fVX, fScale);
y = fPY + floatmul(fVY, fScale);
z = fPZ + floatmul(fVZ, fScale);
GetPlayerPos(playerid,endx,endy,endz);
if(CA_RayCastLine(x, y, z, endx, endy, endz, fPX, fPX, fPX)) return 0; //Eğer attığımız ışın bir engele çarptıysa yani ateş eden oyuncunun önünde duvar varsa
return 1;
}
public OnPlayerDamage(&playerid, &Float:amount, &issuerid, &weapon, &bodypart) //OnPlayerTakeDamage'de olur
{
if((weapon > 21 && weapon != 35 && weapon != 42 && weapon < 47) && issuerid != INVALID_PLAYER_ID) //ateşli silahlar
{
if(!Duvardayim(issuerid,playerid)) return 0;
}
return 1;
}
Alternatif (Colandreas Olmadan):
Kamera(playerid)
{
new Float:fPX, Float:fPY, Float:fPZ;
GetPlayerCameraPos(playerid, fPX, fPY, fPZ);
if(IsPlayerInRangeOfPoint(playerid,5.0, fPX, fPY, fPZ)) return 1;
return 0;
}
public OnPlayerDamage(&playerid, &Float:amount, &issuerid, &weapon, &bodypart) //OnPlayerTakeDamage'de olur
{
if(issuerid != INVALID_PLAYER_ID)
{
if(!Kamera(issuerid)) return 0;
}
return 1;
}
İşe yaramayana kadar alternatifi kullanmanızı öneririm.
Paylaşım için çok sağol :helal: , duvardan vuran kişiler sinirbozucu oluyor. :helal:
Paylaşım için teşekkürler
Paylaşım için teşekkürler, Code yapıyor bu sporu Survival Dayz modun çok iyi eline sağlık
ColAndreas gerçekten yararlı bir eklenti, kullanmasını bilen anti hile konusunda bir çok şey yapabilir.
Paylaşım için teşekkürler, ancak bu biraz uzun bir yol ve colandreas biraz ağır bir eklenti olduğu için her sunucu için kullanışlı olduğunu sanmıyorum. Bunu kontrol edebilmek için mermi bitiş koordinatları arasındaki mesafeyi hesaplamak yeterli olacaktır:
stock wKontrol(playerid, hedef, Float:tolerans = 0.5)
{
new Float:basX, Float:basY, Float:basZ, Float:bitX, Float:bitY, Float:bitZ;
GetPlayerLastShotVectors(playerid, basX, basY, basZ, bitX, bitY, bitZ);
if(IsPlayerRangeOfPoint(hedef, tolerans, bitX, bitY, bitZ)) return 0;
return 1;
}
public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart)
{
if(wKontrol(playerid, damagedid)) return Kick(playerid);
return 1;
}
Eline sağlık, paylaşım için teşekkürler.
ColAndreas'a gerek yok, başka forumda açık açık paylaşmıştım, tekrardan burayada atayım, yaptığın sistem de WallShot işler sadece bir
mermi, vector copy yapmak yeterli bunu aşmak için. OnPlayerTakeDamage, Weaponconfig var ise OnPlayerDamage ve weaponidleri weapon yapabilirsniz. new Float:xcamera, Float:ycamera, Float:zcamera;
GetPlayerCameraPos(issuerid, xcamera, ycamera, zcamera);
if(weaponid >= 22 && weaponid <= 38 && !IsPlayerInRangeOfPoint(issuerid, 3.0, xcamera, ycamera, zcamera))
{
return 0; // WallShot
}
Alıntı yapılan: SpawN - 15 Mart 2021, 23:22:16ColAndreas'a gerek yok, başka forumda açık açık paylaşmıştım, tekrardan burayada atayım, yaptığın sistem de WallShot işler sadece bir
mermi, vector copy yapmak yeterli bunu aşmak için. OnPlayerTakeDamage, Weaponconfig var ise OnPlayerDamage ve weaponidleri weapon yapabilirsniz. new Float:xcamera, Float:ycamera, Float:zcamera;
GetPlayerCameraPos(issuerid, xcamera, ycamera, zcamera);
if(weaponid >= 22 && weaponid <= 38 && !IsPlayerInRangeOfPoint(issuerid, 3.0, xcamera, ycamera, zcamera))
{
return 0; // WallShot
}
Tamda paylaşacaktım teşekkür ederim.
Ama bir gün bu hilenin farklı bir alternatifi çıkarsa colandreas'dan başka çaremiz olmayabilir.
Alıntı yapılan: Radless - 13 Mart 2021, 15:21:30ColAndreas gerçekten yararlı bir eklenti, kullanmasını bilen anti hile konusunda bir çok şey yapabilir.
Airbreak gibi hilelerinde önüne geçilebilir.
Bu eklentiyle çok güzel işler çıkartılabilir tek eksi yanı ağır bir eklenti olması.
Alıntı yapılan: _Code - 15 Mart 2021, 23:58:10Alıntı yapılan: SpawN - 15 Mart 2021, 23:22:16ColAndreas'a gerek yok, başka forumda açık açık paylaşmıştım, tekrardan burayada atayım, yaptığın sistem de WallShot işler sadece bir
mermi, vector copy yapmak yeterli bunu aşmak için. OnPlayerTakeDamage, Weaponconfig var ise OnPlayerDamage ve weaponidleri weapon yapabilirsniz. new Float:xcamera, Float:ycamera, Float:zcamera;
GetPlayerCameraPos(issuerid, xcamera, ycamera, zcamera);
if(weaponid >= 22 && weaponid <= 38 && !IsPlayerInRangeOfPoint(issuerid, 3.0, xcamera, ycamera, zcamera))
{
return 0; // WallShot
}
Tamda paylaşacaktım teşekkür ederim.
Ama bir gün bu hilenin farklı bir alternatifi çıkarsa colandreas'dan başka çaremiz olmayabilir.
Ben teşekkür ederim, zaten SA-MP packetlerden oluşan bir bağlantı aracı, Rak-Net de siz ne yapsanız 3.parti yazılım developerları tam tersini yapabilir, en iyisi herşeyi kendinize bırakmak sır olarak kalırsa bulamazlar ama bakıyor bir 3.parti yazılım developeri cameraposa bakmış bide vec3copy atalım cameraposunda gözükelim der :)
@_Code merhabalar, alternatif fonksiyon çalışmayacaktır, ilk nedeni her iki durumda da 1 değerini döndürmesi, ikinci nedeni ise oyuncu kimliğine ait kamera pozisyon koordinat noktaları alındı ve daha sonra ise aynı oyuncu için alınan kamera koordinat noktasının 5.0 değeri için kapsama alanı içerisinde olup olmadığı kontrol edildi, bu durumda oyuncu kendisi ile çelişmiş olacak ve her zaman için kendi kamera noktasına yakın duracaktır. Bu durumda fonksiyon yine düzgün çalıimayacak. Aslında yukarıda yazmış olduğum kod bloğunu inceleyebilirsin, ne demek istediğim belki daha net anlaşılabilir. Tekrardan paylaşım için teşekkürler, iyi forumlar.
Yararlı.
Alıntı yapılan: ThePosition - 16 Mart 2021, 12:44:32@_Code merhabalar, alternatif fonksiyon çalışmayacaktır, ilk nedeni her iki durumda da 1 değerini döndürmesi, ikinci nedeni ise oyuncu kimliğine ait kamera pozisyon koordinat noktaları alındı ve daha sonra ise aynı oyuncu için alınan kamera koordinat noktasının 5.0 değeri için kapsama alanı içerisinde olup olmadığı kontrol edildi, bu durumda oyuncu kendisi ile çelişmiş olacak ve her zaman için kendi kamera noktasına yakın duracaktır. Bu durumda fonksiyon yine düzgün çalıimayacak. Aslında yukarıda yazmış olduğum kod bloğunu inceleyebilirsin, ne demek istediğim belki daha net anlaşılabilir. Tekrardan paylaşım için teşekkürler, iyi forumlar.
Evet fark ettim hatayı hocam bu detayı yakaladığın için teşekkürler. :helal:
Duvardan sıkma diye bir şey mi var SA:MP'ta
Alıntı yapılan: Harun - 18 Mart 2021, 08:24:00Duvardan sıkma diye bir şey mi var SA:MP'ta
https://www.youtube.com/watch?v=QSMufKHhTe8
Videonun sonuna özellikle bak.
Her ikisini de denedim, yorumlardaki kodları da denedim. İşlevsiz.