Öncelikle Herkese Merhaba
Sunucuma Anti GOD Sistemi Yaptım SKY.inc && weapon-config.inc ile Yaptım
Fakat Bazı Şeyler Yolunda Gitmedi Mesela SetPlayerHealth(playerid, -100); // Bu Fonksiyon Çalışmıyor
Yani Oyuncunun Herhangi Bir Yerine Ateş Ettigimimde İşliyor Fakat SetPlayerHealth(playerid, -100); Bu Fonksiyonun oldugu yerler çalışmıyor.
örn: /kill yazınca hatalı komut veriyor ya da adkill komutuyla oyuncu oldururkende hatalı komut diyor ve yüksek biryerden atladıgımızdada canımız gitmiyor.
Herkese Şimdiden Teşekkürler.
NOT:
forward SetHealth(playerid, Float:health);
public SetHealth(playerid, Float:health) {
SetPlayerHealth(playerid, health);
}
Eklendi
SetPlayerHealth(playerid, 0.0); olarak değiştir, dene bakalım işe yarıcak mı ?
Alıntı yapılan: Excision - 12 Haziran 2017, 09:56:26
SetPlayerHealth(playerid, 0.0); olarak değiştir, dene bakalım işe yarıcak mı ?
Olmadı
başka yardım edecek yokmu ?
weapon-congif.inc 'e girip stock WC_SetPlayerHealth diye aratın ve tüm stocku aşağıdakiyle değiştirin.
stock WC_SetPlayerHealth(playerid, Float:health, Float:armour = -1.0)
{
if (playerid < 0 || playerid >= MAX_PLAYERS) {
return 0;
}
if (health <= 0) {
//s_PlayerArmour[playerid] = 0.0;
//s_PlayerHealth[playerid] = 0.0;
PlayerDeath(playerid, "KNIFE", "KILL_Knife_Ped_Die");
} else {
if (armour != -1.0) {
s_PlayerArmour[playerid] = armour;
}
s_PlayerHealth[playerid] = health;
UpdateHealthBar(playerid, true);
}
return 1;
}
Alıntı yapılan: _Backup - 19 Haziran 2017, 20:14:22
weapon-congif.inc 'e girip stock WC_SetPlayerHealth diye aratın ve tüm stocku aşağıdakiyle değiştirin.
stock WC_SetPlayerHealth(playerid, Float:health, Float:armour = -1.0)
{
if (playerid < 0 || playerid >= MAX_PLAYERS) {
return 0;
}
if (health <= 0) {
//s_PlayerArmour[playerid] = 0.0;
//s_PlayerHealth[playerid] = 0.0;
PlayerDeath(playerid, "KNIFE", "KILL_Knife_Ped_Die");
} else {
if (armour != -1.0) {
s_PlayerArmour[playerid] = armour;
}
s_PlayerHealth[playerid] = health;
UpdateHealthBar(playerid, true);
}
return 1;
}
Reis bi nevze işe yaradı fakat bi sıkıntı var yüksekten düşünce hala canımız gitmiyo ?
Beyler Yüksek Biryerden düşünce can gitmiyo onu nasıl halletcez ?
_Backup ve Excision'dan başka yardım edecek yokmu
public OnPlayerDamageDone(playerid, Float:amount, issuerid, weapon, bodypart)
{
CallLocalFunction("OnPlayerDamaged", "ifiii", playerid,amount,issuerid,weapon,bodypart);
new idx = s_PreviousHitI[playerid];
s_PreviousHitI[playerid] = (s_PreviousHitI[playerid] - 1) % sizeof(s_PreviousHits[]);
// JIT plugin fix
if (s_PreviousHitI[playerid] < 0) {
s_PreviousHitI[playerid] += sizeof(s_PreviousHits[]);
}
s_PreviousHits[playerid][idx][e_Tick] = GetTickCount();
s_PreviousHits[playerid][idx][e_Issuer] = issuerid;
s_PreviousHits[playerid][idx][e_Weapon] = weapon;
s_PreviousHits[playerid][idx][e_Amount] = amount;
s_PreviousHits[playerid][idx][e_Bodypart] = bodypart;
s_PreviousHits[playerid][idx][e_Health] = GetLastDamageHealth(playerid);
s_PreviousHits[playerid][idx][e_Armour] = GetLastDamageArmour(playerid);
if (!IsHighRateWeapon(weapon)) {
DebugMessageAll("OnPlayerDamageDone(%d did %f to %d with %d on bodypart %d)", issuerid, amount, playerid, weapon, bodypart);
if (s_DamageTakenSound) {
PlayerPlaySound(playerid, s_DamageTakenSound, 0.0, 0.0, 0.0);
for (new i = 0; i < MAX_PLAYERS; i++) {
if (s_Spectating[i] == playerid && i != playerid) {
//PlayerPlaySound(i, s_DamageTakenSound, 0.0, 0.0, 0.0);
}
}
}
if (s_DamageGivenSound && issuerid != INVALID_PLAYER_ID) {
//PlayerPlaySound(issuerid, s_DamageGivenSound, 0.0, 0.0, 0.0);
for (new i = 0; i < MAX_PLAYERS; i++) {
if (s_Spectating[i] == issuerid && i != issuerid) {
// PlayerPlaySound(i, s_DamageGivenSound, 0.0, 0.0, 0.0);
}
}
}
}
if (issuerid != INVALID_PLAYER_ID) {
DamageFeedAddHitGiven(issuerid, playerid, amount, weapon);
}
DamageFeedAddHitTaken(playerid, issuerid, amount, weapon);
#if defined WC_OnPlayerDamageDone
WC_OnPlayerDamageDone(playerid, amount, issuerid, weapon, bodypart);
#endif
}
public OnPlayerDamage(&playerid, &Float:amount, &issuerid, &weapon, &bodypart)
{
return 1;
}
Bunu yaptıktan sonra onplayerdamage adlı publici kullanma onun yerine onplayerdamaged publicini kullan
Alıntı yapılan: 2PAC_ - 22 Haziran 2017, 00:36:58
public OnPlayerDamageDone(playerid, Float:amount, issuerid, weapon, bodypart)
{
CallLocalFunction("OnPlayerDamaged", "ifiii", playerid,amount,issuerid,weapon,bodypart);
new idx = s_PreviousHitI[playerid];
s_PreviousHitI[playerid] = (s_PreviousHitI[playerid] - 1) % sizeof(s_PreviousHits[]);
// JIT plugin fix
if (s_PreviousHitI[playerid] < 0) {
s_PreviousHitI[playerid] += sizeof(s_PreviousHits[]);
}
s_PreviousHits[playerid][idx][e_Tick] = GetTickCount();
s_PreviousHits[playerid][idx][e_Issuer] = issuerid;
s_PreviousHits[playerid][idx][e_Weapon] = weapon;
s_PreviousHits[playerid][idx][e_Amount] = amount;
s_PreviousHits[playerid][idx][e_Bodypart] = bodypart;
s_PreviousHits[playerid][idx][e_Health] = GetLastDamageHealth(playerid);
s_PreviousHits[playerid][idx][e_Armour] = GetLastDamageArmour(playerid);
if (!IsHighRateWeapon(weapon)) {
DebugMessageAll("OnPlayerDamageDone(%d did %f to %d with %d on bodypart %d)", issuerid, amount, playerid, weapon, bodypart);
if (s_DamageTakenSound) {
PlayerPlaySound(playerid, s_DamageTakenSound, 0.0, 0.0, 0.0);
for (new i = 0; i < MAX_PLAYERS; i++) {
if (s_Spectating[i] == playerid && i != playerid) {
//PlayerPlaySound(i, s_DamageTakenSound, 0.0, 0.0, 0.0);
}
}
}
if (s_DamageGivenSound && issuerid != INVALID_PLAYER_ID) {
//PlayerPlaySound(issuerid, s_DamageGivenSound, 0.0, 0.0, 0.0);
for (new i = 0; i < MAX_PLAYERS; i++) {
if (s_Spectating[i] == issuerid && i != issuerid) {
// PlayerPlaySound(i, s_DamageGivenSound, 0.0, 0.0, 0.0);
}
}
}
}
if (issuerid != INVALID_PLAYER_ID) {
DamageFeedAddHitGiven(issuerid, playerid, amount, weapon);
}
DamageFeedAddHitTaken(playerid, issuerid, amount, weapon);
#if defined WC_OnPlayerDamageDone
WC_OnPlayerDamageDone(playerid, amount, issuerid, weapon, bodypart);
#endif
}
public OnPlayerDamage(&playerid, &Float:amount, &issuerid, &weapon, &bodypart)
{
return 1;
}
Bunu yaptıktan sonra onplayerdamage adlı publici kullanma onun yerine onplayerdamaged publicini kullan
En basta denedigim cozum buydu fakat buda ise yaramamisti