⭐🚀 TkyNET | Blacklist ve Profesyonel DDoS Korumalı TeamSpeak 3 Sunucuları 🚀⭐
Sponsor Görsel
⭐ Buraya kendi metin reklamınızı vererek binlerce kişiye ulaşın! ⭐
Sponsor Görsel 2
SponsorSponsor

Konu

#1
Arkadaşlar merhaba
bu kodların içinde oyuncuya asist veren sistem var benim isteğim asist yaptığımız kişinin nickinin de eklenmesi yani kime 51 üstü hasar verdiysek onun nicki say mesajı olarak belirtsin

emeği geçene teşekkürler.

Kod:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <csx>
#include <fun>
#include <hamsandwich>

#define PLUGIN "frag"
#define VERSION "1.6"
#define AUTHOR "thorin"

new bool:g_bMatchActive = false
new bool:g_bFragResetUsed = false // Harita basinda sıfırlama hakkını tutar
new g_iSavedKills[33]
new g_iSavedDeaths[33]

// Oyuncularin birbirine verdigi NET hasarlari tutan matris [Saldiran][Kurban]
new g_iDamageDealt[33][33]

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
   
    register_concmd("amx_kytbasla", "Cmd_MacStart", ADMIN_KICK, "Mac modunu baslatir ve skorlari sabitler")
    register_concmd("amx_kytbitir", "Cmd_MacStop", ADMIN_KICK, "Mac modunu bitirir ve normal sisteme gecer")
    register_concmd("amx_fragsifirla", "Cmd_FragSifirla", ADMIN_KICK, "Tum oyuncularin frag ve olumlerini sifirlar (Haritada 1 kez)")
   
    register_event("HLTV", "Event_NewRound", "a", "1=0", "2=0")
   
    RegisterHam(Ham_Killed, "player", "Fwd_PlayerKilled_Post", 1)
    RegisterHam(Ham_Spawn, "player", "Fwd_PlayerSpawn_Post", 1)
   
    // NOT: Ham_TakeDamage iptal edildi. Zirh ve HE bomba tutarsizligi icin asagidaki client_damage kullanilacak.
}

public plugin_cfg() {
    g_bFragResetUsed = false
}

public client_putinserver(id) {
    g_iSavedKills[id] = 0
    g_iSavedDeaths[id] = 0
    ClearPlayerDamage(id)
}

public client_disconnected(id) {
    g_iSavedKills[id] = 0
    g_iSavedDeaths[id] = 0
    ClearPlayerDamage(id)
}

// Oyuncunun hasar kayitlarini temizleme fonksiyonu
ClearPlayerDamage(id) {
    for (new i = 1; i <= 32; i++) {
        g_iDamageDealt[id][i] = 0
        g_iDamageDealt[i][id] = 0
    }
}

public Cmd_MacStart(id, level, cid) {
    if (!cmd_access(id, level, cid, 1))
        return PLUGIN_HANDLED
       
    if (g_bMatchActive) {
        client_print_color(id, print_team_default, "")
        return PLUGIN_HANDLED
    }
       
    g_bMatchActive = true
    ClearAllDamage()
    SyncAllScores()
   
    client_print_color(0, print_team_default, "")
    return PLUGIN_HANDLED
}

public Cmd_MacStop(id, level, cid) {
    if (!cmd_access(id, level, cid, 1))
        return PLUGIN_HANDLED
       
    if (!g_bMatchActive) {
        client_print_color(id, print_team_default, "")
        return PLUGIN_HANDLED
    }
       
    g_bMatchActive = false
    ClearAllDamage()
   
    for (new i = 1; i <= 32; i++) {
        if (is_user_connected(i)) {
            g_iSavedKills[i] = 0
            g_iSavedDeaths[i] = 0
            set_user_frags(i, 0)
            cs_set_user_deaths(i, 0)
            UpdateScoreboard(i)
        }
    }
   
    client_print_color(0, print_team_default, "^4[SSS] Skor sayma ve frag kayit sistemi kapatildi! Fraglar sifirlandi.")
    return PLUGIN_HANDLED
}

public Cmd_FragSifirla(id, level, cid) {
    if (!cmd_access(id, level, cid, 1))
        return PLUGIN_HANDLED
       
    if (g_bFragResetUsed) {
        client_print_color(id, print_team_default, "")
        return PLUGIN_HANDLED
    }
       
    ClearAllDamage()
    for (new i = 1; i <= 32; i++) {
        if (is_user_connected(i)) {
            g_iSavedKills[i] = 0
            g_iSavedDeaths[i] = 0
            set_user_frags(i, 0)
            cs_set_user_deaths(i, 0)
            UpdateScoreboard(i)
        }
    }
   
    g_bFragResetUsed = true
   

    client_print_color(0, print_team_default, "")
    return PLUGIN_HANDLED
}

// Zırh (Çelik Yelek) ve %50 Bomba eklentisi uyumlu yeni hasar yakalama fonksiyonu
public client_damage(attacker, victim, damage, wpnindex, hitplace, TA) {
    if (!g_bMatchActive)
        return

    if (attacker < 1 || attacker > 32 || !is_user_connected(attacker) || attacker == victim)
        return

    // TA = Team Attack. Eğer 0 ise kurban düşmandır (FF Koruması).
    if (!TA) {
        // Buradaki 'damage' değişkeni; çelik yeleğin hasarı emmesi veya sunucundaki
        // bomba hasarını %50 düşüren eklentinin işlemlerinden SONRA oyuncudan
        // düşen NET can miktarıdır. Bu sayede tutarsızlıklar tamamen ortadan kalkar.
        g_iDamageDealt[attacker][victim] += damage
    }
}

public bomb_defused(id) {
    if (g_bMatchActive && is_user_connected(id)) {
        set_task(0.2, "Task_SaveBombScore", id)
    }
}

public bomb_explode(planter, defuser) {
    if (g_bMatchActive && is_user_connected(planter)) {
        set_task(0.2, "Task_SaveBombScore", planter)
    }
}

public Task_SaveBombScore(id) {
    if (g_bMatchActive && is_user_connected(id)) {
        g_iSavedKills[id] = get_user_frags(id)
        UpdateScoreboard(id)
    }
}

public Fwd_PlayerKilled_Post(victim, killer) {
    if (!g_bMatchActive)
        return HAM_IGNORED
       
    // İntihar veya dunya hasari durumlari
    if (killer == victim || killer == 0 || !is_user_connected(killer)) {
        if (is_user_connected(victim)) {
            set_task(0.1, "Task_RestoreScore", victim)
        }
       
        // Kurbanin hasar matrisini temizle
        for (new i = 1; i <= 32; i++) {
            g_iDamageDealt[i][victim] = 0
        }
        return HAM_IGNORED
    }
   
    // --- ASIST KONTROL SISTEMI ---
    new iVictimTeam = get_user_team(victim)
    for (new i = 1; i <= 32; i++) {
        // Katil haricinde, bagli olan ve kurbanin dusmani olan oyunculari tara
        if (i != killer && is_user_connected(i) && get_user_team(i) != iVictimTeam) {
            // Eger bu oyuncu olene 51 veya uzeri net hasar vermisse asist kazanir
            if (g_iDamageDealt[i][victim] >= 51) {
                set_user_frags(i, get_user_frags(i) + 1)
               
                // Asist yapan oyuncuya 200 Dolar para verme islemi (Max 16000 korumali)
                new current_money = cs_get_user_money(i)
                cs_set_user_money(i, clamp(current_money + 200, 0, 16000))
               
                UpdateScoreboard(i)
                client_print_color(i, print_team_default, "^4[SSS] ^3Asist ^1yaptigin icin ^4+1 ^1frag ve^4 200$ ^1kazandin! (Verdigin hasar: ^4%d^1)", g_iDamageDealt[i][victim])
            }
        }
    }
   
    // Asist dagitildiktan sonra tum skorlari guvenle hafizaya kilitliyoruz
    SyncAllScores()
   
    // Ölen oyuncunun uzerindeki hasar kayitlarini yeni canlanma icin sifirliyoruz
    for (new i = 1; i <= 32; i++) {
        g_iDamageDealt[i][victim] = 0
    }
   
    return HAM_IGNORED
}

public Task_RestoreScore(id) {
    if (!g_bMatchActive || !is_user_connected(id))
        return
       
    set_user_frags(id, g_iSavedKills[id])
    cs_set_user_deaths(id, g_iSavedDeaths[id])
    UpdateScoreboard(id)
}

public Event_NewRound() {
    if (!g_bMatchActive)
        return
       
    // Yeni el basinda tum hasar matrisini tamamen temizle
    ClearAllDamage()

    for (new i = 1; i <= 32; i++) {
        if (is_user_connected(i)) {
            set_user_frags(i, g_iSavedKills[i])
            cs_set_user_deaths(i, g_iSavedDeaths[i])
        }
    }
   
    set_task(0.5, "Task_UpdateAllScores")
}

public Task_UpdateAllScores() {
    if (!g_bMatchActive)
        return
       
    UpdatePlayerStaggered(1)
}

UpdatePlayerStaggered(id) {
    if (!g_bMatchActive || id > 32)
        return

    if (is_user_connected(id)) {
        UpdateScoreboard(id)
        set_task(0.03, "OnUpdateNextPlayer", id + 1)
    } else {
        UpdatePlayerStaggered(id + 1)
    }
}

public OnUpdateNextPlayer(id) {
    UpdatePlayerStaggered(id)
}

public Fwd_PlayerSpawn_Post(id) {
    if (!g_bMatchActive || !is_user_alive(id))
        return
       
    set_user_frags(id, g_iSavedKills[id])
    cs_set_user_deaths(id, g_iSavedDeaths[id])
   
    // Canlanan oyuncunun hasar gecmisini tedbiren temizle
    for (new i = 1; i <= 32; i++) {
        g_iDamageDealt[id][i] = 0
        g_iDamageDealt[i][id] = 0
    }
}

public SyncAllScores() {
    if (!g_bMatchActive)
        return

    for (new i = 1; i <= 32; i++) {
        if (is_user_connected(i)) {
            g_iSavedKills[i] = get_user_frags(i)
            g_iSavedDeaths[i] = cs_get_user_deaths(i)
        }
    }
}

ClearAllDamage() {
    for (new i = 1; i <= 32; i++) {
        for (new j = 1; j <= 32; j++) {
            g_iDamageDealt[i][j] = 0
        }
    }
}

UpdateScoreboard(id) {
    message_begin(MSG_BROADCAST, get_user_msgid("ScoreInfo"))
    write_byte(id)
    write_short(g_iSavedKills[id])
    write_short(g_iSavedDeaths[id])
    write_short(0)
    write_short(get_user_team(id))
    message_end()
}

#2
Kod:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <csx>
#include <fun>
#include <hamsandwich>

#define PLUGIN "frag"
#define VERSION "1.6"
#define AUTHOR "thorin"

new bool:g_bMatchActive = false
new bool:g_bFragResetUsed = false // Harita basinda sıfırlama hakkını tutar
new g_iSavedKills[33]
new g_iSavedDeaths[33]

// Oyuncularin birbirine verdigi NET hasarlari tutan matris [Saldiran][Kurban]
new g_iDamageDealt[33][33]

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
  
    register_concmd("amx_kytbasla", "Cmd_MacStart", ADMIN_KICK, "Mac modunu baslatir ve skorlari sabitler")
    register_concmd("amx_kytbitir", "Cmd_MacStop", ADMIN_KICK, "Mac modunu bitirir ve normal sisteme gecer")
    register_concmd("amx_fragsifirla", "Cmd_FragSifirla", ADMIN_KICK, "Tum oyuncularin frag ve olumlerini sifirlar (Haritada 1 kez)")
  
    register_event("HLTV", "Event_NewRound", "a", "1=0", "2=0")
  
    RegisterHam(Ham_Killed, "player", "Fwd_PlayerKilled_Post", 1)
    RegisterHam(Ham_Spawn, "player", "Fwd_PlayerSpawn_Post", 1)
  
    // NOT: Ham_TakeDamage iptal edildi. Zirh ve HE bomba tutarsizligi icin asagidaki client_damage kullanilacak.
}

public plugin_cfg() {
    g_bFragResetUsed = false
}

public client_putinserver(id) {
    g_iSavedKills[id] = 0
    g_iSavedDeaths[id] = 0
    ClearPlayerDamage(id)
}

public client_disconnected(id) {
    g_iSavedKills[id] = 0
    g_iSavedDeaths[id] = 0
    ClearPlayerDamage(id)
}

// Oyuncunun hasar kayitlarini temizleme fonksiyonu
ClearPlayerDamage(id) {
    for (new i = 1; i <= 32; i++) {
        g_iDamageDealt[id][i] = 0
        g_iDamageDealt[i][id] = 0
    }
}

public Cmd_MacStart(id, level, cid) {
    if (!cmd_access(id, level, cid, 1))
        return PLUGIN_HANDLED
      
    if (g_bMatchActive) {
        client_print_color(id, print_team_default, "")
        return PLUGIN_HANDLED
    }
      
    g_bMatchActive = true
    ClearAllDamage()
    SyncAllScores()
  
    client_print_color(0, print_team_default, "")
    return PLUGIN_HANDLED
}

public Cmd_MacStop(id, level, cid) {
    if (!cmd_access(id, level, cid, 1))
        return PLUGIN_HANDLED
      
    if (!g_bMatchActive) {
        client_print_color(id, print_team_default, "")
        return PLUGIN_HANDLED
    }
      
    g_bMatchActive = false
    ClearAllDamage()
  
    for (new i = 1; i <= 32; i++) {
        if (is_user_connected(i)) {
            g_iSavedKills[i] = 0
            g_iSavedDeaths[i] = 0
            set_user_frags(i, 0)
            cs_set_user_deaths(i, 0)
            UpdateScoreboard(i)
        }
    }
  
    client_print_color(0, print_team_default, "^4[SSS] Skor sayma ve frag kayit sistemi kapatildi! Fraglar sifirlandi.")
    return PLUGIN_HANDLED
}

public Cmd_FragSifirla(id, level, cid) {
    if (!cmd_access(id, level, cid, 1))
        return PLUGIN_HANDLED
      
    if (g_bFragResetUsed) {
        client_print_color(id, print_team_default, "")
        return PLUGIN_HANDLED
    }
      
    ClearAllDamage()
    for (new i = 1; i <= 32; i++) {
        if (is_user_connected(i)) {
            g_iSavedKills[i] = 0
            g_iSavedDeaths[i] = 0
            set_user_frags(i, 0)
            cs_set_user_deaths(i, 0)
            UpdateScoreboard(i)
        }
    }
  
    g_bFragResetUsed = true
  
    client_print_color(0, print_team_default, "")
    return PLUGIN_HANDLED
}

// Zırh (Çelik Yelek) ve %50 Bomba eklentisi uyumlu yeni hasar yakalama fonksiyonu
public client_damage(attacker, victim, damage, wpnindex, hitplace, TA) {
    if (!g_bMatchActive)
        return

    if (attacker < 1 || attacker > 32 || !is_user_connected(attacker) || attacker == victim)
        return

    // TA = Team Attack. Eğer 0 ise kurban düşmandır (FF Koruması).
    if (!TA) {
        // Buradaki 'damage' değişkeni; çelik yeleğin hasarı emmesi veya sunucundaki
        // bomba hasarını %50 düşüren eklentinin işlemlerinden SONRA oyuncudan
        // düşen NET can miktarıdır. Bu sayede tutarsızlıklar tamamen ortadan kalkar.
        g_iDamageDealt[attacker][victim] += damage
    }
}

public bomb_defused(id) {
    if (g_bMatchActive && is_user_connected(id)) {
        set_task(0.2, "Task_SaveBombScore", id)
    }
}

public bomb_explode(planter, defuser) {
    if (g_bMatchActive && is_user_connected(planter)) {
        set_task(0.2, "Task_SaveBombScore", planter)
    }
}

public Task_SaveBombScore(id) {
    if (g_bMatchActive && is_user_connected(id)) {
        g_iSavedKills[id] = get_user_frags(id)
        UpdateScoreboard(id)
    }
}

public Fwd_PlayerKilled_Post(victim, killer) {
    if (!g_bMatchActive)
        return HAM_IGNORED
      
    // İntihar veya dunya hasari durumlari
    if (killer == victim || killer == 0 || !is_user_connected(killer)) {
        if (is_user_connected(victim)) {
            set_task(0.1, "Task_RestoreScore", victim)
        }
      
        // Kurbanin hasar matrisini temizle
        for (new i = 1; i <= 32; i++) {
            g_iDamageDealt[i][victim] = 0
        }
        return HAM_IGNORED
    }
  
    // --- ASIST KONTROL SISTEMI ---
    new iVictimTeam = get_user_team(victim)
    new szVictimName[32]
    get_user_name(victim, szVictimName, charsmax(szVictimName)) // Kurbanin ismini hafizaya aldik

    for (new i = 1; i <= 32; i++) {
        // Katil haricinde, bagli olan ve kurbanin dusmani olan oyunculari tara
        if (i != killer && is_user_connected(i) && get_user_team(i) != iVictimTeam) {
            // Eger bu oyuncu olene 51 veya uzeri net hasar vermisse asist kazanir
            if (g_iDamageDealt[i][victim] >= 51) {
                set_user_frags(i, get_user_frags(i) + 1)
              
                // Asist yapan oyuncuya 200 Dolar para verme islemi (Max 16000 korumali)
                new current_money = cs_get_user_money(i)
                cs_set_user_money(i, clamp(current_money + 200, 0, 16000))
              
                UpdateScoreboard(i)
                
                // Mesajın içerisine szVictimName eklenerek güncellendi
                client_print_color(i, print_team_default, "^4[SSS] ^3%s ^1isimli oyuncuya asist yaptigin icin ^4+1 ^1frag ve^4 200$ ^1kazandin! (Verdigin hasar: ^4%d^1)", szVictimName, g_iDamageDealt[i][victim])
            }
        }
    }
  
    // Asist dagitildiktan sonra tum skorlari guvenle hafizaya kilitliyoruz
    SyncAllScores()
  
    // Ölen oyuncunun uzerindeki hasar kayitlarini yeni canlanma icin sifirliyoruz
    for (new i = 1; i <= 32; i++) {
        g_iDamageDealt[i][victim] = 0
    }
  
    return HAM_IGNORED
}

public Task_RestoreScore(id) {
    if (!g_bMatchActive || !is_user_connected(id))
        return
      
    set_user_frags(id, g_iSavedKills[id])
    cs_set_user_deaths(id, g_iSavedDeaths[id])
    UpdateScoreboard(id)
}

public Event_NewRound() {
    if (!g_bMatchActive)
        return
      
    // Yeni el basinda tum hasar matrisini tamamen temizle
    ClearAllDamage()

    for (new i = 1; i <= 32; i++) {
        if (is_user_connected(i)) {
            set_user_frags(i, g_iSavedKills[i])
            cs_set_user_deaths(i, g_iSavedDeaths[i])
        }
    }
  
    set_task(0.5, "Task_UpdateAllScores")
}

public Task_UpdateAllScores() {
    if (!g_bMatchActive)
        return
      
    UpdatePlayerStaggered(1)
}

UpdatePlayerStaggered(id) {
    if (!g_bMatchActive || id > 32)
        return

    if (is_user_connected(id)) {
        UpdateScoreboard(id)
        set_task(0.03, "OnUpdateNextPlayer", id + 1)
    } else {
        UpdatePlayerStaggered(id + 1)
    }
}

public OnUpdateNextPlayer(id) {
    UpdatePlayerStaggered(id)
}

public Fwd_PlayerSpawn_Post(id) {
    if (!g_bMatchActive || !is_user_alive(id))
        return
      
    set_user_frags(id, g_iSavedKills[id])
    cs_set_user_deaths(id, g_iSavedDeaths[id])
  
    // Canlanan oyuncunun hasar gecmisini tedbiren temizle
    for (new i = 1; i <= 32; i++) {
        g_iDamageDealt[id][i] = 0
        g_iDamageDealt[i][id] = 0
    }
}

public SyncAllScores() {
    if (!g_bMatchActive)
        return

    for (new i = 1; i <= 32; i++) {
        if (is_user_connected(i)) {
            g_iSavedKills[i] = get_user_frags(i)
            g_iSavedDeaths[i] = cs_get_user_deaths(i)
        }
    }
}

ClearAllDamage() {
    for (new i = 1; i <= 32; i++) {
        for (new j = 1; j <= 32; j++) {
            g_iDamageDealt[i][j] = 0
        }
    }
}

UpdateScoreboard(id) {
    message_begin(MSG_BROADCAST, get_user_msgid("ScoreInfo"))
    write_byte(id)
    write_short(g_iSavedKills[id])
    write_short(g_iSavedDeaths[id])
    write_short(0)
    write_short(get_user_team(id))
    message_end()
}

| Return All Starz | Valorant Mod | 95.173.173.31 |
#3
İstek konusu, @Merhabalarr adlı kullanıcı tarafından 1 saat içinde çözülmüştür.
İsteği çözdüğü için Merhabalarr Adlı kullanıcıya 1 rep puanı ve 1 yardım etme puanı otomatik olarak verilmiştir.
Merhabalarr Adlı kullanıcı sizin dışınızda toplam 62 kişiye yardım etmiştir.

Herhangi bir konuda hata olduğunu düşünüyorsanız destek sistemi üzerinden iletişim kurabilirsiniz.

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da