⭐🚀 TkyNET | Blacklist ve Profesyonel DDoS Korumalı TeamSpeak 3 Sunucuları 🚀⭐
Sponsor Görsel
🌐 www.furiazm.com ⏰ 7/24 aktif Yönetim 💬 Discord.gg/furiaclancs 💰Ücretsiz Adminlik/Vip alımı 🌟 Türkiye’nin yeni en gelişmiş Zombie Plague sunucusu
Sponsor Görsel 2
SponsorSponsor

Score Sistemi Elle Düzeltme

Score Sistemi Elle Düzeltme
Merhabalar, bu pluginde bazen istemediğimiz anda skor sayıyor elle düzeltme kodu olsun istiyorum. Pluginin çalışmasında bir problem yok sadece
örneğin kod şöyle olacak amx_skorsistemi_t 1 kodunu yazınca tabloya 1 skor eklesin ama "-" kodu da çalışması lazım örneğin bazen skor 12-3 "amx_skorsistemi_ct -1" yazınca CT takımından 1 skor silsin.
Teşekkürler.

@"pFer" hocam sen plugini hatırlıyorsundur, düzeneği de biliyorsun yardımcı olur musun? amx_skorduzelt_t amx_skorduzelt_ct "değer (1-15) ve (-1 -15)" olacak şekilde kod lazım.
.smascoresistemi.sma(Dosya Boyutu: 5,84 KB | İndirme Sayısı: 3)
Son Düzenleme: 25-04-2025, 00:31, Düzenleyen: john80
RE: Score Sistemi Elle Düzeltme
(25-04-2025, 00:29)john80 Adlı Kullanıcıdan Alıntı: Merhabalar, bu pluginde bazen istemediğimiz anda skor sayıyor elle düzeltme kodu olsun istiyorum. Pluginin çalışmasında bir problem yok sadece
örneğin kod şöyle olacak amx_skorsistemi_t 1 kodunu yazınca tabloya 1 skor eklesin ama "-" kodu da çalışması lazım örneğin bazen skor 12-3 "amx_skorsistemi_ct -1" yazınca CT takımından 1 skor silsin.
Teşekkürler.

@"pFer" hocam sen plugini hatırlıyorsundur, düzeneği de biliyorsun yardımcı olur musun? amx_skorduzelt_t amx_skorduzelt_ct "değer (1-15) ve (-1 -15)" olacak şekilde kod lazım.

@john80

Hocam selamlar. Evet hatırlıyorum. Ancak şuan şehir dışındayım. Pazar ya da pazartesi günü bakabilirim. Eğer o zamana kadar destek çıkan olmazsa çözeriz.
Advanced Plug-in & Animated Model Tasarımı
RE: Score Sistemi Elle Düzeltme
buyrun deneyin amx_skorsistemi_t sayı ve amx_skorsistemi_ct sayı şeklinde çalışıyor istediğiniz gibi https://www.webailesi.com/ds-scoresistemi-15361.sma
RE: Score Sistemi Elle Düzeltme
(25-04-2025, 00:29)john80 Adlı Kullanıcıdan Alıntı: Merhabalar, bu pluginde bazen istemediğimiz anda skor sayıyor elle düzeltme kodu olsun istiyorum. Pluginin çalışmasında bir problem yok sadece
örneğin kod şöyle olacak amx_skorsistemi_t 1 kodunu yazınca tabloya 1 skor eklesin ama "-" kodu da çalışması lazım örneğin bazen skor 12-3 "amx_skorsistemi_ct -1" yazınca CT takımından 1 skor silsin.
Teşekkürler.

@"pFer" hocam sen plugini hatırlıyorsundur, düzeneği de biliyorsun yardımcı olur musun? amx_skorduzelt_t amx_skorduzelt_ct "değer (1-15) ve (-1 -15)" olacak şekilde kod lazım.

Hocam gerekli düzenlemeleri yaptım. Test etmeden önce eski plugininizi yedekleyin. Sonra test edin. Ekstra olarak Say'dan geçen yazıların tagını ve komut kullanabilecek yetkiyi ayarlayabilmeniz için inisiyatif olarak #define atadım. Ve açıklamalar ekledim.
compiled but not tested

PHP Kod:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>

// --- Ayarlanabilir Sabitler ---
#define EOSM_TAG        "[EOSM]"    // Plugin tagı (örneğin: "[SKOR]", "[CSMATCH]" vs)
#define ACCESS_FLAG     ADMIN_BAN   // Komut yetkisi (örneğin: ADMIN_KICK, ADMIN_LEVEL_H)

// --- Değişkenler ---
new g_iTerrScore = 0
new g_iCTScore = 0
new g_iRoundCount = 1
new bool:g_bHalfTimeAnnounced = false
new bool:g_bTeamsSwitched = false
new bool:g_bScoreTrackingEnabled = false
new bool:g_bScoreStartedOnce = false // amx_skorbaslat sınırlama

// Takım adları (takım değiştiğinde ters dönecek)
new const szTeamName_Terr[2][] = { "Terrorist", "Counter-Terrorist" }
new const 
szTeamName_CT[2][] = { "Counter-Terrorist", "Terrorist" }

// Fonksiyonlar
#define GetTeamNameT() (g_bTeamsSwitched ? szTeamName_CT[0] : szTeamName_Terr[0])
#define GetTeamNameCT() (g_bTeamsSwitched ? szTeamName_CT[1] : szTeamName_Terr[1])

public plugin_init() {
    register_plugin("EOSM", "1.2", "ALBERT BROOKS + ÖZEL İSTEK")

    register_clcmd("amx_skor", "Command_Score", 0, "Skorları gösterir")
    register_concmd("amx_skorbaslat", "Command_StartScoring", ACCESS_FLAG, "Skor saymayı başlatır")
    register_concmd("amx_skorsifirla", "Command_ResetScoring", ACCESS_FLAG, "Skoru sıfırlar")
    register_concmd("amx_skorduzelt_t", "Command_AdjustScore_T", ACCESS_FLAG, "<deger> kadar T skorunu düzeltir")
    register_concmd("amx_skorduzelt_ct", "Command_AdjustScore_CT", ACCESS_FLAG, "<deger> kadar CT skorunu düzeltir")

    register_event("HLTV", "Event_RoundStart", "a", "1=0", "2=0")
    register_event("SendAudio", "Event_RoundEnd_Terr", "a", "2=%!MRAD_terwin")
    register_event("SendAudio", "Event_RoundEnd_CT", "a", "2=%!MRAD_ctwin")
    register_event("TextMsg", "Event_GameRestart", "a", "2&#Game_will_restart_in")
}

// --- Komutlar ---
public Command_Score(id, level, cid){
    if (g_iRoundCount == 15) {
        g_bTeamsSwitched = true
    
}

    g_iRoundCount = g_iCTScore + g_iTerrScore + 1
    
if (g_bScoreTrackingEnabled){
        chat_color(0, "!g%s !t%s: !g%d !t%s: !g%d !y------------> !g%d. !yEl oynaniyor!", EOSM_TAG, GetTeamNameT(), g_iTerrScore, GetTeamNameCT(), g_iCTScore, g_iRoundCount)
    } else {
        chat_color(0, "!g%s !ySkor sayma sistemi baslatilmadi. Yetkili tarafindan !g/skorbaslat !ykomutu ile baslatilmalidir.", EOSM_TAG)
    }
    return PLUGIN_HANDLED
}

public 
Command_StartScoring(id, level, cid) {
    if (!cmd_access(id, level, cid, 1))
        return PLUGIN_HANDLED

    
if (g_bScoreStartedOnce) {
        chat_color(id, "!g%s !ySkor sayma sistemi zaten baslatildi! Bu komut tekrar kullanilamaz.", EOSM_TAG)
        return PLUGIN_HANDLED
    
}

    g_bScoreStartedOnce = true
    g_bScoreTrackingEnabled 
= true

    
new admin_name[32]
    get_user_name(id, admin_name, charsmax(admin_name))
    chat_color(0, "!g%s !t%s !yskor sayma sistemini !gaktiflestirdi!y.", EOSM_TAG, admin_name)

    return PLUGIN_HANDLED
}

public 
Command_ResetScoring(id, level, cid) {
    if (!cmd_access(id, level, cid, 1))
        return PLUGIN_HANDLED

    g_iTerrScore 
= 0
    g_iCTScore 
= 0
    g_iRoundCount 
= 1
    g_bHalfTimeAnnounced 
= false
    g_bTeamsSwitched 
= false

    
new admin_name[32]
    get_user_name(id, admin_name, charsmax(admin_name))
    chat_color(0, "!g%s !t%s !yskor tablosunu !gsifirladi!y.", EOSM_TAG, admin_name)

    return PLUGIN_HANDLED
}

public 
Command_AdjustScore_T(id, level, cid) {
    if (!cmd_access(id, level, cid, 2))
        return PLUGIN_HANDLED

    
new arg[8]
    read_argv(1, arg, charsmax(arg))
    new value = str_to_num(arg)

    g_iTerrScore += value
    
if (g_iTerrScore < 0)
        g_iTerrScore = 0

    chat_color
(0, "!g%s !t%s !yskoru duzeltildi. Yeni skor: !g%d", EOSM_TAG, GetTeamNameT(), g_iTerrScore)
    return PLUGIN_HANDLED
}

public 
Command_AdjustScore_CT(id, level, cid) {
    if (!cmd_access(id, level, cid, 2))
        return PLUGIN_HANDLED

    
new arg[8]
    read_argv(1, arg, charsmax(arg))
    new value = str_to_num(arg)

    g_iCTScore += value
    
if (g_iCTScore < 0)
        g_iCTScore = 0

    chat_color
(0, "!g%s !t%s !yskoru duzeltildi. Yeni skor: !g%d", EOSM_TAG, GetTeamNameCT(), g_iCTScore)
    return PLUGIN_HANDLED
}

// --- Oyun Eventleri ---
public Event_RoundStart() {
    if (!g_bScoreTrackingEnabled)
        return

    g_iRoundCount = g_iCTScore + g_iTerrScore + 1

    
if (g_iRoundCount == 16 && !g_bHalfTimeAnnounced) {
        g_bHalfTimeAnnounced = true
        chat_color
(0, "!g%s !yIlk devre !tbitti! !yToplam Skor: !t%s: !g%d !t%s: !g%d", EOSM_TAG, GetTeamNameT(), g_iTerrScore, GetTeamNameCT(), g_iCTScore)
    }

    chat_color(0, "!g%s !t%s: !g%d !t%s: !g%d !y------------> !g%d. !yEl oynaniyor!", EOSM_TAG, GetTeamNameT(), g_iTerrScore, GetTeamNameCT(), g_iCTScore, g_iRoundCount)
}

public 
Event_RoundEnd_Terr() {
    if (!g_bScoreTrackingEnabled)
        return

    if (g_bTeamsSwitched)
        g_iCTScore++
    else
        g_iTerrScore++

    CheckGameEnd()
}

public 
Event_RoundEnd_CT() {
    if (!g_bScoreTrackingEnabled)
        return

    if (g_bTeamsSwitched)
        g_iTerrScore++
    else
        g_iCTScore++

    CheckGameEnd()
}

public 
CheckGameEnd() {
    if (g_iRoundCount == 15) {
        g_bTeamsSwitched = true
    
}

    if (g_iTerrScore == 15 && g_iCTScore == 15) {
        for (new i = 0; i < 3; i++)
        chat_color(0, "!g%s !yMac !tberabere !ybitti! Toplam skor: !g%d !y-- !g%d", EOSM_TAG, g_iCTScore, g_iTerrScore)
        chat_color(0, "!g%s !yMac !tberabere !ybitti! Toplam skor: !g%d !y-- !g%d", EOSM_TAG, g_iCTScore, g_iTerrScore)
        chat_color(0, "!g%s !yMac !tberabere !ybitti! Toplam skor: !g%d !y-- !g%d", EOSM_TAG, g_iCTScore, g_iTerrScore)
        g_bScoreTrackingEnabled = false
        set_cvar_num
("sv_restart", 5)
    }
    else if (g_iTerrScore == 16) {
        for (new i = 0; i < 3; i++)
        chat_color(0, "!g%s !t%s !ytakimi maci !tkazandi!y! Toplam skor: !g%d !y-- !g%d", EOSM_TAG, GetTeamNameT(), g_iTerrScore, g_iCTScore)
        chat_color(0, "!g%s !t%s !ytakimi maci !tkazandi!y! Toplam skor: !g%d !y-- !g%d", EOSM_TAG, GetTeamNameT(), g_iTerrScore, g_iCTScore)
        chat_color(0, "!g%s !t%s !ytakimi maci !tkazandi!y! Toplam skor: !g%d !y-- !g%d", EOSM_TAG, GetTeamNameT(), g_iTerrScore, g_iCTScore)        
        g_bScoreTrackingEnabled 
= false
        set_cvar_num
("sv_restart", 5)
    }
    else if (g_iCTScore == 16) {
        for (new i = 0; i < 3; i++)
        chat_color(0, "!g%s !t%s !ytakimi maci !tkazandi!y! Toplam skor: !g%d !y-- !g%d", EOSM_TAG, GetTeamNameCT(), g_iCTScore, g_iTerrScore)
        chat_color(0, "!g%s !t%s !ytakimi maci !tkazandi!y! Toplam skor: !g%d !y-- !g%d", EOSM_TAG, GetTeamNameCT(), g_iCTScore, g_iTerrScore)
        chat_color(0, "!g%s !t%s !ytakimi maci !tkazandi!y! Toplam skor: !g%d !y-- !g%d", EOSM_TAG, GetTeamNameCT(), g_iCTScore, g_iTerrScore)
        g_bScoreTrackingEnabled = false
        set_cvar_num
("sv_restart", 5)
    }
}

public 
Event_GameRestart() {
    // Restart olduğunda skor değişmeyecek
}

// --- Chat Color Yardımcı Fonksiyonu ---
stock chat_color(const id, const input[], any:...) {
    new count = 1, players[32]
    static msg[191]
    vformat(msg, 190, input, 3)

    replace_all(msg, 190, "!g", "^4")
    replace_all(msg, 190, "!y", "^1")
    replace_all(msg, 190, "!t", "^3")
    replace_all(msg, 190, "!team2", "^0")

    if (id) players[0] = id; else get_players(players, count, "ch");
    for (new i = 0; i < count; i++) {
        if (is_user_connected(players[i])) {
            message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
            write_byte(players[i])
            write_string(msg)
            message_end()
        }
    }
} 
Advanced Plug-in & Animated Model Tasarımı
Son Düzenleme: 25-04-2025, 12:26, Düzenleyen: fernpasha
RE: Score Sistemi Elle Düzeltme
@"pFer" Hocam sistem çalışıyor ama 15. el sonunda devre sistemiyle çakışıyor skor silince 15. elde takım ismi değiştirmeyle vs. saçmalıyor sistem tam bakar mısın oraya da
Yani örneğin 15. elden sonra amx_skorduzelt_t komutu skorda ct'ye ekleme yapıyor.
Son Düzenleme: 25-04-2025, 15:09, Düzenleyen: john80
RE: Score Sistemi Elle Düzeltme
(25-04-2025, 15:06)john80 Adlı Kullanıcıdan Alıntı: @"pFer"  Hocam sistem çalışıyor ama 15. el sonunda devre sistemiyle çakışıyor skor silince 15. elde takım ismi değiştirmeyle vs. saçmalıyor sistem tam bakar mısın oraya da
Yani örneğin 15. elden sonra amx_skorduzelt_t komutu skorda ct'ye ekleme yapıyor.

Tabii bakarım. Ama önce diğer arkadaşımızın çözümünü de bir deneyin. Ben de olmazsa diye bu şikayetinizin üstüne yoğunlaşayım.

(25-04-2025, 15:36)pFer Adlı Kullanıcıdan Alıntı:
(25-04-2025, 15:06)john80 Adlı Kullanıcıdan Alıntı: @"pFer"  Hocam sistem çalışıyor ama 15. el sonunda devre sistemiyle çakışıyor skor silince 15. elde takım ismi değiştirmeyle vs. saçmalıyor sistem tam bakar mısın oraya da
Yani örneğin 15. elden sonra amx_skorduzelt_t komutu skorda ct'ye ekleme yapıyor.

Tabii bakarım. Ama önce diğer arkadaşımızın çözümünü de bir deneyin. Ben de olmazsa diye bu şikayetinizin üstüne yoğunlaşayım.

Anladığım kadarıyla 15. elden sonra amx_skordüzelt_t kullanılınca o an CT takımına, amx_skordüzelt_ct kullanılınca o an T takımına ekleme ya da çıkarma yapılıyor bu da karışıklığa yol açıyor. Bunu fixleyen bir çalışma yaptım.
compiled but not tested

PHP Kod:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>

// --- Ayarlanabilir Sabitler ---
#define EOSM_TAG        "[EOSM]"        // Plugin tagı
#define ACCESS_FLAG     ADMIN_BAN       // Komut yetkisi

// --- Global Değişkenler ---
new g_iTerrScore = 0
new g_iCTScore = 0
new g_iRoundCount = 1
new bool:g_bHalfTimeAnnounced = false
new bool:g_bTeamsSwitched = false
new bool:g_bScoreTrackingEnabled = false
new bool:g_bScoreStartedOnce = false

new const szTeamName_Terr[2][] = { "Terrorist", "Counter-Terrorist" }
new const 
szTeamName_CT[2][] = { "Counter-Terrorist", "Terrorist" }

#define GetTeamNameT() (g_bTeamsSwitched ? szTeamName_CT[0] : szTeamName_Terr[0])
#define GetTeamNameCT() (g_bTeamsSwitched ? szTeamName_CT[1] : szTeamName_Terr[1])

public plugin_init() {
    register_plugin("EOSM", "1.2", "ALBERT BROOKS + fernpasha")

    register_clcmd("amx_skor", "Command_Score", 0, "Skorları gösterir")
    register_concmd("amx_skorbaslat", "Command_StartScoring", ACCESS_FLAG, "Skor saymayı başlatır")
    register_concmd("amx_skorsifirla", "Command_ResetScoring", ACCESS_FLAG, "Skoru sıfırlar")
    register_concmd("amx_skorduzelt_t", "Command_AdjustScore_T", ACCESS_FLAG, "<deger> kadar T skorunu düzeltir")
    register_concmd("amx_skorduzelt_ct", "Command_AdjustScore_CT", ACCESS_FLAG, "<deger> kadar CT skorunu düzeltir")

    register_event("HLTV", "Event_RoundStart", "a", "1=0", "2=0")
    register_event("SendAudio", "Event_RoundEnd_Terr", "a", "2=%!MRAD_terwin")
    register_event("SendAudio", "Event_RoundEnd_CT", "a", "2=%!MRAD_ctwin")
    register_event("TextMsg", "Event_GameRestart", "a", "2&#Game_will_restart_in")
}

// --- Komutlar ---
public Command_Score(id, level, cid){
    if (g_iRoundCount == 15) {
        g_bTeamsSwitched = true
    
}

    g_iRoundCount = g_iCTScore + g_iTerrScore + 1

    
if (g_bScoreTrackingEnabled){
        chat_color(0, "!g%s !t%s: !g%d !t%s: !g%d !y------------> !g%d. !yEl oynaniyor!", EOSM_TAG, GetTeamNameT(), g_iTerrScore, GetTeamNameCT(), g_iCTScore, g_iRoundCount)
    } else {
        chat_color(0, "!g%s !ySkor sayma sistemi baslatilmadi. Yetkili tarafindan !g/skorbaslat !ykomutu ile baslatilmalidir.", EOSM_TAG)
    }
    return PLUGIN_HANDLED
}

public 
Command_StartScoring(id, level, cid) {
    if (!cmd_access(id, level, cid, 1))
        return PLUGIN_HANDLED

    
if (g_bScoreStartedOnce) {
        chat_color(id, "!g%s !ySkor sayma sistemi zaten baslatildi! Bu komut tekrar kullanilamaz.", EOSM_TAG)
        return PLUGIN_HANDLED
    
}

    g_bScoreStartedOnce = true
    g_bScoreTrackingEnabled 
= true

    
new admin_name[32]
    get_user_name(id, admin_name, charsmax(admin_name))
    chat_color(0, "!g%s !t%s !yskor sayma sistemini !gaktiflestirdi!y.", EOSM_TAG, admin_name)

    return PLUGIN_HANDLED
}

public 
Command_ResetScoring(id, level, cid) {
    if (!cmd_access(id, level, cid, 1))
        return PLUGIN_HANDLED

    g_iTerrScore 
= 0
    g_iCTScore 
= 0
    g_iRoundCount 
= 1
    g_bHalfTimeAnnounced 
= false
    g_bTeamsSwitched 
= false

    
new admin_name[32]
    get_user_name(id, admin_name, charsmax(admin_name))
    chat_color(0, "!g%s !t%s !yskor tablosunu !gsifirladi!y.", EOSM_TAG, admin_name)

    return PLUGIN_HANDLED
}

public 
Command_AdjustScore_T(id, level, cid) {
    if (!cmd_access(id, level, cid, 2))
        return PLUGIN_HANDLED

    
new arg[8]
    read_argv(1, arg, charsmax(arg))
    new value = str_to_num(arg)

    if (g_bTeamsSwitched)
        g_iCTScore += value
    
else
        g_iTerrScore += value

    
if (g_iTerrScore < 0) g_iTerrScore = 0
    
if (g_iCTScore < 0) g_iCTScore = 0

    chat_color
(0, "!g%s !t%s !yskoru duzeltildi. Yeni skor: !g%d", EOSM_TAG, GetTeamNameT(), g_bTeamsSwitched ? g_iCTScore : g_iTerrScore)
    return PLUGIN_HANDLED
}

public 
Command_AdjustScore_CT(id, level, cid) {
    if (!cmd_access(id, level, cid, 2))
        return PLUGIN_HANDLED

    
new arg[8]
    read_argv(1, arg, charsmax(arg))
    new value = str_to_num(arg)

    if (g_bTeamsSwitched)
        g_iTerrScore += value
    
else
        g_iCTScore += value

    
if (g_iTerrScore < 0) g_iTerrScore = 0
    
if (g_iCTScore < 0) g_iCTScore = 0

    chat_color
(0, "!g%s !t%s !yskoru duzeltildi. Yeni skor: !g%d", EOSM_TAG, GetTeamNameCT(), g_bTeamsSwitched ? g_iTerrScore : g_iCTScore)
    return PLUGIN_HANDLED
}

// --- Round Başlangıcı ---
public Event_RoundStart() {
    if (!g_bScoreTrackingEnabled)
        return

    g_iRoundCount = g_iCTScore + g_iTerrScore + 1

    
if (g_iRoundCount == 16 && !g_bHalfTimeAnnounced) {
        g_bHalfTimeAnnounced = true
        chat_color
(0, "!g%s !yIlk devre !tbitti! !yToplam Skor: !t%s: !g%d !t%s: !g%d", EOSM_TAG, GetTeamNameT(), g_iTerrScore, GetTeamNameCT(), g_iCTScore)
    }

    chat_color(0, "!g%s !t%s: !g%d !t%s: !g%d !y------------> !g%d. !yEl oynaniyor!", EOSM_TAG, GetTeamNameT(), g_iTerrScore, GetTeamNameCT(), g_iCTScore, g_iRoundCount)
}

// --- Round Sonu Kazanan Takım Tespiti ---
public Event_RoundEnd_Terr() {
    if (!g_bScoreTrackingEnabled)
        return

    if (g_bTeamsSwitched)
        g_iCTScore++
    else
        g_iTerrScore++

    CheckGameEnd()
}

public 
Event_RoundEnd_CT() {
    if (!g_bScoreTrackingEnabled)
        return

    if (g_bTeamsSwitched)
        g_iTerrScore++
    else
        g_iCTScore++

    CheckGameEnd()
}

// --- Oyun Bitiş Kontrolü ---
public CheckGameEnd() {
    if (g_iRoundCount == 15) {
        g_bTeamsSwitched = true
    
}

    if (g_iTerrScore == 15 && g_iCTScore == 15) {
        for (new i = 0; i < 3; i++)
            chat_color(0, "!g%s !yMac !tberabere !ybitti! Toplam skor: !g%d !y-- !g%d", EOSM_TAG, g_iCTScore, g_iTerrScore)

        g_bScoreTrackingEnabled = false
        set_cvar_num
("sv_restart", 5)
    }
    else if (g_iTerrScore == 16) {
        for (new i = 0; i < 3; i++)
            chat_color(0, "!g%s !t%s !ytakimi maci !tkazandi!y! Toplam skor: !g%d !y-- !g%d", EOSM_TAG, GetTeamNameT(), g_iTerrScore, g_iCTScore)

        g_bScoreTrackingEnabled = false
        set_cvar_num
("sv_restart", 5)
    }
    else if (g_iCTScore == 16) {
        for (new i = 0; i < 3; i++)
            chat_color(0, "!g%s !t%s !ytakimi maci !tkazandi!y! Toplam skor: !g%d !y-- !g%d", EOSM_TAG, GetTeamNameCT(), g_iCTScore, g_iTerrScore)

        g_bScoreTrackingEnabled = false
        set_cvar_num
("sv_restart", 5)
    }
}

public 
Event_GameRestart() {
    // Restart olduğunda skor değişmeyecek
}

// --- Renkli Yazı Fonksiyonu ---
stock chat_color(const id, const input[], any:...) {
    new count = 1, players[32]
    static msg[191]
    vformat(msg, 190, input, 3)

    replace_all(msg, 190, "!g", "^4")
    replace_all(msg, 190, "!y", "^1")
    replace_all(msg, 190, "!t", "^3")
    replace_all(msg, 190, "!team2", "^0")

    if (id) players[0] = id; else get_players(players, count, "ch")
    for (new i = 0; i < count; i++) {
        if (is_user_connected(players[i])) {
            message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
            write_byte(players[i])
            write_string(msg)
            message_end()
        }
    }
} 
Advanced Plug-in & Animated Model Tasarımı
Son Düzenleme: 25-04-2025, 15:43, Düzenleyen: fernpasha
RE: Score Sistemi Elle Düzeltme
@"pFer" Hocam kodsal problem düzeldi sadece tek eksik kaldı o da 15. elden sonra skoru düzeltiyoruz ama sadece TAKIM İSMİ eskide kalıyor. Yani 15. elden sonra ct takımının skorunu düzeltiyorum ama say olarak terrorist takımının skoru düzeltildi yazıyor. Skor ve kodsal olarak doğru sadece takım ismi.
RE: Score Sistemi Elle Düzeltme
@john80 hocam selamlar.
Şehirdışına çıktım. Bu sebepten verilerime pazartesi gününe kadar erişimim yok. Yardımcı olmaya çalışırken tüm çalışmalarımın *not compiled & tested* olarak işaretleneceğini bilin. Konumuza dönecek olursak isteğinizi uygulayıp dönüş yapacağım.
Advanced Plug-in & Animated Model Tasarımı
RE: Score Sistemi Elle Düzeltme
@"pFer" Ben deniyorum senin yerine hocam hiçbir problem yok sen ayarlayıp atarsan bana yeterli.
RE: Score Sistemi Elle Düzeltme
(25-04-2025, 18:21)john80 Adlı Kullanıcıdan Alıntı: @"pFer" Ben deniyorum senin yerine hocam hiçbir problem yok sen ayarlayıp atarsan bana yeterli.

Tam kod olarak vereceğim ancak say kısımlarını sonradan değiştirmişsiniz. Bu değişiklikleri bir yere kaydedin. Tam eklentiyi paylaştıktan sonra tekrar değiştirmeniz gerekebilir.

(25-04-2025, 18:21)john80 Adlı Kullanıcıdan Alıntı: @"pFer" Ben deniyorum senin yerine hocam hiçbir problem yok sen ayarlayıp atarsan bana yeterli.

Bunu dener misiniz?

PHP Kod:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>

// === Ayarlanabilir Sabitler ===
#define EOSM_TAG        "[EOSM]"        // Plugin tagı
#define ACCESS_FLAG     ADMIN_BAN       // Komut yetkisi (örnek: ADMIN_KICK)

// === Global Değişkenler ===
new g_iTerrScore = 0
new g_iCTScore = 0
new g_iRoundCount = 1
new bool:g_bHalfTimeAnnounced = false
new bool:g_bTeamsSwitched = false
new bool:g_bScoreTrackingEnabled = false
new bool:g_bScoreStartedOnce = false

new const szTeamName_Terr[2][] = { "Terrorist", "Counter-Terrorist" }
new const 
szTeamName_CT[2][] = { "Counter-Terrorist", "Terrorist" }

#define GetTeamNameT() (g_bTeamsSwitched ? szTeamName_CT[0] : szTeamName_Terr[0])
#define GetTeamNameCT() (g_bTeamsSwitched ? szTeamName_CT[1] : szTeamName_Terr[1])

public plugin_init() {
    register_plugin("EOSM", "1.2", "ALBERT BROOKS + fernpasha")

    register_clcmd("amx_skor", "Command_Score", 0, "Skorları gösterir")
    register_concmd("amx_skorbaslat", "Command_StartScoring", ACCESS_FLAG, "Skor saymayı başlatır")
    register_concmd("amx_skorsifirla", "Command_ResetScoring", ACCESS_FLAG, "Skoru sıfırlar")
    register_concmd("amx_skorduzelt_t", "Command_AdjustScore_T", ACCESS_FLAG, "<deger> kadar T skorunu düzeltir")
    register_concmd("amx_skorduzelt_ct", "Command_AdjustScore_CT", ACCESS_FLAG, "<deger> kadar CT skorunu düzeltir")

    register_event("HLTV", "Event_RoundStart", "a", "1=0", "2=0")
    register_event("SendAudio", "Event_RoundEnd_Terr", "a", "2=%!MRAD_terwin")
    register_event("SendAudio", "Event_RoundEnd_CT", "a", "2=%!MRAD_ctwin")
    register_event("TextMsg", "Event_GameRestart", "a", "2&#Game_will_restart_in")
}

// === Komutlar ===

public Command_Score(id, level, cid){
    if (g_iRoundCount == 15)
        g_bTeamsSwitched = true;

    g_iRoundCount = g_iCTScore + g_iTerrScore + 1

    
if (g_bScoreTrackingEnabled){
        chat_color(0, "!g%s !t%s: !g%d !t%s: !g%d !y------------> !g%d. !yEl oynaniyor!", EOSM_TAG, GetTeamNameT(), g_iTerrScore, GetTeamNameCT(), g_iCTScore, g_iRoundCount)
    } else {
        chat_color(0, "!g%s !ySkor sayma sistemi baslatilmadi. Yetkili tarafindan !g/skorbaslat !ykomutu ile baslatilmalidir.", EOSM_TAG)
    }
    return PLUGIN_HANDLED
}

public 
Command_StartScoring(id, level, cid) {
    if (!cmd_access(id, level, cid, 1))
        return PLUGIN_HANDLED;

    if (g_bScoreStartedOnce) {
        chat_color(id, "!g%s !ySkor sayma sistemi zaten baslatildi! Bu komut tekrar kullanilamaz.", EOSM_TAG)
        return PLUGIN_HANDLED;
    }

    g_bScoreStartedOnce = true;
    g_bScoreTrackingEnabled = true;

    new admin_name[32]
    get_user_name(id, admin_name, charsmax(admin_name))
    chat_color(0, "!g%s !t%s !yskor sayma sistemini !gaktiflestirdi!y.", EOSM_TAG, admin_name)

    return PLUGIN_HANDLED
}

public 
Command_ResetScoring(id, level, cid) {
    if (!cmd_access(id, level, cid, 1))
        return PLUGIN_HANDLED;

    g_iTerrScore = 0
    g_iCTScore 
= 0
    g_iRoundCount 
= 1
    g_bHalfTimeAnnounced 
= false
    g_bTeamsSwitched 
= false

    
new admin_name[32]
    get_user_name(id, admin_name, charsmax(admin_name))
    chat_color(0, "!g%s !t%s !yskor tablosunu !gsifirladi!y.", EOSM_TAG, admin_name)

    return PLUGIN_HANDLED
}

public 
Command_AdjustScore_T(id, level, cid) {
    if (!cmd_access(id, level, cid, 2))
        return PLUGIN_HANDLED;

    new arg[8];
    read_argv(1, arg, charsmax(arg));
    new value = str_to_num(arg);

    if (g_bTeamsSwitched)
        g_iCTScore += value;
    else
        g_iTerrScore += value;

    if (g_iTerrScore < 0) g_iTerrScore = 0;
    if (g_iCTScore < 0) g_iCTScore = 0;

    chat_color(0, "!g%s !tTerrorist !yskoru duzeltildi. Yeni skor: !g%d", EOSM_TAG, g_bTeamsSwitched ? g_iCTScore : g_iTerrScore)
    return PLUGIN_HANDLED;
}

public 
Command_AdjustScore_CT(id, level, cid) {
    if (!cmd_access(id, level, cid, 2))
        return PLUGIN_HANDLED;

    new arg[8];
    read_argv(1, arg, charsmax(arg));
    new value = str_to_num(arg);

    if (g_bTeamsSwitched)
        g_iTerrScore += value;
    else
        g_iCTScore += value;

    if (g_iTerrScore < 0) g_iTerrScore = 0;
    if (g_iCTScore < 0) g_iCTScore = 0;

    chat_color(0, "!g%s !tCounter-Terrorist !yskoru duzeltildi. Yeni skor: !g%d", EOSM_TAG, g_bTeamsSwitched ? g_iTerrScore : g_iCTScore)
    return PLUGIN_HANDLED;
}

// === Event Fonksiyonları ===

public Event_RoundStart() {
    if (!g_bScoreTrackingEnabled)
        return;

    g_iRoundCount = g_iCTScore + g_iTerrScore + 1;

    if (g_iRoundCount == 16 && !g_bHalfTimeAnnounced) {
        g_bHalfTimeAnnounced = true;
        chat_color(0, "!g%s !yIlk devre !tbitti! !yToplam Skor: !t%s: !g%d !t%s: !g%d", EOSM_TAG, GetTeamNameT(), g_iTerrScore, GetTeamNameCT(), g_iCTScore)
    }

    chat_color(0, "!g%s !t%s: !g%d !t%s: !g%d !y------------> !g%d. !yEl oynaniyor!", EOSM_TAG, GetTeamNameT(), g_iTerrScore, GetTeamNameCT(), g_iCTScore, g_iRoundCount)
}

public 
Event_RoundEnd_Terr() {
    if (!g_bScoreTrackingEnabled)
        return;

    if (g_bTeamsSwitched)
        g_iCTScore++
    else
        g_iTerrScore++

    CheckGameEnd()
}

public 
Event_RoundEnd_CT() {
    if (!g_bScoreTrackingEnabled)
        return;

    if (g_bTeamsSwitched)
        g_iTerrScore++
    else
        g_iCTScore++

    CheckGameEnd()
}

public 
CheckGameEnd() {
    if (g_iRoundCount == 15)
        g_bTeamsSwitched = true;

    if (g_iTerrScore == 15 && g_iCTScore == 15) {
        for (new i = 0; i < 3; i++)
            chat_color(0, "!g%s !yMac !tberabere !ybitti! Toplam skor: !g%d !y-- !g%d", EOSM_TAG, g_iCTScore, g_iTerrScore)
        g_bScoreTrackingEnabled = false
        set_cvar_num
("sv_restart", 5)
    }
    else if (g_iTerrScore == 16) {
        for (new i = 0; i < 3; i++)
            chat_color(0, "!g%s !t%s !ytakimi maci !tkazandi!y! Toplam skor: !g%d !y-- !g%d", EOSM_TAG, GetTeamNameT(), g_iTerrScore, g_iCTScore)
        g_bScoreTrackingEnabled = false
        set_cvar_num
("sv_restart", 5)
    }
    else if (g_iCTScore == 16) {
        for (new i = 0; i < 3; i++)
            chat_color(0, "!g%s !t%s !ytakimi maci !tkazandi!y! Toplam skor: !g%d !y-- !g%d", EOSM_TAG, GetTeamNameCT(), g_iCTScore, g_iTerrScore)
        g_bScoreTrackingEnabled = false
        set_cvar_num
("sv_restart", 5)
    }
}

public 
Event_GameRestart() {
    // Restart ile skor sıfırlanmaz
}

// === Renkli Chat Yardımcı Fonksiyonu ===

stock chat_color(const id, const input[], any:...) {
    new count = 1, players[32]
    static msg[191]
    vformat(msg, 190, input, 3)

    replace_all(msg, 190, "!g", "^4")
    replace_all(msg, 190, "!y", "^1")
    replace_all(msg, 190, "!t", "^3")
    replace_all(msg, 190, "!team2", "^0")

    if (id) players[0] = id; else get_players(players, count, "ch")
    for (new i = 0; i < count; i++) {
        if (is_user_connected(players[i])) {
            message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
            write_byte(players[i])
            write_string(msg)
            message_end()
        }
    }
} 
Advanced Plug-in & Animated Model Tasarımı
Son Düzenleme: 25-04-2025, 18:33, Düzenleyen: fernpasha

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Konuyu Okuyanlar: 1 Ziyaretçi
Task