(https://i.hizliresim.com/adWLv5.png)
Bu sistem başlıktan da anlayacağınız gibi hile ile can ve zırh alan oyuncuları tespit eder ve sunucudan atar.
Not: WeaponConfig.inc kullananlar varsa bu sistemi kullanmasınlar.
Güncelleme:
[09.04.2017] - Bazı bölgelerde can veya zırh alınca hile olarak algılayıp sunucudan atma sorunu düzeltildi.
Kurulum:
Modunuzun başına #include <AntiHealth-Armour> ekleyin. Sonra bu kodları modunuzun sonlarına doğru bir yerlere ekleyin:
public nSecurity_ba(playerid, hackTespitid)
{
new nexor_String[70 + MAX_PLAYER_NAME];
switch(hackTespitid)
{
case TESPIT_CAN:
{
format(nexor_String, sizeof(nexor_String), "%s(%d), can hilesi kullandığı için sunucudan atıldı.", getName_nexor(playerid), playerid);
}
case TESPIT_ZIRH:
{
format(nexor_String, sizeof(nexor_String), "%s(%d), zırh hilesi kullandığı için sunucudan atıldı.", getName_nexor(playerid), playerid);
}
}
SendClientMessageToAll(-1, nexor_String);
oKick_nexor(playerid);
return 1;
}İndir: AntiHealth-Armour.inc (https://goo.gl/85tbLu)
Eline sağlık.
Eline sağlık Burak :helal:
Eline saglık
Eline sağlık.
Weapon-Config hakkında şunları söylemeliyim , Weapon-Config can hilesini engellemekle beraber yeni vuruş değerleri ile oyunun hissetmenizi sağlar. Ek olaraktan vuruş değerlerini SetWeaponDamage ile ayarlayabilirsin.
HeadShot durumunda vurduğun değer tabiiki de artar.
Vuruş kombolarında da sistem algoritması vurulan değeri yükseltip , azaltır.
C-Bug ile rapid fire gibi ateş edersen sistem sana dur der ver vurduğun değeri azaltır.
public OnGameModeInit()
{
SetWeaponDamage(
WEAPON_DEAGLE,
DAMAGE_TYPE_STATIC,
32.5,
32.5, 32.5
);
return 1;
}Weapon-Config sadece can hilesini engellemeyle kalmaz god modeyide engeller.
Özelliklerinden bir kaçını saymak istersek
Yeni silah tipleri- WEAPON_PISTOLWHIP - Silah ile birisini yumrukladığınız da sistem bu silah tipini çağırır.
- WEAPON_VEHICLE_M4 - Hava araçlarında olan silahları kulandığınız da bu silah tipi çağrılır. (Rustler, ..)
- WEAPON_VEHICLE_MINIGUN - Araçlardaki minigun silahını kullandığınızda çağrılır.(Hunter)
- WEAPON_HELIBLADES - Helikopter pervanelerini kullandığınızda çağrılır.
- WEAPON_CARPARK - Birisini araçla ezdiğiniz de çağrılır.
Hasar alındığında/verildiğinde sesler ve bilgilendirme textdrawları- Hasar aldığınızda veya hasar verdiğinizde oyun sesleri oynatılmaktadır. Bunları
SetDamageSounds(HalınanSoundID,HverilenSoundID); şeklinde değiştirebilirsiniz. (OnGameModeInit e ekleyin.)
- Hasar aldığınızda veya hasar verdiğinizde size kime hangi silahla hasar verdiğiniz veya kimden hangi silahla hasar aldığınız gösteren textdrawlar mevcuttur. Bunu
SetDamageFeed(false); ile kaldırabilirsiniz.(OnGameModeInit e ekleyin.)
Ve daha fazlası... (https://github.com/oscar-broman/samp-weapon-config)Kısaca Oscar Broman'ın Weapon-Config'i şu anki en iyi Damage Systemdir.[/list]
Kodları inceleme fırsatını şimdi buldum da algoritmanın bir kısmında gariplik gördüm. Senin algoritman şöyle işliyor oyuncu damage aldığında can ve zırh değişkenindeki değerleri aldığı damageye göre düşür. Burada biraz uzatmışsın gibi geldi bana. Şöyle yapmanı tavsiye derim.
public OnPlayerUpdate(playerid)
{
if(GetPVarInt(playerid, "CanVeZirhBlock") <= gettime())
{
if(GuvenlikIslem_nexor[playerid][_scontrol_N])
{
new Float: _canvezirh[2], _Temp[4];
GetPlayerHealth(playerid, _canvezirh[0]);
GetPlayerArmour(playerid, _canvezirh[1]);
_Temp[0] = floatround(_canvezirh[0], floatround_round);
_Temp[1] = floatround(GuvenlikIslem_nexor[playerid][_c@n_0x], floatround_round);
_Temp[2] = floatround(_canvezirh[1], floatround_round);
_Temp[3] = floatround(GuvenlikIslem_nexor[playerid][_z1rh_0b], floatround_round);
if(_Temp[0] > _Temp[1])
{
CallRemoteFunction("nSecurity_ba", "ii", playerid, TESPIT_CAN);
}
if(_Temp[2] > _Temp[3])
{
CallRemoteFunction("nSecurity_ba", "ii", playerid, TESPIT_ZIRH);
}
if(_Temp[0] < _Temp[1])
{
GuvenlikIslem_nexor[playerid][_c@n_0x] = _canvezirh[0];
}
if(_Temp[2] < _Temp[3])
{
GuvenlikIslem_nexor[playerid][_z1rh_0b] = _canvezirh[1];
}
}
}
SetPVarInt(playerid, "CanVeZirhBlock", gettime() + 1);
if (nSecurity[4])
{
return CallLocalFunction("nSecurity_OnPlayerUpdate", "i",playerid);
}
return 1;
}
OnPlayerUpdate publicini böyle değiştirdikten sonra OnPlayerTakeDamage ile ne varsa silmen daha mantıklı olabilir.
Kodları test etmedim gerekirse Callbackstaki eklediğim yerlere Canver_ veya Zirhver_ eklersin.
Önerin için teşekkürler, konuyu ve linkleri güncelledim. OnPlayerUpdate kısmında GuvenlikIslem_ kısmında eksiklik var oraları da güncelleyebilirsin.
Ellerine SağLık <3
Eline saglık Güzel paylaşım :helal:
Yorumlarınız için teşekkürler.
Sistem güncellenmiştir.
Alıntı yapılan: Harun - 09 Nisan 2017, 12:24:34
Alıntı yapılan: NexoR - 09 Nisan 2017, 12:00:24
Sistem güncellenmiştir.
\pawno\include\AntiHealth-Armour.inc(345) : warning 201: redefinition of constant/macro (symbol "SetPlayerArmour")
Bu hatanın çözumünü sölermisin OPSP inclüdede
#define SetPlayerArmour SetPlayerArmourEx
var bu yuzden hata veriyor bu hatayı nasıl duzeltebilirim
#if defined _ALS_SetPlayerArmour
#undef SetPlayerArmour
#else
#define _ALS_SetPlayerArmour
#endif
#define SetPlayerArmour SetPlayerArmourEx
Eline sağlık, teşekkürler.
ELİNE SAĞLIK GÜZEL SİSTEM YARARLI :helal:
Yorumlarınız için teşekkürler.
Eline sğlık kardeşim.
teşekkürler