GTAMulti.com - Türkiye'nin Türkçe GTA Sitesi

Anti GOD'da Sıkıntı

Başlatan Pottus420, 12 Haziran 2017, 08:40:32

« önceki - sonraki »

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Pottus420

Ö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


Excision

SetPlayerHealth(playerid, 0.0); olarak değiştir, dene bakalım işe yarıcak mı ?


Pottus420

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ı


Pottus420

başka yardım edecek yokmu ?


Backup

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;
}   



Pottus420

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 ?


Pottus420

Beyler Yüksek Biryerden düşünce can gitmiyo onu nasıl halletcez ?


Pottus420

_Backup ve Excision'dan başka yardım edecek yokmu


_Code

PAWN Kodu: Seç
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





SA:MP Turkiye CnR IP: server.sampturkiyecnr.com:7777

Pottus420

Alıntı yapılan: 2PAC_ - 22 Haziran 2017, 00:36:58

PAWN Kodu: Seç
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