Discord sunucumuz açılmıştır, hepinizi bekleriz

https://discord.gg/43gGDQe6tS

Level istek

Eklenti sorunlarınız ve özel eklenti istekleriniz

Moderatör: Moderatörler

Kullanıcı avatarı

Konu Sahibi
omar
Mesajlar: 694
Kayıt: Pzt Haz 11, 2018 3:03 pm
Konum: Türkiye
Server Ip/DNS: ImparatorCS:GO FUN
Clan İsmi: ImparatorCS

Level istek

Mesaj gönderen omar »

Merhaba, bu eklentide T & CT takımına ayrı modeller vermesini ve level'e göre şu şekilde model vermesini istiyorum.
  • Level 1 = T & CT için ayrı bir model
    Level 5 = T & CT için ayrı bir model
    Level 15 = T & CT için ayrı bir model
    Level 25 = T & CT için ayrı bir model
    Level 40 = T & CT için ayrı bir model
    Level 55 = T & CT için ayrı bir model
    Level 60 = T & CT için ayrı bir model
    Level 65 = T & CT için ayrı bir model
    Level 70 = T & CT için ayrı bir model
Model Adları
  • 1. Model T = tsw_teamt_1
  • 1. Model CT = tsw_teamct_1
bu şekilde 8'e kadar olmasını istiyorum.
Yardımlarınız için teşekkür ederim.

Kod: Tümünü seç

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <nvault> 
#include <cstrike>
#include <hamsandwich>

/*----------------------------------------------------------------------------------------------*/
#define PLUGIN "Hesapli Level Sistemi"
#define VERSION "v.1"
#define AUTHOR "Anilcan , -SwindLer."
/*----------------------------------------------------------------------------------------------*/
#define TAG "World War I"
/*----------------------------------------------------------------------------------------------*/
#define ENUM 3 
#define MAX_RANKS 70
/*----------------------------------------------------------------------------------------------*/
new const model1[] = "arctic"
new const model2[] = "armadillo_fort"
new const model3[] = "black_ast"
new const model4[] = "Cloaked_fort"
new const model5[] = "Raven_fort" 
new const model6[] = "Moisty_fort"
new const model7[] = "Marsh_fort"
new const model8[] = "Thanos_fort"
new const Si[] = { "pubg/effects/locked_sound.wav" }
new const yasakli_semboller[][] ={
    "@",
    "*",
    "/",
    "%",
    ",",
    ".",
    "ü",
    "?",
    "+"
}
enum _: szData {
    szRankName[ 32 ],
    szRankXp
}
new const szRanklar[ ][ szData ] = {
    { "[ LEVEL 1 ]", 0 },
    { "[ LEVEL 2 ]", 100 },
    { "[ LEVEL 3 ]", 200 },
    { "[ LEVEL 4 ]", 300 },
    { "[ LEVEL 5 ]", 400 },
    { "[ LEVEL 6 ]", 500 },
    { "[ LEVEL 7 ]", 600 },
    { "[ LEVEL 8 ]", 700 },
    { "[ LEVEL 9 ]", 800 },
    { "[ LEVEL 10 ]", 1500 },
    { "[ LEVEL 11 ]", 3000 },
    { "[ LEVEL 12 ]", 4500 },
    { "[ LEVEL 13 ]", 7000 },
    { "[ LEVEL 14 ]", 8500 },
    { "[ LEVEL 15 ]", 10000 },
    { "[ LEVEL 16 ]", 10500 },
    { "[ LEVEL 17 ]", 12000 },
    { "[ LEVEL 18 ]", 13500 },
    { "[ LEVEL 19 ]", 15000 },
    { "[ LEVEL 20 ]", 18000 },
    { "[ LEVEL 21 ]", 21000 },
    { "[ LEVEL 22 ]", 24000 },
    { "[ LEVEL 23 ]", 27000 },
    { "[ LEVEL 24 ]", 30000 },
    { "[ LEVEL 25 ]", 33000 },
    { "[ LEVEL 26 ]", 36000 },
    { "[ LEVEL 27 ]", 39000 },
    { "[ LEVEL 28 ]", 42000 },
    { "[ LEVEL 29 ]", 45000 },
    { "[ LEVEL 30 ]", 48000 },
    { "[ LEVEL 31 ]", 52000 },
    { "[ LEVEL 32 ]", 56000 },
    { "[ LEVEL 33 ]", 60000 },
    { "[ LEVEL 34 ]", 64000 },
    { "[ LEVEL 35 ]", 68000 },
    { "[ LEVEL 36 ]", 72000 },
    { "[ LEVEL 37 ]", 76000 },
    { "[ LEVEL 38 ]", 80000 },
    { "[ LEVEL 39 ]", 84000 },
    { "[ LEVEL 40 ]", 88000 },
    { "[ LEVEL 41 ]", 92000 },
    { "[ LEVEL 42 ]", 96000 },
    { "[ LEVEL 43 ]", 100000 },
    { "[ LEVEL 44 ]", 104000 },
    { "[ LEVEL 45 ]", 108000 },
    { "[ LEVEL 46 ]", 112000 },
    { "[ LEVEL 47 ]", 116000 },
    { "[ LEVEL 48 ]", 120000 },
    { "[ LEVEL 49 ]", 124000 },
    { "[ LEVEL 50 ]", 128000 },
    { "[ LEVEL 51 ]", 132000 },
    { "[ LEVEL 52 ]", 136000 },
    { "[ LEVEL 53 ]", 140000 },
    { "[ LEVEL 54 ]", 144000 },
    { "[ LEVEL 55 ]", 148000 },
    { "[ LEVEL 56 ]", 152000 },
    { "[ LEVEL 57 ]", 156000 },
    { "[ LEVEL 58 ]", 160000 },
    { "[ LEVEL 59 ]", 164000 },
    { "[ LEVEL 60 ]", 168000 },
    { "[ LEVEL 61 ]", 172000 },
    { "[ LEVEL 62 ]", 174000 },
    { "[ LEVEL 63 ]", 178000 },
    { "[ LEVEL 64 ]", 182000 },
    { "[ LEVEL 65 ]", 186000 },
    { "[ LEVEL 66 ]", 190000 },
    { "[ LEVEL 67 ]", 194000 },
    { "[ LEVEL 68 ]", 198000 },
    { "[ LEVEL 69 ]", 222000 },
    { "[ LEVEL 70 ]", 226000 }
}
enum _: Level {
    g_LEVEL,
    g_EXP,
    g_TOPLAMKILL
}

new bmModelSecim[33];
new const bmBicakModeller[][][] = {
    {"v_knife.mdl","p_knife.mdl"},
    {"v_knife.mdl","p_knife.mdl"},
    {"v_knife.mdl","p_knife.mdl"},
    {"v_knife.mdl","p_knife.mdl"},
    {"v_knife.mdl","p_knife.mdl"},
    {"v_knife.mdl","p_knife.mdl"},
    {"v_knife.mdl","p_knife.mdl"},
    {"v_knife.mdl","p_knife.mdl"}
}

/*-----------------------------------------------------------------------------------------------*/
/*-----------------------------------------{/-Newler\-}------------------------------------------*/
/*-----------------------------------------------------------------------------------------------*/

new g_Level[ 33 ][ Level ]

new g_username[ 33 ][ 50 ], k_username[ 33 ][ 50 ], sifre[ 33 ][ 50 ], g_sifre[ 33 ][ 50 ],username[ 33 ][ 50], k_sifre[ 33 ][ 50 ];

new g_login, g_register , g_vault,g_szName[33][32],g_hud,g_killxp,g_deathxp

#define ACCESS_LEVEL    ADMIN_RESERVATION
#define ADMIN_LISTEN    ADMIN_ALL

new message[192]
new sayText
new teamInfo
new maxPlayers

new g_MessageColor
new g_NameColor
new g_AdminListen

new strName[191]
new strText[191]
new alive[11]

public plugin_init() 
{
    register_plugin(PLUGIN, VERSION, AUTHOR);
    
    register_clcmd("say /hesap", "menu_ac" );
    register_clcmd("say /kostummenu", "beBM5" );
    register_clcmd("say /kostumbilgi","modelbilgi")
    register_clcmd( "KullaniciAdi_Sec", "user_name2" );
    register_clcmd( "Sifre_Yaz", "sifre_sec" );
    register_clcmd( "Kullanici_Adi", "user_name" );
    register_clcmd( "Sifreni_Gir", "sifrexd" );
    
    register_event( "DeathMsg" , "olunce" , "a" );
    
    RegisterHam(Ham_TakeDamage, "player", "beTD");
    RegisterHam(Ham_Spawn, "player", "bePS", 1);
    register_event("CurWeapon", "beWM", "be", "1=1");
    
    g_hud = CreateHudSyncObj( );
    g_killxp = register_cvar( "csa_killxp", "55" );
    g_deathxp = register_cvar( "csa_deathxp", "15" )
    
    g_MessageColor = register_cvar ("amx_color", "2") // Message colors: [1] Default Yellow, [2] Green, [3] White, [4] Blue, [5] Red
    
    g_NameColor = register_cvar ("amx_namecolor", "6") // Name colors: [1] Default Yellow, [2] Green, [3] White, [4] Blue, [5] Red, [6] Team-color
    
    g_AdminListen = register_cvar ("amx_listen", "1") // Set whether admins see or not all messages (Alive, dead and team-only)
    
    
    sayText = get_user_msgid ("SayText")
    teamInfo = get_user_msgid ("TeamInfo")
    maxPlayers = get_maxplayers()
    
    
    register_message (sayText, "avoid_duplicated")
    
    register_clcmd ("amx_color", "set_color", ACCESS_LEVEL, "<color>")
    register_clcmd ("amx_namecolor", "set_name_color", ACCESS_LEVEL, "<color>")
    register_clcmd ("amx_listen", "set_listen", ACCESS_LEVEL, "<1 | 0>")
    
    register_clcmd ("say", "hook_say");
}
public beTD(bmVictim,bmInfc,bmAttacker, Float:bmHasar,bmHasarTipi){
    if(bmVictim != bmAttacker){
        if(bmModelSecim[bmAttacker] != 0){
            if(get_pdata_int(bmVictim, 75) == HIT_HEAD){
                SetHamParamFloat(4,bmHasar+(float(bmModelSecim[bmAttacker]*5)*2.0));
            }
            else{
                SetHamParamFloat(4,bmHasar+float(bmModelSecim[bmAttacker]*5));
            }
        }
    }    
}
public bePS(bmID){
    if(bmModelSecim[bmID] != 0 && is_user_alive(bmID)){
        set_pev(bmID,pev_health,pev(bmID,pev_health)+float(bmModelSecim[bmID]*5));
    }
}
public beWM(bmID) {
    new bmSilahID= get_user_weapon(bmID);
    if(bmModelSecim[bmID] != 0 && bmSilahID == CSW_KNIFE){
        new bmModel[96]
        formatex(bmModel,charsmax(bmModel),"models/%s",bmBicakModeller[bmModelSecim[bmID]-1][0][0]);
        if(file_exists(bmModel)){
            set_pev(bmID,pev_viewmodel2,bmModel);
        }
        formatex(bmModel,charsmax(bmModel),"models/%s",bmBicakModeller[bmModelSecim[bmID]-1][1][0]);
        if(file_exists(bmModel)){
            set_pev(bmID,pev_weaponmodel2,bmModel);
        }
    }
}
public plugin_precache(){
    new bmModel[96]
    for(new i; i < sizeof(bmBicakModeller); i++){
        formatex(bmModel,charsmax(bmModel),"models/%s",bmBicakModeller[i][0][0]);
        if(file_exists(bmModel)){
            precache_model(bmModel);
        }
        formatex(bmModel,charsmax(bmModel),"models/%s",bmBicakModeller[i][1][0]);
        if(file_exists(bmModel)){
            precache_model(bmModel);
        }
    }
    
    precache_model("models/player/arctic/arctic.mdl"),precache_model("models/player/armadillo_fort/armadillo_fort.mdl"),precache_model("models/player/black_ast/black_ast.mdl"),
    precache_model("models/player/Cloaked_fort/Cloaked_fort.mdl"),precache_model("models/player/Raven_fort/Raven_fort.mdl"),precache_model("models/player/Moisty_fort/Moisty_fort.mdl"),
    precache_model("models/player/Marsh_fort/Marsh_fort.mdl"),precache_model("models/player/Thanos_fort/Thanos_fort.mdl"),precache_sound(Si)
}
public avoid_duplicated (msgId, msgDest, receiver)
{
    return PLUGIN_HANDLED
}
public modelbilgi(id){
    new szLine[248]
    new const filename[] = "addons/amxmodx/configs/kostummenu.txt"
    new maxlines,txtlen;
    maxlines = file_size(filename,1);
    static motd[99991]
    new len 
    for(new line;line<maxlines;line++) 
    {
        read_file(filename,line,szLine,247,txtlen)
        
        len += formatex(motd[len],sizeof motd - 1 - len,"%s",szLine) 
    }
    show_motd(id,motd,"WB[D]iyo")
    return PLUGIN_CONTINUE 
}
public beBM5(id) {
    new menuz;
    static amenu[512];
    formatex(amenu,charsmax(amenu),"\r[ \wImparatorCS \r] \d~ \wKostum Menusu^n\d- /Kostumbilgi Yazarak Kostumlere Bakabilirsin.");
    menuz = menu_create(amenu,"beBM5_devam");
    formatex(amenu,charsmax(amenu),"\yDefault \wKostum \r[ \d0-Level\r ] %s",bmModelSecim[id] == 1 ? "\d[AKTIF]":"");
    menu_additem(menuz,amenu,"1");
    formatex(amenu,charsmax(amenu),"\yArmadillo \wKostum \r[ \d10-Level\r ] %s",bmModelSecim[id] == 2 ? "\d[AKTIF]":"");
    menu_additem(menuz,amenu,"2");
    formatex(amenu,charsmax(amenu),"\yBlack Astronaut \wKostum \r[ \d15-Level\r ] %s",bmModelSecim[id] == 3 ? "\d[AKTIF]":"");
    menu_additem(menuz,amenu,"3");
    formatex(amenu,charsmax(amenu),"\yCloaked Star \wKostum \r[ \d20-Level\r ] %s",bmModelSecim[id] == 4 ? "\d[AKTIF]":"");
    menu_additem(menuz,amenu,"4");
    formatex(amenu,charsmax(amenu),"\yRaven \wKostum \r[ \d40-Level\r ] %s",bmModelSecim[id] == 5 ? "\d[AKTIF]":"");
    menu_additem(menuz,amenu,"5");
    formatex(amenu,charsmax(amenu),"\yMoisty Merman \wKostum \r[ \d50-Level\r ] %s",bmModelSecim[id] == 6 ? "\d[AKTIF]":"");
    menu_additem(menuz,amenu,"6");
    formatex(amenu,charsmax(amenu),"\yMarshmallow \wKostum \r[ \d60-Level\r ] %s",bmModelSecim[id] == 7 ? "\d[AKTIF]":"");
    menu_additem(menuz,amenu,"7");
    formatex(amenu,charsmax(amenu),"\yThanos \wKostum \r[ \d70-Level\r ] %s",bmModelSecim[id] == 8 ? "\d[AKTIF]":"");
    menu_additem(menuz,amenu,"8");
    
    menu_setprop(menuz,MPROP_EXITNAME,"\rCikis");
    menu_setprop(menuz,MPROP_EXIT,MEXIT_ALL);
    menu_display(id,menuz,0);
}
public beBM5_devam(id,menu,item){
    if(item == MENU_EXIT){
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }
    new access,callback,data[6],iname[64];
    menu_item_getinfo(menu,item,access,data,5,iname,63,callback);
    new key = str_to_num(data);
    switch(key){
        case 1 : {
            if(bmModelSecim[id] != 1){
                cs_set_user_model(id,model1)
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBasariyla !n[!tDefault!n] !gKostumunu Kusandin.!")
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBicak modelin degisti ve ek hasarin !n[!t%i!n] !gartti.!",bmModelSecim[id]*5);
                bmModelSecim[id] = 1;
            }
            else
            {
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gZaten Bu Kostume Sahipsin.!")
                beBM5(id);
            }
        }
        case 2 : {
            if(g_Level[ id ][ g_EXP ] >= 1500 && bmModelSecim[id] != 2){
                cs_set_user_model(id,model2)
                renkli_yazi(id,"!n[ !ImparatorCS !n] !gBasariyla !n[!tArmadillo!n] !gKostumunu Kusandin.!")
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBicak modelin degisti ve ek hasarin !n[!t%i!n] !gartti.!",bmModelSecim[id]*5);
                bmModelSecim[id] = 2;
            }
            else
            {
                renkli_yazi(id,"!n[ !tMaxFly  !n] !n[!tArmadillo!n] !gKostumunu Giymek Icin Seviyen Yeterli Degil.!")
                emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
                beBM5(id)
            }
        }
        case 3 : {
            if(g_Level[ id ][ g_EXP ] >= 10000 && bmModelSecim[id] != 3){
                cs_set_user_model(id,model3)
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBasariyla !n[!tBlack Astronaut!n] !gKostumunu Kusandin.!")
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBicak modelin degisti ve ek hasarin !n[!t%i!n] !gartti.!",bmModelSecim[id]*5);
                bmModelSecim[id] = 3;
            }
            else
            {
                renkli_yazi(id,"!n[ !tImparatorCS !n] !n[!tBlack Astronaut!n] !gKostumunu Giymek Icin Seviyen Yeterli Degil.!")
                emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
                beBM5(id);
            }
        }
        case 4 : {
            if(g_Level[ id ][ g_EXP ] >= 18000 && bmModelSecim[id] != 4){
                cs_set_user_model(id,model4)
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBasariyla !n[!tCloaked Star!n] !gKostumunu Kusandin.!")
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBicak modelin degisti ve ek hasarin !n[!t%i!n] !gartti.!",bmModelSecim[id]*5);
                bmModelSecim[id] = 4;
            }
            else
            {
                renkli_yazi(id,"!n[ !tImparatorCS !n] !n[!tCloaked Star!n] !gKostumunu Giymek Icin Seviyen Yeterli Degil.!")
                emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
                beBM5(id);
            }
        }
        case 5 : {
            if(g_Level[ id ][ g_EXP ] >= 88000 && bmModelSecim[id] != 5){
                cs_set_user_model(id,model5)
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBasariyla !n[!tRaven!n] !gKostumunu Kusandin.!")
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBicak modelin degisti ve ek hasarin !n[!t%i!n] !gartti.!",bmModelSecim[id]*5);
                bmModelSecim[id] = 5;
            }
            else
            {
                renkli_yazi(id,"!n[ !tImparatorCS !n] !n[!tRaven!n] !gKostumunu Giymek Icin Seviyen Yeterli Degil.!")
                emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
                beBM5(id);
            }
        }
        case 6 : {
            if(g_Level[ id ][ g_EXP ] >= 128000 && bmModelSecim[id] != 6){
                cs_set_user_model(id,model6)
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBasariyla !n[!tMoisty Merman!n] !gKostumunu Kusandin.!")
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBicak modelin degisti ve ek hasarin !n[!t%i!n] !gartti.!",bmModelSecim[id]*5);
                bmModelSecim[id] = 6;
            }
            else
            {
                renkli_yazi(id,"!n[ !tImparatorCS !n] !n[!tMoisty Merman!n] !gKostumunu Giymek Icin Seviyen Yeterli Degil.!")
                emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
                beBM5(id);
            }
        }
        case 7 : {
            if(g_Level[ id ][ g_EXP ] >= 168000 && bmModelSecim[id] != 7){
                cs_set_user_model(id,model7)
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBasariyla !n[!tMarshmallow!n] !gKostumunu Kusandin.!")
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBicak modelin degisti ve ek hasarin !n[!t%i!n] !gartti.!",bmModelSecim[id]*5);
                bmModelSecim[id] = 7;
            }
            else
            {
                renkli_yazi(id,"!n[ !tImparatorCS !n] !n[!tMarshmallow!n] !gKostumunu Giymek Icin Seviyen Yeterli Degil.!")
                emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
                beBM5(id);
            }
        }
        case 8 : {
            if(g_Level[ id ][ g_EXP ] >= 226000 && bmModelSecim[id] != 8){
                cs_set_user_model(id,model8)
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBasariyla !n[!tThanos!n] !gKostumunu Kusandin.!")
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBicak modelin degisti ve ek hasarin !n[!t%i!n] !gartti.!",bmModelSecim[id]*5);
                bmModelSecim[id] = 8;
            }
            else
            {
                renkli_yazi(id,"!n[ !tImparatorCS !n] !n[!tThanos!n] !gKostumunu Giymek Icin Seviyen Yeterli Degil.!")
                emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
                beBM5(id);
            }
        }
    }
    menu_destroy(menu);
    return PLUGIN_HANDLED;
}



public hook_say(id)
{
    read_args (message, 191)
    remove_quotes (message)
    
    if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, "")) // Ignores Admin Hud Messages, Admin Slash commands, 
        // Gungame commands and empty messages
    return PLUGIN_CONTINUE
    
    
    new name[32]
    get_user_name (id, name, 31)
    
    new bool:admin = false
    
    if (get_user_flags(id) & ACCESS_LEVEL)
        admin = true
    
    
    new isAlive
    
    if (is_user_alive (id))
    {
        isAlive = 1
        alive = "^x01"
    }
    else
    {
        isAlive = 0
        alive = "^x01*OLU* "
    }
    
    static color[10]
    
    
    if (admin)
    {
        // Name
        switch (get_pcvar_num (g_NameColor))
        {
            case 1:
                format (strName, 191, "^x04%s %s%s", szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ], alive, name)
            
            case 2:
                format (strName, 191, "^x04%s %s^x04%s", szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ], alive, name)
            
            case 3:
            {
                color = "SPECTATOR"
                format (strName, 191, "^x04%s %s^x03%s", szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ], alive, name)
            }
            
            case 4:
            {
                color = "CT"
                format (strName, 191, "^x04%s %s^x03%s", szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ], alive, name)
            }
            
            case 5:
            {
                color = "TERRORIST"
                format (strName, 191, "^x04%s %s^x03%s", szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ], alive, name)
            }
            
            case 6:
            {
                get_user_team (id, color, 9)
                
                format (strName, 191, "^x04%s %s^x03%s", szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ], alive, name)
            }
        }
        
        
        // Message
        switch (get_pcvar_num (g_MessageColor))
        {
            case 1:    // Yellow
                format (strText, 191, "%s", message)
            
            case 2:    // Green
                format (strText, 191, "^x04%s", message)
            
            case 3:    // White
            {
                copy (color, 9, "SPECTATOR")
                format (strText, 191, "^x03%s", message)
            }
            
            case 4:    // Blue
            {
                copy (color, 9, "CT")
                format (strText, 191, "^x03%s", message)
            }
            
            case 5:    // Red
            {
                copy (color, 9, "TERRORIST")
                format (strText, 191, "^x03%s", message)
            }
        }
    }
    
    else     // Player is not admin. Team-color name : Yellow message
    {
        get_user_team (id, color, 9)
        
        format (strName, 191, "^x04%s %s^x03%s", szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ], alive, name)
        
        format (strText, 191, "%s", message)
    }
    
    format (message, 191, "%s^x01 :  %s", strName, strText)
    
    sendMessage (color, isAlive, admin)    // Sends the colored message
    
    return PLUGIN_CONTINUE
}

public set_color (id, level, cid){
    if (!cmd_access(id, level, cid, 2))
        return PLUGIN_HANDLED
    
    new arg[1], newColor
    read_argv (1, arg, 1)
    
    newColor = str_to_num (arg)
    
    if (newColor >= 1 && newColor <= 5)
    {
        set_cvar_num ("amx_color", newColor)
        set_pcvar_num (g_MessageColor, newColor)
        
        if (get_pcvar_num (g_NameColor) != 1 &&
        ((newColor == 3 &&  get_pcvar_num (g_NameColor) != 3)
        || (newColor == 4 &&  get_pcvar_num (g_NameColor) != 4)
        || (newColor == 5 &&  get_pcvar_num (g_NameColor) != 5))){
            set_cvar_num ("amx_namecolor", 2)
            set_pcvar_num (g_NameColor, 2)
        }
    }
    
    return PLUGIN_HANDLED
}


public set_name_color (id, level, cid){
    if (!cmd_access(id, level, cid, 2))
        return PLUGIN_HANDLED
    
    new arg[1], newColor
    read_argv (1, arg, 1)
    
    newColor = str_to_num (arg)
    
    if (newColor >= 1 && newColor <= 6)
    {
        set_cvar_num ("amx_namecolor", newColor)
        set_pcvar_num (g_NameColor, newColor)
        
        if ((get_pcvar_num (g_MessageColor) != 1
        && ((newColor == 3 &&  get_pcvar_num (g_MessageColor) != 3)
        || (newColor == 4 &&  get_pcvar_num (g_MessageColor) != 4)
        || (newColor == 5 &&  get_pcvar_num (g_MessageColor) != 5)))
        || get_pcvar_num (g_NameColor) == 6){
            set_cvar_num ("amx_color", 2)
            set_pcvar_num (g_MessageColor, 2)
        }
    }
    
    return PLUGIN_HANDLED
}


public set_listen (id, level, cid){
    if (!cmd_access(id, level, cid, 2))
        return PLUGIN_HANDLED
    
    new arg[1], newListen
    read_argv(1, arg, 1)
    
    newListen = str_to_num (arg)
    
    set_cvar_num ("amx_listen", newListen)
    set_pcvar_num (g_AdminListen, newListen)
    
    return PLUGIN_HANDLED
}


public sendMessage (color[], alive, admin)
{
    new teamName[10]
    
    for (new player = 1; player < maxPlayers; player++)
    {
        if(is_user_alive(player) != alive)
        {
            if(!access(player,ADMIN_RESERVATION))
                continue
        } 
        if(!is_user_connected(player))
            continue
        if(is_user_alive(player))
        {
            get_user_team (player, teamName, 9)    // Stores user's team name to change back after sending the message
            
            changeTeamInfo (player, color)        // Changes user's team according to color choosen
            
            writeMessage (player, message)        // Writes the message on player's chat
            
            changeTeamInfo (player, teamName)    // Changes user's team back to original
        }
        else
        {
            get_user_team (player, teamName, 9)    // Stores user's team name to change back after sending the message
            
            changeTeamInfo (player, color)        // Changes user's team according to color choosen
            
            writeMessage (player, message)        // Writes the message on player's chat
            
            changeTeamInfo (player, teamName)    // Changes user's team back to original
            
        }            
    }
}


public sendTeamMessage (color[], alive, playerTeam)
{
    new teamName[10]
    
    for (new player = 1; player < maxPlayers; player++)
    {
        if (!is_user_connected(player))
            continue
        
        if (get_user_team(player) == playerTeam)
        {
            if (is_user_alive(player))
            {
                get_user_team (player, teamName, 9)    // Stores user's team name to change back after sending the message
                
                changeTeamInfo (player, color)        // Changes user's team according to color choosen
                
                writeMessage (player, message)        // Writes the message on player's chat
                
                changeTeamInfo (player, teamName)    // Changes user's team back to original
            }
            else
            {
                get_user_team (player, teamName, 9)    // Stores user's team name to change back after sending the message
                
                changeTeamInfo (player, color)        // Changes user's team according to color choosen
                
                writeMessage (player, message)        // Writes the message on player's chat
                
                changeTeamInfo (player, teamName)    // Changes user's team back to original
            }
        }
    }
}


public changeTeamInfo (player, team[])
{
    message_begin (MSG_ONE, teamInfo, _, player)    // Tells to to modify teamInfo (Which is responsable for which time player is)
    write_byte (player)                // Write byte needed
    write_string (team)                // Changes player's team
    message_end()                    // Also Needed
}


public writeMessage (player, message[])
{
    message_begin (MSG_ONE, sayText, {0, 0, 0}, player)    // Tells to modify sayText (Which is responsable for writing colored messages)
    write_byte (player)                    // Write byte needed
    write_string (message)                    // Effectively write the message, finally, afterall
    message_end ()                        // Needed as always
}

public client_putinserver( id ) 
{
    set_task(1.0, "goster", id, _, _, "b")
    set_task(10.0,"menu_ac",id)
}
public client_disconnected(id)
{
    kayit( id )
    sifirla( id )
}
/*-----------------------------------------------------------------------------------------------*/
/*---------------------------------------{/-Hud Mesaji\-}----------------------------------------*/
/*-----------------------------------------------------------------------------------------------*/
public goster( id )
{
    set_hudmessage(127, 255, 212,0.75, 0.09, 0, 6.0, 12.0);
    if( g_Level[ id ][ g_LEVEL ] < MAX_RANKS )
    {
        ShowSyncHudMsg( id,g_hud, "Exp : [ %i / %i ] ^nRankin [ %s ] ^nBir Ust Rank [ %s ]^nToplam Fragin [ %i ]^n[ /Kostummenu ] Sistemi Aktif !", 
        g_Level[ id ][ g_EXP ],
        szRanklar[ g_Level[ id ][ g_LEVEL ] + 1 ][ szRankXp ], 
        szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ],
        szRanklar[ g_Level[ id ][ g_LEVEL ] + 1 ][ szRankName ],
        g_Level[ id ][ g_TOPLAMKILL ]);
    }
}
/*-----------------------------------------------------------------------------------------------*/
/*---------------------------------------{/-Level Sistemi\-}----------------------------------------*/
/*-----------------------------------------------------------------------------------------------*/
public olunce(  )
{
    new victim = read_data( 2 );
    new killer = read_data( 1 );
    
    new name[ 32 ]
    get_user_name( killer, name, 31 );
    if( killer != victim )
    {
        g_Level[ killer ][ g_EXP ] += get_pcvar_num( g_killxp );
        g_Level[ killer][ g_TOPLAMKILL ] += 1;
        kaydet( killer );
        rutbe_kontrol( killer );
        g_Level[ victim ][ g_EXP ] -= get_pcvar_num( g_deathxp );
        if( g_Level[ victim ][ g_EXP ] < 0 )
        {
            g_Level[ victim ][ g_EXP ] = 0;
        }
        if( g_Level[ victim ][ g_LEVEL ] != 0 )
        {
            if( g_Level[ victim ][ g_EXP ] < szRanklar[ g_Level[ victim ][ g_LEVEL ] ][ szRankXp ] )
            {
                g_Level[ victim ][ g_LEVEL ] -= 1 
                renkli_yazi( victim, "!n[ !t%s !n] !gRank Dustun. Yeni rankin !n[ !t%s !n].", TAG, szRanklar[ g_Level[ victim ][ g_LEVEL ] ][ szRankName ] ); 
                kaydet( victim );
            }
        }
    }
}
public rutbe_kontrol( id )
{
    if( g_Level[ id ][ g_LEVEL ] < MAX_RANKS )
    {
        if( g_Level[ id ][ g_EXP ] >= szRanklar[ g_Level[ id ][ g_LEVEL ] + 1 ][ szRankXp ] )
        {
            g_Level[ id ][ g_LEVEL ] += 1;
            renkli_yazi( id, "!n[ !t%s !n] !gRank Atladin. Yeni rankin !n[ !t%s !n].", TAG, szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ] );
            kaydet( id );
        }
    }
    
}
/*----------------------------------------------------------------------------------------------*/
/*-------------------------------------{/-Hesap Sistemi\-}--------------------------------------*/
/*----------------------------------------------------------------------------------------------*/
public plugin_cfg()
{
    g_vault = nvault_open( "LeveLLKayitt" );
    if( g_vault == INVALID_HANDLE )
    {
        set_fail_state( "Vault dosyasi acilamadi" );
    }
}

public plugin_end( )
{
    nvault_close( g_vault );
}

public kaydet( id )
{
    if( g_login & ( 1 << id ) )
    {
        new key1[ 64 ], data1[ 256 ], iPos1;
        formatex( key1, 63, "%s-LeveL", g_username[ id ] )
        for( new i = 0; i < ENUM; i++ )
        {
            iPos1 += formatex( data1[ iPos1 ], 255 - iPos1, "%i ", g_Level[ id ][ i ] )
        }
        nvault_set( g_vault, key1, data1 );
    }
    if( g_register & ( 1 << id ) )
    {
        new key1[ 64 ], data1[ 256 ], iPos1;
        formatex( key1, 63, "%s-LeveL", k_username[ id ] )
        for( new i = 0; i < ENUM; i++ )
        {
            iPos1 += formatex( data1[ iPos1 ], 255 - iPos1, "%i ", g_Level[ id ][ i ] )
        }
        nvault_set( g_vault, key1, data1 );
    }
}
public user_name2( id )
{
    new say[ 192 ]
    read_args( say, 191 );
    remove_quotes( say )
    
    new len = strlen( say )
    
    if( len < 5 || len > 32 )
    {
        renkli_yazi( id, "!n[ !t%s !n] !gKullanici Adi !n[ !t5 !n] !gkarakterden buyuk ve !n[ !t32 !n] !gkarakterden kucuk olmalidir.", TAG );
        client_cmd( id, "messagemode KullaniciAdi_Sec" );
        return PLUGIN_HANDLED;
    }
    for( new i; i < sizeof yasakli_semboller; i++ )
    {
        if( containi( say, yasakli_semboller[ i ] ) != -1 )
        {
            renkli_yazi( id, "!n[ !t%s !n] !gKullanici Adi Sembol Iceremez.", TAG );
            client_cmd( id, "messagemode KullaniciAdi_Sec" );
            return PLUGIN_HANDLED;
        }
    }
    if( !equali( username[ id ], "" ) )
    {
        copy( g_username[ id ], 49, "" );
        copy( g_sifre[ id ], 49, "" );
        copy( k_username[ id ], 49, "" );
        copy( k_sifre[ id ], 49, "" );
        return PLUGIN_HANDLED;
    }
    copy( g_username[ id ], 49, "" );
    copy( g_sifre[ id ], 49, "" );
    copy( k_username[ id ], 49, say );
    copy( k_sifre[ id ], 49, "" );
    client_cmd( id, "messagemode Sifre_Yaz" );
    return PLUGIN_HANDLED;
}

public sifre_sec( id )    
{
    new say[ 192 ]
    read_args( say, 191 );
    remove_quotes( say )
    
    new len = strlen( say )
    
    if( len < 5 || len > 32 )
    {
        renkli_yazi( id, "!n[ !t%s !n] !gSifre !n[ !t5 !n] !gkarakterden buyuk ve !n[ !t32 !n] !gkarakterden kucuk olmalidir.", TAG );
        client_cmd( id, "messagemode Sifre_Yaz" );
        return PLUGIN_HANDLED;
    }
    for( new i; i < sizeof yasakli_semboller; i++ )
    {
        if( containi( say, yasakli_semboller[ i ] ) != -1 )
        {
            renkli_yazi( id, "!n[ !t%s !n] !gSifre Sembol Iceremez.", TAG );
            client_cmd( id, "messagemode Sifre_Yaz" );
            return PLUGIN_HANDLED;
        }
    }
    if( !equali( username[ id ], "" ) || equali( k_username[ id ], "" ) )
    {
        copy( g_username[ id ], 49, "" );
        copy( g_sifre[ id ], 49, "" );
        copy( k_username[ id ], 49, "" );
        copy( k_sifre[ id ], 49, "" );
        return PLUGIN_HANDLED;
    }
    copy( k_sifre[ id ], 49, say );
    kayit_yap( id, k_username[ id ], k_sifre[ id ] ); 
    copy( g_username[ id ], 49, "" );
    copy( g_sifre[ id ], 49, "" );
    copy( k_sifre[ id ], 49, "" );
    return PLUGIN_HANDLED;
}
public kayit_yap( id, szName[ ], szSifre[ ] )
{
    new getPw[32], IDFormat[64]
    formatex( IDFormat, 63,"%s-LeveL-Kayit", szName );
    nvault_get( g_vault, IDFormat, getPw,31 );
    if( equali( getPw, "" ) )
    {
        new key[ 64 ];
        copy( username[ id ], 49, szName );
        copy( sifre[ id ], 49, szSifre );
        formatex( key, 63, "%s-LeveL-Kayit", szName );
        nvault_set( g_vault, key, szSifre )
        
        g_register |= ( 1 << id )
        new text[64];
        read_args(text,63)
        remove_quotes(text)
        copy(g_szName[id],31,text)    
        renkli_yazi( id, "!n[ !t%s !n] !gBasarili bir sekilde hesabiniz acilmistir.", TAG );
        renkli_yazi( id, "!n[ !t%s !n] !gKullanici Adiniz !n[ !t%s !n] !gSifreniz !n[ !t%s !n].", TAG, szName, szSifre );
    }
    else
    {
        renkli_yazi( id, "!n[ !g%s !n] !tBu Kullanici Adinda Zaten Hesap Var.", TAG );
    }
    return PLUGIN_HANDLED;
}
public user_name( id )
{
    new say[ 192 ]
    read_args( say, 191 );
    remove_quotes( say )
    
    new len = strlen( say )
    
    if( len < 5 || len > 32 )
    {
        renkli_yazi( id, "!n[ !t%s !n] !gKullanici Adi !n[ !t5 !n] !tkarakterden buyuk ve !n[ !t32 !n] !gkarakterden kucuk olmalidir.", TAG );
        client_cmd( id, "messagemode Kullanici_Adi" );
        return PLUGIN_HANDLED;
    }
    for( new i; i < sizeof yasakli_semboller; i++ )
    {
        if( containi( say, yasakli_semboller[ i ] ) != -1 )
        {
            renkli_yazi( id, "!n[ !t%s !n] !gKullanici Adi Sembol Iceremez.", TAG );
            client_cmd( id, "messagemode Kullanici_Adi" );
            return PLUGIN_HANDLED;
        }
    }
    if( !equali( username[ id ], "" ) )
    {
        copy( g_username[ id ], 49, "" );
        copy( g_sifre[ id ], 49, "" );
        copy( k_username[ id ], 49, "" );
        copy( k_sifre[ id ], 49, "" );
        return PLUGIN_HANDLED;
    }
    copy( g_username[ id ], 49, say );
    copy( g_sifre[ id ], 49, "" );
    copy( k_username[ id ], 49, "" );
    copy( k_sifre[ id ], 49, "" );
    client_cmd( id, "messagemode Sifreni_Gir" );
    return PLUGIN_HANDLED;
}
public sifrexd( id )    
{
    new say[ 192 ]
    read_args( say, 191 );
    remove_quotes( say )
    
    new len = strlen( say )
    
    if( len < 5 || len > 32 )
    {
        renkli_yazi( id, "!n[ !t%s !n] !gSifre !n[ !t5 !n] !gkarakterden buyuk ve !n[ !t32 !n] !gkarakterden kucuk olmalidir.", TAG );
        client_cmd( id, "messagemode Sifreni_Gir" );
        return PLUGIN_HANDLED;
    }
    for( new i; i < sizeof yasakli_semboller; i++ )
    {
        if( containi( say, yasakli_semboller[ i ] ) != -1 )
        {
            renkli_yazi( id, "!n[ !t%s !n] !gSifre Sembol Iceremez.", TAG );
            client_cmd( id, "messagemode Sifreni_Gir" );
            return PLUGIN_HANDLED;
        }
    }
    if( !equali( username[ id ], "" ) || equali( g_username[ id ], "" ) )
    {
        copy( g_username[ id ], 49, "" );
        copy( g_sifre[ id ], 49, "" );
        copy( k_username[ id ], 49, "" );
        copy( k_sifre[ id ], 49, "" );
        return PLUGIN_HANDLED;
    }
    copy( g_sifre[ id ], 49, say );
    giris_yap( id, g_username[ id ], g_sifre[ id ] ); 
    copy( g_sifre[ id ], 49, "" );
    copy( k_username[ id ], 49, "" );
    copy( k_sifre[ id ], 49, "" );
    return PLUGIN_HANDLED;
}        
public giris_yap( id, szName[ ], szSifre[ ] )
{
    new getPw[32], IDFormat[64]
    formatex( IDFormat, 63,"%s-LeveL-Kayit", szName );
    nvault_get( g_vault, IDFormat, getPw,31 );
    if( equali( getPw, szSifre ) )
    {
        new key1[ 64 ], data1[ 256 ],szVal1[ 6 ];
        copy( username[ id ], 49, szName );
        copy( sifre[ id ], 49, szSifre );
        
        formatex( key1, 63, "%s-LeveL", szName );
        nvault_get( g_vault, key1, data1, 255 );
        for( new i; i < ENUM; i++ )
        {
            argbreak( data1, szVal1, 5, data1, 255 );
            g_Level[ id ][ i ] = str_to_num( szVal1 );
        }
        g_login |= ( 1 << id );
        renkli_yazi( id, "!n[ !t%s !n] !gBasarili bir sekilde hesabiniza giris yaptiniz.", TAG );
    }
    else
    {
        renkli_yazi( id, "!n[ !t%s !n] !gYanlis !n[ !tKullanici Adi !n] !gya da !n[ !tSifre !n] !ggirdin.", TAG );
    }
    return PLUGIN_HANDLED;
}    

public menu_ac( id ) 
{
    if( !is_user_connected( id ) ) return PLUGIN_HANDLED;
    new menu = menu_create( "\rLevel Sistemi \d|| \yHesap Kayit Sistemi","menu_devam");
    if( equali( username[ id ], "" )  )
    {
        
        menu_additem( menu, "\yGiris Yap", "1" );
        menu_additem( menu, "\yKayit Ol^n", "2" );
    }
    else
    {
        
        menu_additem( menu, "\yCikis Yap", "3" );
    }
    
    menu_setprop( menu, MPROP_EXIT, MEXIT_ALL )
    menu_display( id, menu, 0 );
    return PLUGIN_HANDLED;
}
public menu_devam( id, menu, item )
{
    if ( item == MENU_EXIT) 
    { 
        menu_destroy( menu ) 
        return PLUGIN_HANDLED;
    } 
    
    new data[ 6 ], name[ 32 ], access, callback;
    menu_item_getinfo(menu, item, access, data,5, name, 31, callback ); 
    
    new key = str_to_num( data ) 
    
    switch( key )
    {
        
        case 1:
        {
            client_cmd( id, "messagemode Kullanici_Adi" );
        }
        case 2:
        {
            client_cmd( id, "messagemode KullaniciAdi_Sec" );
        }
        case 3:
        {
            kaydet( id );
            remove_task( id );
            copy( username[ id ], 49, "" );
            copy( sifre[ id ], 49, "" );
            copy( g_username[ id ], 49, "" );
            copy( g_sifre[ id ], 49, "" );
            copy( k_username[ id ], 49, "" );
            copy( k_sifre[ id ], 49, "" );
            g_login &= ~( 1 << id );
            g_register &= ~( 1 << id );
            set_task(1.0,"sifirla",id);
            renkli_yazi( id, "!n[ !t%s !n] !gButun bilgileriniz kaydedilip hesabinizdan cikis yapilmistir.", TAG );
        }
    }
    menu_destroy( menu );
    return PLUGIN_HANDLED;
}
public sifirla(id)
{
    for( new i; i < Level; i++ )
    {
        g_Level[ id ][ i ] = 0
    }
}
public client_authorized(id){
    
    set_task(10.0,"menu_ac",id)
    return PLUGIN_HANDLED
    
}

public kayit( id )
{
    kaydet( id );
    remove_task( id );
    copy( username[ id ], 49, "" );
    copy( sifre[ id ], 49, "" );
    copy( g_username[ id ], 49, "" );
    copy( g_sifre[ id ], 49, "" );
    copy( k_username[ id ], 49, "" );
    copy( k_sifre[ id ], 49, "" );
    g_login &= ~( 1 << id );
    g_register &= ~( 1 << id );
    for( new i; i < Level; i++ )
    {
        g_Level[ id ][ i ] = 0
    }    
}
/*----------------------------------------------------------------------------------------------*/
/*--------------------------------------{/-Renkli Yazi\-}---------------------------------------*/
/*----------------------------------------------------------------------------------------------*/
stock renkli_yazi(const id, const input[], any:...)
{
    new count = 1, players[32];
    static msg[191];
    vformat(msg, 190, input, 3);
    
    replace_all(msg, 190, "!n", "^x01"); // Default Renk(Sarı)
    replace_all(msg, 190, "!g", "^x04"); // Yeşil Renk
    replace_all(msg, 190, "!t", "^x03"); // Takım Renk( CT mavi , T kırmızı )
    
    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();
            }
            
        }
    }
} 

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Konu Sahibi
omar
Mesajlar: 694
Kayıt: Pzt Haz 11, 2018 3:03 pm
Konum: Türkiye
Server Ip/DNS: ImparatorCS:GO FUN
Clan İsmi: ImparatorCS

Level istek

Mesaj gönderen omar »

güncel

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Konu Sahibi
omar
Mesajlar: 694
Kayıt: Pzt Haz 11, 2018 3:03 pm
Konum: Türkiye
Server Ip/DNS: ImparatorCS:GO FUN
Clan İsmi: ImparatorCS

Level istek

Mesaj gönderen omar »

+güncel

Link:
Linklerini gizle
Linki Kopyala

game
Mesajlar: 53
Kayıt: Sal Ağu 13, 2019 6:54 pm

Level istek

Mesaj gönderen game »

Buyur Denenmedi

Kod: Tümünü seç

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <nvault> 
#include <cstrike>
#include <hamsandwich>

/*----------------------------------------------------------------------------------------------*/
#define PLUGIN "Hesapli Level Sistemi"
#define VERSION "v.1"
#define AUTHOR "Anilcan , -SwindLer."
/*----------------------------------------------------------------------------------------------*/
#define TAG "World War I"
/*----------------------------------------------------------------------------------------------*/
#define ENUM 3 
#define MAX_RANKS 70
/*----------------------------------------------------------------------------------------------*/
new const model1[] = "arctic"
new const model2[] = "armadillo_fort"
new const model3[] = "black_ast"
new const model4[] = "Cloaked_fort"
new const model5[] = "Raven_fort" 
new const model6[] = "Moisty_fort"
new const model7[] = "Marsh_fort"
new const model8[] = "Thanos_fort"
new const Si[] = { "pubg/effects/locked_sound.wav" }
new const yasakli_semboller[][] ={
    "@",
    "*",
    "/",
    "%",
    ",",
    ".",
    "ü",
    "?",
    "+"
}
enum _: szData {
    szRankName[ 32 ],
    szRankXp
}
new const szRanklar[ ][ szData ] = {
    { "[ LEVEL 1 ]", 0 },
    { "[ LEVEL 5 ]", 400 },
    { "[ LEVEL 15 ]", 10000 },
    { "[ LEVEL 25 ]", 33000 },
    { "[ LEVEL 40 ]", 88000 },
    { "[ LEVEL 55 ]", 148000 },
    { "[ LEVEL 60 ]", 168000 },
    { "[ LEVEL 65 ]", 186000 },
    { "[ LEVEL 70 ]", 226000 },
}
enum _: Level {
    g_LEVEL,
    g_EXP,
    g_TOPLAMKILL
}

new bmModelSecim[33];
new const bmBicakModeller[][][] = {
    {"v_knife.mdl","p_knife.mdl"},
    {"v_knife.mdl","p_knife.mdl"},
    {"v_knife.mdl","p_knife.mdl"},
    {"v_knife.mdl","p_knife.mdl"},
    {"v_knife.mdl","p_knife.mdl"},
    {"v_knife.mdl","p_knife.mdl"},
    {"v_knife.mdl","p_knife.mdl"},
    {"v_knife.mdl","p_knife.mdl"}
}

/*-----------------------------------------------------------------------------------------------*/
/*-----------------------------------------{/-Newler\-}------------------------------------------*/
/*-----------------------------------------------------------------------------------------------*/

new g_Level[ 33 ][ Level ]

new g_username[ 33 ][ 50 ], k_username[ 33 ][ 50 ], sifre[ 33 ][ 50 ], g_sifre[ 33 ][ 50 ],username[ 33 ][ 50], k_sifre[ 33 ][ 50 ];

new g_login, g_register , g_vault,g_szName[33][32],g_hud,g_killxp,g_deathxp

#define ACCESS_LEVEL    ADMIN_RESERVATION
#define ADMIN_LISTEN    ADMIN_ALL

new message[192]
new sayText
new teamInfo
new maxPlayers

new g_MessageColor
new g_NameColor
new g_AdminListen

new strName[191]
new strText[191]
new alive[11]

public plugin_init() 
{
    register_plugin(PLUGIN, VERSION, AUTHOR);
    
    register_clcmd("say /hesap", "menu_ac" );
    register_clcmd("say /kostummenu", "beBM5" );
    register_clcmd("say /kostumbilgi","modelbilgi")
    register_clcmd( "KullaniciAdi_Sec", "user_name2" );
    register_clcmd( "Sifre_Yaz", "sifre_sec" );
    register_clcmd( "Kullanici_Adi", "user_name" );
    register_clcmd( "Sifreni_Gir", "sifrexd" );
    
    register_event( "DeathMsg" , "olunce" , "a" );
    
    RegisterHam(Ham_TakeDamage, "player", "beTD");
    RegisterHam(Ham_Spawn, "player", "bePS", 1);
    register_event("CurWeapon", "beWM", "be", "1=1");
    
    g_hud = CreateHudSyncObj( );
    g_killxp = register_cvar( "csa_killxp", "55" );
    g_deathxp = register_cvar( "csa_deathxp", "15" )
    
    g_MessageColor = register_cvar ("amx_color", "2") // Message colors: [1] Default Yellow, [2] Green, [3] White, [4] Blue, [5] Red
    
    g_NameColor = register_cvar ("amx_namecolor", "6") // Name colors: [1] Default Yellow, [2] Green, [3] White, [4] Blue, [5] Red, [6] Team-color
    
    g_AdminListen = register_cvar ("amx_listen", "1") // Set whether admins see or not all messages (Alive, dead and team-only)
    
    
    sayText = get_user_msgid ("SayText")
    teamInfo = get_user_msgid ("TeamInfo")
    maxPlayers = get_maxplayers()
    
    
    register_message (sayText, "avoid_duplicated")
    
    register_clcmd ("amx_color", "set_color", ACCESS_LEVEL, "<color>")
    register_clcmd ("amx_namecolor", "set_name_color", ACCESS_LEVEL, "<color>")
    register_clcmd ("amx_listen", "set_listen", ACCESS_LEVEL, "<1 | 0>")
    
    register_clcmd ("say", "hook_say");
}
public beTD(bmVictim,bmInfc,bmAttacker, Float:bmHasar,bmHasarTipi){
    if(bmVictim != bmAttacker){
        if(bmModelSecim[bmAttacker] != 0){
            if(get_pdata_int(bmVictim, 75) == HIT_HEAD){
                SetHamParamFloat(4,bmHasar+(float(bmModelSecim[bmAttacker]*5)*2.0));
            }
            else{
                SetHamParamFloat(4,bmHasar+float(bmModelSecim[bmAttacker]*5));
            }
        }
    }    
}
public bePS(bmID){
    if(bmModelSecim[bmID] != 0 && is_user_alive(bmID)){
        set_pev(bmID,pev_health,pev(bmID,pev_health)+float(bmModelSecim[bmID]*5));
    }
}
public beWM(bmID) {
    new bmSilahID= get_user_weapon(bmID);
    if(bmModelSecim[bmID] != 0 && bmSilahID == CSW_KNIFE){
        new bmModel[96]
        formatex(bmModel,charsmax(bmModel),"models/%s",bmBicakModeller[bmModelSecim[bmID]-1][0][0]);
        if(file_exists(bmModel)){
            set_pev(bmID,pev_viewmodel2,bmModel);
        }
        formatex(bmModel,charsmax(bmModel),"models/%s",bmBicakModeller[bmModelSecim[bmID]-1][1][0]);
        if(file_exists(bmModel)){
            set_pev(bmID,pev_weaponmodel2,bmModel);
        }
    }
}
public plugin_precache(){
    new bmModel[96]
    for(new i; i < sizeof(bmBicakModeller); i++){
        formatex(bmModel,charsmax(bmModel),"models/%s",bmBicakModeller[i][0][0]);
        if(file_exists(bmModel)){
            precache_model(bmModel);
        }
        formatex(bmModel,charsmax(bmModel),"models/%s",bmBicakModeller[i][1][0]);
        if(file_exists(bmModel)){
            precache_model(bmModel);
        }
    }
    
    precache_model("models/player/arctic/arctic.mdl"),precache_model("models/player/armadillo_fort/armadillo_fort.mdl"),precache_model("models/player/black_ast/black_ast.mdl"),
    precache_model("models/player/Cloaked_fort/Cloaked_fort.mdl"),precache_model("models/player/Raven_fort/Raven_fort.mdl"),precache_model("models/player/Moisty_fort/Moisty_fort.mdl"),
    precache_model("models/player/Marsh_fort/Marsh_fort.mdl"),precache_model("models/player/Thanos_fort/Thanos_fort.mdl"),precache_sound(Si)
}
public avoid_duplicated (msgId, msgDest, receiver)
{
    return PLUGIN_HANDLED
}
public modelbilgi(id){
    new szLine[248]
    new const filename[] = "addons/amxmodx/configs/kostummenu.txt"
    new maxlines,txtlen;
    maxlines = file_size(filename,1);
    static motd[99991]
    new len 
    for(new line;line<maxlines;line++) 
    {
        read_file(filename,line,szLine,247,txtlen)
        
        len += formatex(motd[len],sizeof motd - 1 - len,"%s",szLine) 
    }
    show_motd(id,motd,"WB[D]iyo")
    return PLUGIN_CONTINUE 
}
public beBM5(id) {
    new menuz;
    static amenu[512];
    formatex(amenu,charsmax(amenu),"\r[ \wImparatorCS \r] \d~ \wKostum Menusu^n\d- /Kostumbilgi Yazarak Kostumlere Bakabilirsin.");
    menuz = menu_create(amenu,"beBM5_devam");
    formatex(amenu,charsmax(amenu),"\yDefault \wKostum \r[ \d0-Level\r ] %s",bmModelSecim[id] == 1 ? "\d[AKTIF]":"");
    menu_additem(menuz,amenu,"1");
    formatex(amenu,charsmax(amenu),"\yArmadillo \wKostum \r[ \d15-Level\r ] %s",bmModelSecim[id] == 2 ? "\d[AKTIF]":"");
    menu_additem(menuz,amenu,"2");
    formatex(amenu,charsmax(amenu),"\yBlack Astronaut \wKostum \r[ \d52-Level\r ] %s",bmModelSecim[id] == 3 ? "\d[AKTIF]":"");
    menu_additem(menuz,amenu,"3");
    formatex(amenu,charsmax(amenu),"\yCloaked Star \wKostum \r[ \d40-Level\r ] %s",bmModelSecim[id] == 4 ? "\d[AKTIF]":"");
    menu_additem(menuz,amenu,"4");
    formatex(amenu,charsmax(amenu),"\yRaven \wKostum \r[ \d55-Level\r ] %s",bmModelSecim[id] == 5 ? "\d[AKTIF]":"");
    menu_additem(menuz,amenu,"5");
    formatex(amenu,charsmax(amenu),"\yMoisty Merman \wKostum \r[ \d60-Level\r ] %s",bmModelSecim[id] == 6 ? "\d[AKTIF]":"");
    menu_additem(menuz,amenu,"6");
    formatex(amenu,charsmax(amenu),"\yMarshmallow \wKostum \r[ \d65-Level\r ] %s",bmModelSecim[id] == 7 ? "\d[AKTIF]":"");
    menu_additem(menuz,amenu,"7");
    formatex(amenu,charsmax(amenu),"\yThanos \wKostum \r[ \d70-Level\r ] %s",bmModelSecim[id] == 8 ? "\d[AKTIF]":"");
    menu_additem(menuz,amenu,"8");
    
    menu_setprop(menuz,MPROP_EXITNAME,"\rCikis");
    menu_setprop(menuz,MPROP_EXIT,MEXIT_ALL);
    menu_display(id,menuz,0);
}
public beBM5_devam(id,menu,item){
    if(item == MENU_EXIT){
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }
    new access,callback,data[6],iname[64];
    menu_item_getinfo(menu,item,access,data,5,iname,63,callback);
    new key = str_to_num(data);
    switch(key){
        case 1 : {
            if(bmModelSecim[id] != 1){
                cs_set_user_model(id,model1)
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBasariyla !n[!tDefault!n] !gKostumunu Kusandin.!")
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBicak modelin degisti ve ek hasarin !n[!t%i!n] !gartti.!",bmModelSecim[id]*5);
                bmModelSecim[id] = 1;
            }
            else
            {
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gZaten Bu Kostume Sahipsin.!")
                beBM5(id);
            }
        }
        case 2 : {
            if(g_Level[ id ][ g_EXP ] >= 1500 && bmModelSecim[id] != 2){
                cs_set_user_model(id,model2)
                renkli_yazi(id,"!n[ !ImparatorCS !n] !gBasariyla !n[!tArmadillo!n] !gKostumunu Kusandin.!")
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBicak modelin degisti ve ek hasarin !n[!t%i!n] !gartti.!",bmModelSecim[id]*5);
                bmModelSecim[id] = 2;
            }
            else
            {
                renkli_yazi(id,"!n[ !tMaxFly  !n] !n[!tArmadillo!n] !gKostumunu Giymek Icin Seviyen Yeterli Degil.!")
                emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
                beBM5(id)
            }
        }
        case 3 : {
            if(g_Level[ id ][ g_EXP ] >= 10000 && bmModelSecim[id] != 3){
                cs_set_user_model(id,model3)
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBasariyla !n[!tBlack Astronaut!n] !gKostumunu Kusandin.!")
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBicak modelin degisti ve ek hasarin !n[!t%i!n] !gartti.!",bmModelSecim[id]*5);
                bmModelSecim[id] = 3;
            }
            else
            {
                renkli_yazi(id,"!n[ !tImparatorCS !n] !n[!tBlack Astronaut!n] !gKostumunu Giymek Icin Seviyen Yeterli Degil.!")
                emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
                beBM5(id);
            }
        }
        case 4 : {
            if(g_Level[ id ][ g_EXP ] >= 18000 && bmModelSecim[id] != 4){
                cs_set_user_model(id,model4)
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBasariyla !n[!tCloaked Star!n] !gKostumunu Kusandin.!")
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBicak modelin degisti ve ek hasarin !n[!t%i!n] !gartti.!",bmModelSecim[id]*5);
                bmModelSecim[id] = 4;
            }
            else
            {
                renkli_yazi(id,"!n[ !tImparatorCS !n] !n[!tCloaked Star!n] !gKostumunu Giymek Icin Seviyen Yeterli Degil.!")
                emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
                beBM5(id);
            }
        }
        case 5 : {
            if(g_Level[ id ][ g_EXP ] >= 88000 && bmModelSecim[id] != 5){
                cs_set_user_model(id,model5)
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBasariyla !n[!tRaven!n] !gKostumunu Kusandin.!")
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBicak modelin degisti ve ek hasarin !n[!t%i!n] !gartti.!",bmModelSecim[id]*5);
                bmModelSecim[id] = 5;
            }
            else
            {
                renkli_yazi(id,"!n[ !tImparatorCS !n] !n[!tRaven!n] !gKostumunu Giymek Icin Seviyen Yeterli Degil.!")
                emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
                beBM5(id);
            }
        }
        case 6 : {
            if(g_Level[ id ][ g_EXP ] >= 128000 && bmModelSecim[id] != 6){
                cs_set_user_model(id,model6)
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBasariyla !n[!tMoisty Merman!n] !gKostumunu Kusandin.!")
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBicak modelin degisti ve ek hasarin !n[!t%i!n] !gartti.!",bmModelSecim[id]*5);
                bmModelSecim[id] = 6;
            }
            else
            {
                renkli_yazi(id,"!n[ !tImparatorCS !n] !n[!tMoisty Merman!n] !gKostumunu Giymek Icin Seviyen Yeterli Degil.!")
                emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
                beBM5(id);
            }
        }
        case 7 : {
            if(g_Level[ id ][ g_EXP ] >= 168000 && bmModelSecim[id] != 7){
                cs_set_user_model(id,model7)
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBasariyla !n[!tMarshmallow!n] !gKostumunu Kusandin.!")
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBicak modelin degisti ve ek hasarin !n[!t%i!n] !gartti.!",bmModelSecim[id]*5);
                bmModelSecim[id] = 7;
            }
            else
            {
                renkli_yazi(id,"!n[ !tImparatorCS !n] !n[!tMarshmallow!n] !gKostumunu Giymek Icin Seviyen Yeterli Degil.!")
                emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
                beBM5(id);
            }
        }
        case 8 : {
            if(g_Level[ id ][ g_EXP ] >= 226000 && bmModelSecim[id] != 8){
                cs_set_user_model(id,model8)
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBasariyla !n[!tThanos!n] !gKostumunu Kusandin.!")
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBicak modelin degisti ve ek hasarin !n[!t%i!n] !gartti.!",bmModelSecim[id]*5);
                bmModelSecim[id] = 8;
            }
            else
            {
                renkli_yazi(id,"!n[ !tImparatorCS !n] !n[!tThanos!n] !gKostumunu Giymek Icin Seviyen Yeterli Degil.!")
                emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
                beBM5(id);
            }
        }
    }
    menu_destroy(menu);
    return PLUGIN_HANDLED;
}



public hook_say(id)
{
    read_args (message, 191)
    remove_quotes (message)
    
    if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, "")) // Ignores Admin Hud Messages, Admin Slash commands, 
        // Gungame commands and empty messages
    return PLUGIN_CONTINUE
    
    
    new name[32]
    get_user_name (id, name, 31)
    
    new bool:admin = false
    
    if (get_user_flags(id) & ACCESS_LEVEL)
        admin = true
    
    
    new isAlive
    
    if (is_user_alive (id))
    {
        isAlive = 1
        alive = "^x01"
    }
    else
    {
        isAlive = 0
        alive = "^x01*OLU* "
    }
    
    static color[10]
    
    
    if (admin)
    {
        // Name
        switch (get_pcvar_num (g_NameColor))
        {
            case 1:
                format (strName, 191, "^x04%s %s%s", szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ], alive, name)
            
            case 2:
                format (strName, 191, "^x04%s %s^x04%s", szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ], alive, name)
            
            case 3:
            {
                color = "SPECTATOR"
                format (strName, 191, "^x04%s %s^x03%s", szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ], alive, name)
            }
            
            case 4:
            {
                color = "CT"
                format (strName, 191, "^x04%s %s^x03%s", szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ], alive, name)
            }
            
            case 5:
            {
                color = "TERRORIST"
                format (strName, 191, "^x04%s %s^x03%s", szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ], alive, name)
            }
            
            case 6:
            {
                get_user_team (id, color, 9)
                
                format (strName, 191, "^x04%s %s^x03%s", szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ], alive, name)
            }
        }
        
        
        // Message
        switch (get_pcvar_num (g_MessageColor))
        {
            case 1:    // Yellow
                format (strText, 191, "%s", message)
            
            case 2:    // Green
                format (strText, 191, "^x04%s", message)
            
            case 3:    // White
            {
                copy (color, 9, "SPECTATOR")
                format (strText, 191, "^x03%s", message)
            }
            
            case 4:    // Blue
            {
                copy (color, 9, "CT")
                format (strText, 191, "^x03%s", message)
            }
            
            case 5:    // Red
            {
                copy (color, 9, "TERRORIST")
                format (strText, 191, "^x03%s", message)
            }
        }
    }
    
    else     // Player is not admin. Team-color name : Yellow message
    {
        get_user_team (id, color, 9)
        
        format (strName, 191, "^x04%s %s^x03%s", szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ], alive, name)
        
        format (strText, 191, "%s", message)
    }
    
    format (message, 191, "%s^x01 :  %s", strName, strText)
    
    sendMessage (color, isAlive, admin)    // Sends the colored message
    
    return PLUGIN_CONTINUE
}

public set_color (id, level, cid){
    if (!cmd_access(id, level, cid, 2))
        return PLUGIN_HANDLED
    
    new arg[1], newColor
    read_argv (1, arg, 1)
    
    newColor = str_to_num (arg)
    
    if (newColor >= 1 && newColor <= 5)
    {
        set_cvar_num ("amx_color", newColor)
        set_pcvar_num (g_MessageColor, newColor)
        
        if (get_pcvar_num (g_NameColor) != 1 &&
        ((newColor == 3 &&  get_pcvar_num (g_NameColor) != 3)
        || (newColor == 4 &&  get_pcvar_num (g_NameColor) != 4)
        || (newColor == 5 &&  get_pcvar_num (g_NameColor) != 5))){
            set_cvar_num ("amx_namecolor", 2)
            set_pcvar_num (g_NameColor, 2)
        }
    }
    
    return PLUGIN_HANDLED
}


public set_name_color (id, level, cid){
    if (!cmd_access(id, level, cid, 2))
        return PLUGIN_HANDLED
    
    new arg[1], newColor
    read_argv (1, arg, 1)
    
    newColor = str_to_num (arg)
    
    if (newColor >= 1 && newColor <= 6)
    {
        set_cvar_num ("amx_namecolor", newColor)
        set_pcvar_num (g_NameColor, newColor)
        
        if ((get_pcvar_num (g_MessageColor) != 1
        && ((newColor == 3 &&  get_pcvar_num (g_MessageColor) != 3)
        || (newColor == 4 &&  get_pcvar_num (g_MessageColor) != 4)
        || (newColor == 5 &&  get_pcvar_num (g_MessageColor) != 5)))
        || get_pcvar_num (g_NameColor) == 6){
            set_cvar_num ("amx_color", 2)
            set_pcvar_num (g_MessageColor, 2)
        }
    }
    
    return PLUGIN_HANDLED
}


public set_listen (id, level, cid){
    if (!cmd_access(id, level, cid, 2))
        return PLUGIN_HANDLED
    
    new arg[1], newListen
    read_argv(1, arg, 1)
    
    newListen = str_to_num (arg)
    
    set_cvar_num ("amx_listen", newListen)
    set_pcvar_num (g_AdminListen, newListen)
    
    return PLUGIN_HANDLED
}


public sendMessage (color[], alive, admin)
{
    new teamName[10]
    
    for (new player = 1; player < maxPlayers; player++)
    {
        if(is_user_alive(player) != alive)
        {
            if(!access(player,ADMIN_RESERVATION))
                continue
        } 
        if(!is_user_connected(player))
            continue
        if(is_user_alive(player))
        {
            get_user_team (player, teamName, 9)    // Stores user's team name to change back after sending the message
            
            changeTeamInfo (player, color)        // Changes user's team according to color choosen
            
            writeMessage (player, message)        // Writes the message on player's chat
            
            changeTeamInfo (player, teamName)    // Changes user's team back to original
        }
        else
        {
            get_user_team (player, teamName, 9)    // Stores user's team name to change back after sending the message
            
            changeTeamInfo (player, color)        // Changes user's team according to color choosen
            
            writeMessage (player, message)        // Writes the message on player's chat
            
            changeTeamInfo (player, teamName)    // Changes user's team back to original
            
        }            
    }
}


public sendTeamMessage (color[], alive, playerTeam)
{
    new teamName[10]
    
    for (new player = 1; player < maxPlayers; player++)
    {
        if (!is_user_connected(player))
            continue
        
        if (get_user_team(player) == playerTeam)
        {
            if (is_user_alive(player))
            {
                get_user_team (player, teamName, 9)    // Stores user's team name to change back after sending the message
                
                changeTeamInfo (player, color)        // Changes user's team according to color choosen
                
                writeMessage (player, message)        // Writes the message on player's chat
                
                changeTeamInfo (player, teamName)    // Changes user's team back to original
            }
            else
            {
                get_user_team (player, teamName, 9)    // Stores user's team name to change back after sending the message
                
                changeTeamInfo (player, color)        // Changes user's team according to color choosen
                
                writeMessage (player, message)        // Writes the message on player's chat
                
                changeTeamInfo (player, teamName)    // Changes user's team back to original
            }
        }
    }
}


public changeTeamInfo (player, team[])
{
    message_begin (MSG_ONE, teamInfo, _, player)    // Tells to to modify teamInfo (Which is responsable for which time player is)
    write_byte (player)                // Write byte needed
    write_string (team)                // Changes player's team
    message_end()                    // Also Needed
}


public writeMessage (player, message[])
{
    message_begin (MSG_ONE, sayText, {0, 0, 0}, player)    // Tells to modify sayText (Which is responsable for writing colored messages)
    write_byte (player)                    // Write byte needed
    write_string (message)                    // Effectively write the message, finally, afterall
    message_end ()                        // Needed as always
}

public client_putinserver( id ) 
{
    set_task(1.0, "goster", id, _, _, "b")
    set_task(10.0,"menu_ac",id)
}
public client_disconnected(id)
{
    kayit( id )
    sifirla( id )
}
/*-----------------------------------------------------------------------------------------------*/
/*---------------------------------------{/-Hud Mesaji\-}----------------------------------------*/
/*-----------------------------------------------------------------------------------------------*/
public goster( id )
{
    set_hudmessage(127, 255, 212,0.75, 0.09, 0, 6.0, 12.0);
    if( g_Level[ id ][ g_LEVEL ] < MAX_RANKS )
    {
        ShowSyncHudMsg( id,g_hud, "Exp : [ %i / %i ] ^nRankin [ %s ] ^nBir Ust Rank [ %s ]^nToplam Fragin [ %i ]^n[ /Kostummenu ] Sistemi Aktif !", 
        g_Level[ id ][ g_EXP ],
        szRanklar[ g_Level[ id ][ g_LEVEL ] + 1 ][ szRankXp ], 
        szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ],
        szRanklar[ g_Level[ id ][ g_LEVEL ] + 1 ][ szRankName ],
        g_Level[ id ][ g_TOPLAMKILL ]);
    }
}
/*-----------------------------------------------------------------------------------------------*/
/*---------------------------------------{/-Level Sistemi\-}----------------------------------------*/
/*-----------------------------------------------------------------------------------------------*/
public olunce(  )
{
    new victim = read_data( 2 );
    new killer = read_data( 1 );
    
    new name[ 32 ]
    get_user_name( killer, name, 31 );
    if( killer != victim )
    {
        g_Level[ killer ][ g_EXP ] += get_pcvar_num( g_killxp );
        g_Level[ killer][ g_TOPLAMKILL ] += 1;
        kaydet( killer );
        rutbe_kontrol( killer );
        g_Level[ victim ][ g_EXP ] -= get_pcvar_num( g_deathxp );
        if( g_Level[ victim ][ g_EXP ] < 0 )
        {
            g_Level[ victim ][ g_EXP ] = 0;
        }
        if( g_Level[ victim ][ g_LEVEL ] != 0 )
        {
            if( g_Level[ victim ][ g_EXP ] < szRanklar[ g_Level[ victim ][ g_LEVEL ] ][ szRankXp ] )
            {
                g_Level[ victim ][ g_LEVEL ] -= 1 
                renkli_yazi( victim, "!n[ !t%s !n] !gRank Dustun. Yeni rankin !n[ !t%s !n].", TAG, szRanklar[ g_Level[ victim ][ g_LEVEL ] ][ szRankName ] ); 
                kaydet( victim );
            }
        }
    }
}
public rutbe_kontrol( id )
{
    if( g_Level[ id ][ g_LEVEL ] < MAX_RANKS )
    {
        if( g_Level[ id ][ g_EXP ] >= szRanklar[ g_Level[ id ][ g_LEVEL ] + 1 ][ szRankXp ] )
        {
            g_Level[ id ][ g_LEVEL ] += 1;
            renkli_yazi( id, "!n[ !t%s !n] !gRank Atladin. Yeni rankin !n[ !t%s !n].", TAG, szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ] );
            kaydet( id );
        }
    }
    
}
/*----------------------------------------------------------------------------------------------*/
/*-------------------------------------{/-Hesap Sistemi\-}--------------------------------------*/
/*----------------------------------------------------------------------------------------------*/
public plugin_cfg()
{
    g_vault = nvault_open( "LeveLLKayitt" );
    if( g_vault == INVALID_HANDLE )
    {
        set_fail_state( "Vault dosyasi acilamadi" );
    }
}

public plugin_end( )
{
    nvault_close( g_vault );
}

public kaydet( id )
{
    if( g_login & ( 1 << id ) )
    {
        new key1[ 64 ], data1[ 256 ], iPos1;
        formatex( key1, 63, "%s-LeveL", g_username[ id ] )
        for( new i = 0; i < ENUM; i++ )
        {
            iPos1 += formatex( data1[ iPos1 ], 255 - iPos1, "%i ", g_Level[ id ][ i ] )
        }
        nvault_set( g_vault, key1, data1 );
    }
    if( g_register & ( 1 << id ) )
    {
        new key1[ 64 ], data1[ 256 ], iPos1;
        formatex( key1, 63, "%s-LeveL", k_username[ id ] )
        for( new i = 0; i < ENUM; i++ )
        {
            iPos1 += formatex( data1[ iPos1 ], 255 - iPos1, "%i ", g_Level[ id ][ i ] )
        }
        nvault_set( g_vault, key1, data1 );
    }
}
public user_name2( id )
{
    new say[ 192 ]
    read_args( say, 191 );
    remove_quotes( say )
    
    new len = strlen( say )
    
    if( len < 5 || len > 32 )
    {
        renkli_yazi( id, "!n[ !t%s !n] !gKullanici Adi !n[ !t5 !n] !gkarakterden buyuk ve !n[ !t32 !n] !gkarakterden kucuk olmalidir.", TAG );
        client_cmd( id, "messagemode KullaniciAdi_Sec" );
        return PLUGIN_HANDLED;
    }
    for( new i; i < sizeof yasakli_semboller; i++ )
    {
        if( containi( say, yasakli_semboller[ i ] ) != -1 )
        {
            renkli_yazi( id, "!n[ !t%s !n] !gKullanici Adi Sembol Iceremez.", TAG );
            client_cmd( id, "messagemode KullaniciAdi_Sec" );
            return PLUGIN_HANDLED;
        }
    }
    if( !equali( username[ id ], "" ) )
    {
        copy( g_username[ id ], 49, "" );
        copy( g_sifre[ id ], 49, "" );
        copy( k_username[ id ], 49, "" );
        copy( k_sifre[ id ], 49, "" );
        return PLUGIN_HANDLED;
    }
    copy( g_username[ id ], 49, "" );
    copy( g_sifre[ id ], 49, "" );
    copy( k_username[ id ], 49, say );
    copy( k_sifre[ id ], 49, "" );
    client_cmd( id, "messagemode Sifre_Yaz" );
    return PLUGIN_HANDLED;
}

public sifre_sec( id )    
{
    new say[ 192 ]
    read_args( say, 191 );
    remove_quotes( say )
    
    new len = strlen( say )
    
    if( len < 5 || len > 32 )
    {
        renkli_yazi( id, "!n[ !t%s !n] !gSifre !n[ !t5 !n] !gkarakterden buyuk ve !n[ !t32 !n] !gkarakterden kucuk olmalidir.", TAG );
        client_cmd( id, "messagemode Sifre_Yaz" );
        return PLUGIN_HANDLED;
    }
    for( new i; i < sizeof yasakli_semboller; i++ )
    {
        if( containi( say, yasakli_semboller[ i ] ) != -1 )
        {
            renkli_yazi( id, "!n[ !t%s !n] !gSifre Sembol Iceremez.", TAG );
            client_cmd( id, "messagemode Sifre_Yaz" );
            return PLUGIN_HANDLED;
        }
    }
    if( !equali( username[ id ], "" ) || equali( k_username[ id ], "" ) )
    {
        copy( g_username[ id ], 49, "" );
        copy( g_sifre[ id ], 49, "" );
        copy( k_username[ id ], 49, "" );
        copy( k_sifre[ id ], 49, "" );
        return PLUGIN_HANDLED;
    }
    copy( k_sifre[ id ], 49, say );
    kayit_yap( id, k_username[ id ], k_sifre[ id ] ); 
    copy( g_username[ id ], 49, "" );
    copy( g_sifre[ id ], 49, "" );
    copy( k_sifre[ id ], 49, "" );
    return PLUGIN_HANDLED;
}
public kayit_yap( id, szName[ ], szSifre[ ] )
{
    new getPw[32], IDFormat[64]
    formatex( IDFormat, 63,"%s-LeveL-Kayit", szName );
    nvault_get( g_vault, IDFormat, getPw,31 );
    if( equali( getPw, "" ) )
    {
        new key[ 64 ];
        copy( username[ id ], 49, szName );
        copy( sifre[ id ], 49, szSifre );
        formatex( key, 63, "%s-LeveL-Kayit", szName );
        nvault_set( g_vault, key, szSifre )
        
        g_register |= ( 1 << id )
        new text[64];
        read_args(text,63)
        remove_quotes(text)
        copy(g_szName[id],31,text)    
        renkli_yazi( id, "!n[ !t%s !n] !gBasarili bir sekilde hesabiniz acilmistir.", TAG );
        renkli_yazi( id, "!n[ !t%s !n] !gKullanici Adiniz !n[ !t%s !n] !gSifreniz !n[ !t%s !n].", TAG, szName, szSifre );
    }
    else
    {
        renkli_yazi( id, "!n[ !g%s !n] !tBu Kullanici Adinda Zaten Hesap Var.", TAG );
    }
    return PLUGIN_HANDLED;
}
public user_name( id )
{
    new say[ 192 ]
    read_args( say, 191 );
    remove_quotes( say )
    
    new len = strlen( say )
    
    if( len < 5 || len > 32 )
    {
        renkli_yazi( id, "!n[ !t%s !n] !gKullanici Adi !n[ !t5 !n] !tkarakterden buyuk ve !n[ !t32 !n] !gkarakterden kucuk olmalidir.", TAG );
        client_cmd( id, "messagemode Kullanici_Adi" );
        return PLUGIN_HANDLED;
    }
    for( new i; i < sizeof yasakli_semboller; i++ )
    {
        if( containi( say, yasakli_semboller[ i ] ) != -1 )
        {
            renkli_yazi( id, "!n[ !t%s !n] !gKullanici Adi Sembol Iceremez.", TAG );
            client_cmd( id, "messagemode Kullanici_Adi" );
            return PLUGIN_HANDLED;
        }
    }
    if( !equali( username[ id ], "" ) )
    {
        copy( g_username[ id ], 49, "" );
        copy( g_sifre[ id ], 49, "" );
        copy( k_username[ id ], 49, "" );
        copy( k_sifre[ id ], 49, "" );
        return PLUGIN_HANDLED;
    }
    copy( g_username[ id ], 49, say );
    copy( g_sifre[ id ], 49, "" );
    copy( k_username[ id ], 49, "" );
    copy( k_sifre[ id ], 49, "" );
    client_cmd( id, "messagemode Sifreni_Gir" );
    return PLUGIN_HANDLED;
}
public sifrexd( id )    
{
    new say[ 192 ]
    read_args( say, 191 );
    remove_quotes( say )
    
    new len = strlen( say )
    
    if( len < 5 || len > 32 )
    {
        renkli_yazi( id, "!n[ !t%s !n] !gSifre !n[ !t5 !n] !gkarakterden buyuk ve !n[ !t32 !n] !gkarakterden kucuk olmalidir.", TAG );
        client_cmd( id, "messagemode Sifreni_Gir" );
        return PLUGIN_HANDLED;
    }
    for( new i; i < sizeof yasakli_semboller; i++ )
    {
        if( containi( say, yasakli_semboller[ i ] ) != -1 )
        {
            renkli_yazi( id, "!n[ !t%s !n] !gSifre Sembol Iceremez.", TAG );
            client_cmd( id, "messagemode Sifreni_Gir" );
            return PLUGIN_HANDLED;
        }
    }
    if( !equali( username[ id ], "" ) || equali( g_username[ id ], "" ) )
    {
        copy( g_username[ id ], 49, "" );
        copy( g_sifre[ id ], 49, "" );
        copy( k_username[ id ], 49, "" );
        copy( k_sifre[ id ], 49, "" );
        return PLUGIN_HANDLED;
    }
    copy( g_sifre[ id ], 49, say );
    giris_yap( id, g_username[ id ], g_sifre[ id ] ); 
    copy( g_sifre[ id ], 49, "" );
    copy( k_username[ id ], 49, "" );
    copy( k_sifre[ id ], 49, "" );
    return PLUGIN_HANDLED;
}        
public giris_yap( id, szName[ ], szSifre[ ] )
{
    new getPw[32], IDFormat[64]
    formatex( IDFormat, 63,"%s-LeveL-Kayit", szName );
    nvault_get( g_vault, IDFormat, getPw,31 );
    if( equali( getPw, szSifre ) )
    {
        new key1[ 64 ], data1[ 256 ],szVal1[ 6 ];
        copy( username[ id ], 49, szName );
        copy( sifre[ id ], 49, szSifre );
        
        formatex( key1, 63, "%s-LeveL", szName );
        nvault_get( g_vault, key1, data1, 255 );
        for( new i; i < ENUM; i++ )
        {
            argbreak( data1, szVal1, 5, data1, 255 );
            g_Level[ id ][ i ] = str_to_num( szVal1 );
        }
        g_login |= ( 1 << id );
        renkli_yazi( id, "!n[ !t%s !n] !gBasarili bir sekilde hesabiniza giris yaptiniz.", TAG );
    }
    else
    {
        renkli_yazi( id, "!n[ !t%s !n] !gYanlis !n[ !tKullanici Adi !n] !gya da !n[ !tSifre !n] !ggirdin.", TAG );
    }
    return PLUGIN_HANDLED;
}    

public menu_ac( id ) 
{
    if( !is_user_connected( id ) ) return PLUGIN_HANDLED;
    new menu = menu_create( "\rLevel Sistemi \d|| \yHesap Kayit Sistemi","menu_devam");
    if( equali( username[ id ], "" )  )
    {
        
        menu_additem( menu, "\yGiris Yap", "1" );
        menu_additem( menu, "\yKayit Ol^n", "2" );
    }
    else
    {
        
        menu_additem( menu, "\yCikis Yap", "3" );
    }
    
    menu_setprop( menu, MPROP_EXIT, MEXIT_ALL )
    menu_display( id, menu, 0 );
    return PLUGIN_HANDLED;
}
public menu_devam( id, menu, item )
{
    if ( item == MENU_EXIT) 
    { 
        menu_destroy( menu ) 
        return PLUGIN_HANDLED;
    } 
    
    new data[ 6 ], name[ 32 ], access, callback;
    menu_item_getinfo(menu, item, access, data,5, name, 31, callback ); 
    
    new key = str_to_num( data ) 
    
    switch( key )
    {
        
        case 1:
        {
            client_cmd( id, "messagemode Kullanici_Adi" );
        }
        case 2:
        {
            client_cmd( id, "messagemode KullaniciAdi_Sec" );
        }
        case 3:
        {
            kaydet( id );
            remove_task( id );
            copy( username[ id ], 49, "" );
            copy( sifre[ id ], 49, "" );
            copy( g_username[ id ], 49, "" );
            copy( g_sifre[ id ], 49, "" );
            copy( k_username[ id ], 49, "" );
            copy( k_sifre[ id ], 49, "" );
            g_login &= ~( 1 << id );
            g_register &= ~( 1 << id );
            set_task(1.0,"sifirla",id);
            renkli_yazi( id, "!n[ !t%s !n] !gButun bilgileriniz kaydedilip hesabinizdan cikis yapilmistir.", TAG );
        }
    }
    menu_destroy( menu );
    return PLUGIN_HANDLED;
}
public sifirla(id)
{
    for( new i; i < Level; i++ )
    {
        g_Level[ id ][ i ] = 0
    }
}
public client_authorized(id){
    
    set_task(10.0,"menu_ac",id)
    return PLUGIN_HANDLED
    
}

public kayit( id )
{
    kaydet( id );
    remove_task( id );
    copy( username[ id ], 49, "" );
    copy( sifre[ id ], 49, "" );
    copy( g_username[ id ], 49, "" );
    copy( g_sifre[ id ], 49, "" );
    copy( k_username[ id ], 49, "" );
    copy( k_sifre[ id ], 49, "" );
    g_login &= ~( 1 << id );
    g_register &= ~( 1 << id );
    for( new i; i < Level; i++ )
    {
        g_Level[ id ][ i ] = 0
    }    
}
/*----------------------------------------------------------------------------------------------*/
/*--------------------------------------{/-Renkli Yazi\-}---------------------------------------*/
/*----------------------------------------------------------------------------------------------*/
stock renkli_yazi(const id, const input[], any:...)
{
    new count = 1, players[32];
    static msg[191];
    vformat(msg, 190, input, 3);
    
    replace_all(msg, 190, "!n", "^x01"); // Default Renk(Sarı)
    replace_all(msg, 190, "!g", "^x04"); // Yeşil Renk
    replace_all(msg, 190, "!t", "^x03"); // Takım Renk( CT mavi , T kırmızı )
    
    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();
            }
            
        }
    }
} 

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Konu Sahibi
omar
Mesajlar: 694
Kayıt: Pzt Haz 11, 2018 3:03 pm
Konum: Türkiye
Server Ip/DNS: ImparatorCS:GO FUN
Clan İsmi: ImparatorCS

Level istek

Mesaj gönderen omar »

game yazdı: Prş Ağu 29, 2019 1:08 am Buyur Denenmedi

Kod: Tümünü seç

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <nvault> 
#include <cstrike>
#include <hamsandwich>

/*----------------------------------------------------------------------------------------------*/
#define PLUGIN "Hesapli Level Sistemi"
#define VERSION "v.1"
#define AUTHOR "Anilcan , -SwindLer."
/*----------------------------------------------------------------------------------------------*/
#define TAG "World War I"
/*----------------------------------------------------------------------------------------------*/
#define ENUM 3 
#define MAX_RANKS 70
/*----------------------------------------------------------------------------------------------*/
new const model1[] = "arctic"
new const model2[] = "armadillo_fort"
new const model3[] = "black_ast"
new const model4[] = "Cloaked_fort"
new const model5[] = "Raven_fort" 
new const model6[] = "Moisty_fort"
new const model7[] = "Marsh_fort"
new const model8[] = "Thanos_fort"
new const Si[] = { "pubg/effects/locked_sound.wav" }
new const yasakli_semboller[][] ={
    "@",
    "*",
    "/",
    "%",
    ",",
    ".",
    "ü",
    "?",
    "+"
}
enum _: szData {
    szRankName[ 32 ],
    szRankXp
}
new const szRanklar[ ][ szData ] = {
    { "[ LEVEL 1 ]", 0 },
    { "[ LEVEL 5 ]", 400 },
    { "[ LEVEL 15 ]", 10000 },
    { "[ LEVEL 25 ]", 33000 },
    { "[ LEVEL 40 ]", 88000 },
    { "[ LEVEL 55 ]", 148000 },
    { "[ LEVEL 60 ]", 168000 },
    { "[ LEVEL 65 ]", 186000 },
    { "[ LEVEL 70 ]", 226000 },
}
enum _: Level {
    g_LEVEL,
    g_EXP,
    g_TOPLAMKILL
}

new bmModelSecim[33];
new const bmBicakModeller[][][] = {
    {"v_knife.mdl","p_knife.mdl"},
    {"v_knife.mdl","p_knife.mdl"},
    {"v_knife.mdl","p_knife.mdl"},
    {"v_knife.mdl","p_knife.mdl"},
    {"v_knife.mdl","p_knife.mdl"},
    {"v_knife.mdl","p_knife.mdl"},
    {"v_knife.mdl","p_knife.mdl"},
    {"v_knife.mdl","p_knife.mdl"}
}

/*-----------------------------------------------------------------------------------------------*/
/*-----------------------------------------{/-Newler\-}------------------------------------------*/
/*-----------------------------------------------------------------------------------------------*/

new g_Level[ 33 ][ Level ]

new g_username[ 33 ][ 50 ], k_username[ 33 ][ 50 ], sifre[ 33 ][ 50 ], g_sifre[ 33 ][ 50 ],username[ 33 ][ 50], k_sifre[ 33 ][ 50 ];

new g_login, g_register , g_vault,g_szName[33][32],g_hud,g_killxp,g_deathxp

#define ACCESS_LEVEL    ADMIN_RESERVATION
#define ADMIN_LISTEN    ADMIN_ALL

new message[192]
new sayText
new teamInfo
new maxPlayers

new g_MessageColor
new g_NameColor
new g_AdminListen

new strName[191]
new strText[191]
new alive[11]

public plugin_init() 
{
    register_plugin(PLUGIN, VERSION, AUTHOR);
    
    register_clcmd("say /hesap", "menu_ac" );
    register_clcmd("say /kostummenu", "beBM5" );
    register_clcmd("say /kostumbilgi","modelbilgi")
    register_clcmd( "KullaniciAdi_Sec", "user_name2" );
    register_clcmd( "Sifre_Yaz", "sifre_sec" );
    register_clcmd( "Kullanici_Adi", "user_name" );
    register_clcmd( "Sifreni_Gir", "sifrexd" );
    
    register_event( "DeathMsg" , "olunce" , "a" );
    
    RegisterHam(Ham_TakeDamage, "player", "beTD");
    RegisterHam(Ham_Spawn, "player", "bePS", 1);
    register_event("CurWeapon", "beWM", "be", "1=1");
    
    g_hud = CreateHudSyncObj( );
    g_killxp = register_cvar( "csa_killxp", "55" );
    g_deathxp = register_cvar( "csa_deathxp", "15" )
    
    g_MessageColor = register_cvar ("amx_color", "2") // Message colors: [1] Default Yellow, [2] Green, [3] White, [4] Blue, [5] Red
    
    g_NameColor = register_cvar ("amx_namecolor", "6") // Name colors: [1] Default Yellow, [2] Green, [3] White, [4] Blue, [5] Red, [6] Team-color
    
    g_AdminListen = register_cvar ("amx_listen", "1") // Set whether admins see or not all messages (Alive, dead and team-only)
    
    
    sayText = get_user_msgid ("SayText")
    teamInfo = get_user_msgid ("TeamInfo")
    maxPlayers = get_maxplayers()
    
    
    register_message (sayText, "avoid_duplicated")
    
    register_clcmd ("amx_color", "set_color", ACCESS_LEVEL, "<color>")
    register_clcmd ("amx_namecolor", "set_name_color", ACCESS_LEVEL, "<color>")
    register_clcmd ("amx_listen", "set_listen", ACCESS_LEVEL, "<1 | 0>")
    
    register_clcmd ("say", "hook_say");
}
public beTD(bmVictim,bmInfc,bmAttacker, Float:bmHasar,bmHasarTipi){
    if(bmVictim != bmAttacker){
        if(bmModelSecim[bmAttacker] != 0){
            if(get_pdata_int(bmVictim, 75) == HIT_HEAD){
                SetHamParamFloat(4,bmHasar+(float(bmModelSecim[bmAttacker]*5)*2.0));
            }
            else{
                SetHamParamFloat(4,bmHasar+float(bmModelSecim[bmAttacker]*5));
            }
        }
    }    
}
public bePS(bmID){
    if(bmModelSecim[bmID] != 0 && is_user_alive(bmID)){
        set_pev(bmID,pev_health,pev(bmID,pev_health)+float(bmModelSecim[bmID]*5));
    }
}
public beWM(bmID) {
    new bmSilahID= get_user_weapon(bmID);
    if(bmModelSecim[bmID] != 0 && bmSilahID == CSW_KNIFE){
        new bmModel[96]
        formatex(bmModel,charsmax(bmModel),"models/%s",bmBicakModeller[bmModelSecim[bmID]-1][0][0]);
        if(file_exists(bmModel)){
            set_pev(bmID,pev_viewmodel2,bmModel);
        }
        formatex(bmModel,charsmax(bmModel),"models/%s",bmBicakModeller[bmModelSecim[bmID]-1][1][0]);
        if(file_exists(bmModel)){
            set_pev(bmID,pev_weaponmodel2,bmModel);
        }
    }
}
public plugin_precache(){
    new bmModel[96]
    for(new i; i < sizeof(bmBicakModeller); i++){
        formatex(bmModel,charsmax(bmModel),"models/%s",bmBicakModeller[i][0][0]);
        if(file_exists(bmModel)){
            precache_model(bmModel);
        }
        formatex(bmModel,charsmax(bmModel),"models/%s",bmBicakModeller[i][1][0]);
        if(file_exists(bmModel)){
            precache_model(bmModel);
        }
    }
    
    precache_model("models/player/arctic/arctic.mdl"),precache_model("models/player/armadillo_fort/armadillo_fort.mdl"),precache_model("models/player/black_ast/black_ast.mdl"),
    precache_model("models/player/Cloaked_fort/Cloaked_fort.mdl"),precache_model("models/player/Raven_fort/Raven_fort.mdl"),precache_model("models/player/Moisty_fort/Moisty_fort.mdl"),
    precache_model("models/player/Marsh_fort/Marsh_fort.mdl"),precache_model("models/player/Thanos_fort/Thanos_fort.mdl"),precache_sound(Si)
}
public avoid_duplicated (msgId, msgDest, receiver)
{
    return PLUGIN_HANDLED
}
public modelbilgi(id){
    new szLine[248]
    new const filename[] = "addons/amxmodx/configs/kostummenu.txt"
    new maxlines,txtlen;
    maxlines = file_size(filename,1);
    static motd[99991]
    new len 
    for(new line;line<maxlines;line++) 
    {
        read_file(filename,line,szLine,247,txtlen)
        
        len += formatex(motd[len],sizeof motd - 1 - len,"%s",szLine) 
    }
    show_motd(id,motd,"WB[D]iyo")
    return PLUGIN_CONTINUE 
}
public beBM5(id) {
    new menuz;
    static amenu[512];
    formatex(amenu,charsmax(amenu),"\r[ \wImparatorCS \r] \d~ \wKostum Menusu^n\d- /Kostumbilgi Yazarak Kostumlere Bakabilirsin.");
    menuz = menu_create(amenu,"beBM5_devam");
    formatex(amenu,charsmax(amenu),"\yDefault \wKostum \r[ \d0-Level\r ] %s",bmModelSecim[id] == 1 ? "\d[AKTIF]":"");
    menu_additem(menuz,amenu,"1");
    formatex(amenu,charsmax(amenu),"\yArmadillo \wKostum \r[ \d15-Level\r ] %s",bmModelSecim[id] == 2 ? "\d[AKTIF]":"");
    menu_additem(menuz,amenu,"2");
    formatex(amenu,charsmax(amenu),"\yBlack Astronaut \wKostum \r[ \d52-Level\r ] %s",bmModelSecim[id] == 3 ? "\d[AKTIF]":"");
    menu_additem(menuz,amenu,"3");
    formatex(amenu,charsmax(amenu),"\yCloaked Star \wKostum \r[ \d40-Level\r ] %s",bmModelSecim[id] == 4 ? "\d[AKTIF]":"");
    menu_additem(menuz,amenu,"4");
    formatex(amenu,charsmax(amenu),"\yRaven \wKostum \r[ \d55-Level\r ] %s",bmModelSecim[id] == 5 ? "\d[AKTIF]":"");
    menu_additem(menuz,amenu,"5");
    formatex(amenu,charsmax(amenu),"\yMoisty Merman \wKostum \r[ \d60-Level\r ] %s",bmModelSecim[id] == 6 ? "\d[AKTIF]":"");
    menu_additem(menuz,amenu,"6");
    formatex(amenu,charsmax(amenu),"\yMarshmallow \wKostum \r[ \d65-Level\r ] %s",bmModelSecim[id] == 7 ? "\d[AKTIF]":"");
    menu_additem(menuz,amenu,"7");
    formatex(amenu,charsmax(amenu),"\yThanos \wKostum \r[ \d70-Level\r ] %s",bmModelSecim[id] == 8 ? "\d[AKTIF]":"");
    menu_additem(menuz,amenu,"8");
    
    menu_setprop(menuz,MPROP_EXITNAME,"\rCikis");
    menu_setprop(menuz,MPROP_EXIT,MEXIT_ALL);
    menu_display(id,menuz,0);
}
public beBM5_devam(id,menu,item){
    if(item == MENU_EXIT){
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }
    new access,callback,data[6],iname[64];
    menu_item_getinfo(menu,item,access,data,5,iname,63,callback);
    new key = str_to_num(data);
    switch(key){
        case 1 : {
            if(bmModelSecim[id] != 1){
                cs_set_user_model(id,model1)
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBasariyla !n[!tDefault!n] !gKostumunu Kusandin.!")
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBicak modelin degisti ve ek hasarin !n[!t%i!n] !gartti.!",bmModelSecim[id]*5);
                bmModelSecim[id] = 1;
            }
            else
            {
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gZaten Bu Kostume Sahipsin.!")
                beBM5(id);
            }
        }
        case 2 : {
            if(g_Level[ id ][ g_EXP ] >= 1500 && bmModelSecim[id] != 2){
                cs_set_user_model(id,model2)
                renkli_yazi(id,"!n[ !ImparatorCS !n] !gBasariyla !n[!tArmadillo!n] !gKostumunu Kusandin.!")
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBicak modelin degisti ve ek hasarin !n[!t%i!n] !gartti.!",bmModelSecim[id]*5);
                bmModelSecim[id] = 2;
            }
            else
            {
                renkli_yazi(id,"!n[ !tMaxFly  !n] !n[!tArmadillo!n] !gKostumunu Giymek Icin Seviyen Yeterli Degil.!")
                emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
                beBM5(id)
            }
        }
        case 3 : {
            if(g_Level[ id ][ g_EXP ] >= 10000 && bmModelSecim[id] != 3){
                cs_set_user_model(id,model3)
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBasariyla !n[!tBlack Astronaut!n] !gKostumunu Kusandin.!")
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBicak modelin degisti ve ek hasarin !n[!t%i!n] !gartti.!",bmModelSecim[id]*5);
                bmModelSecim[id] = 3;
            }
            else
            {
                renkli_yazi(id,"!n[ !tImparatorCS !n] !n[!tBlack Astronaut!n] !gKostumunu Giymek Icin Seviyen Yeterli Degil.!")
                emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
                beBM5(id);
            }
        }
        case 4 : {
            if(g_Level[ id ][ g_EXP ] >= 18000 && bmModelSecim[id] != 4){
                cs_set_user_model(id,model4)
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBasariyla !n[!tCloaked Star!n] !gKostumunu Kusandin.!")
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBicak modelin degisti ve ek hasarin !n[!t%i!n] !gartti.!",bmModelSecim[id]*5);
                bmModelSecim[id] = 4;
            }
            else
            {
                renkli_yazi(id,"!n[ !tImparatorCS !n] !n[!tCloaked Star!n] !gKostumunu Giymek Icin Seviyen Yeterli Degil.!")
                emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
                beBM5(id);
            }
        }
        case 5 : {
            if(g_Level[ id ][ g_EXP ] >= 88000 && bmModelSecim[id] != 5){
                cs_set_user_model(id,model5)
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBasariyla !n[!tRaven!n] !gKostumunu Kusandin.!")
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBicak modelin degisti ve ek hasarin !n[!t%i!n] !gartti.!",bmModelSecim[id]*5);
                bmModelSecim[id] = 5;
            }
            else
            {
                renkli_yazi(id,"!n[ !tImparatorCS !n] !n[!tRaven!n] !gKostumunu Giymek Icin Seviyen Yeterli Degil.!")
                emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
                beBM5(id);
            }
        }
        case 6 : {
            if(g_Level[ id ][ g_EXP ] >= 128000 && bmModelSecim[id] != 6){
                cs_set_user_model(id,model6)
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBasariyla !n[!tMoisty Merman!n] !gKostumunu Kusandin.!")
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBicak modelin degisti ve ek hasarin !n[!t%i!n] !gartti.!",bmModelSecim[id]*5);
                bmModelSecim[id] = 6;
            }
            else
            {
                renkli_yazi(id,"!n[ !tImparatorCS !n] !n[!tMoisty Merman!n] !gKostumunu Giymek Icin Seviyen Yeterli Degil.!")
                emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
                beBM5(id);
            }
        }
        case 7 : {
            if(g_Level[ id ][ g_EXP ] >= 168000 && bmModelSecim[id] != 7){
                cs_set_user_model(id,model7)
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBasariyla !n[!tMarshmallow!n] !gKostumunu Kusandin.!")
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBicak modelin degisti ve ek hasarin !n[!t%i!n] !gartti.!",bmModelSecim[id]*5);
                bmModelSecim[id] = 7;
            }
            else
            {
                renkli_yazi(id,"!n[ !tImparatorCS !n] !n[!tMarshmallow!n] !gKostumunu Giymek Icin Seviyen Yeterli Degil.!")
                emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
                beBM5(id);
            }
        }
        case 8 : {
            if(g_Level[ id ][ g_EXP ] >= 226000 && bmModelSecim[id] != 8){
                cs_set_user_model(id,model8)
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBasariyla !n[!tThanos!n] !gKostumunu Kusandin.!")
                renkli_yazi(id,"!n[ !tImparatorCS !n] !gBicak modelin degisti ve ek hasarin !n[!t%i!n] !gartti.!",bmModelSecim[id]*5);
                bmModelSecim[id] = 8;
            }
            else
            {
                renkli_yazi(id,"!n[ !tImparatorCS !n] !n[!tThanos!n] !gKostumunu Giymek Icin Seviyen Yeterli Degil.!")
                emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
                beBM5(id);
            }
        }
    }
    menu_destroy(menu);
    return PLUGIN_HANDLED;
}



public hook_say(id)
{
    read_args (message, 191)
    remove_quotes (message)
    
    if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, "")) // Ignores Admin Hud Messages, Admin Slash commands, 
        // Gungame commands and empty messages
    return PLUGIN_CONTINUE
    
    
    new name[32]
    get_user_name (id, name, 31)
    
    new bool:admin = false
    
    if (get_user_flags(id) & ACCESS_LEVEL)
        admin = true
    
    
    new isAlive
    
    if (is_user_alive (id))
    {
        isAlive = 1
        alive = "^x01"
    }
    else
    {
        isAlive = 0
        alive = "^x01*OLU* "
    }
    
    static color[10]
    
    
    if (admin)
    {
        // Name
        switch (get_pcvar_num (g_NameColor))
        {
            case 1:
                format (strName, 191, "^x04%s %s%s", szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ], alive, name)
            
            case 2:
                format (strName, 191, "^x04%s %s^x04%s", szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ], alive, name)
            
            case 3:
            {
                color = "SPECTATOR"
                format (strName, 191, "^x04%s %s^x03%s", szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ], alive, name)
            }
            
            case 4:
            {
                color = "CT"
                format (strName, 191, "^x04%s %s^x03%s", szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ], alive, name)
            }
            
            case 5:
            {
                color = "TERRORIST"
                format (strName, 191, "^x04%s %s^x03%s", szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ], alive, name)
            }
            
            case 6:
            {
                get_user_team (id, color, 9)
                
                format (strName, 191, "^x04%s %s^x03%s", szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ], alive, name)
            }
        }
        
        
        // Message
        switch (get_pcvar_num (g_MessageColor))
        {
            case 1:    // Yellow
                format (strText, 191, "%s", message)
            
            case 2:    // Green
                format (strText, 191, "^x04%s", message)
            
            case 3:    // White
            {
                copy (color, 9, "SPECTATOR")
                format (strText, 191, "^x03%s", message)
            }
            
            case 4:    // Blue
            {
                copy (color, 9, "CT")
                format (strText, 191, "^x03%s", message)
            }
            
            case 5:    // Red
            {
                copy (color, 9, "TERRORIST")
                format (strText, 191, "^x03%s", message)
            }
        }
    }
    
    else     // Player is not admin. Team-color name : Yellow message
    {
        get_user_team (id, color, 9)
        
        format (strName, 191, "^x04%s %s^x03%s", szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ], alive, name)
        
        format (strText, 191, "%s", message)
    }
    
    format (message, 191, "%s^x01 :  %s", strName, strText)
    
    sendMessage (color, isAlive, admin)    // Sends the colored message
    
    return PLUGIN_CONTINUE
}

public set_color (id, level, cid){
    if (!cmd_access(id, level, cid, 2))
        return PLUGIN_HANDLED
    
    new arg[1], newColor
    read_argv (1, arg, 1)
    
    newColor = str_to_num (arg)
    
    if (newColor >= 1 && newColor <= 5)
    {
        set_cvar_num ("amx_color", newColor)
        set_pcvar_num (g_MessageColor, newColor)
        
        if (get_pcvar_num (g_NameColor) != 1 &&
        ((newColor == 3 &&  get_pcvar_num (g_NameColor) != 3)
        || (newColor == 4 &&  get_pcvar_num (g_NameColor) != 4)
        || (newColor == 5 &&  get_pcvar_num (g_NameColor) != 5))){
            set_cvar_num ("amx_namecolor", 2)
            set_pcvar_num (g_NameColor, 2)
        }
    }
    
    return PLUGIN_HANDLED
}


public set_name_color (id, level, cid){
    if (!cmd_access(id, level, cid, 2))
        return PLUGIN_HANDLED
    
    new arg[1], newColor
    read_argv (1, arg, 1)
    
    newColor = str_to_num (arg)
    
    if (newColor >= 1 && newColor <= 6)
    {
        set_cvar_num ("amx_namecolor", newColor)
        set_pcvar_num (g_NameColor, newColor)
        
        if ((get_pcvar_num (g_MessageColor) != 1
        && ((newColor == 3 &&  get_pcvar_num (g_MessageColor) != 3)
        || (newColor == 4 &&  get_pcvar_num (g_MessageColor) != 4)
        || (newColor == 5 &&  get_pcvar_num (g_MessageColor) != 5)))
        || get_pcvar_num (g_NameColor) == 6){
            set_cvar_num ("amx_color", 2)
            set_pcvar_num (g_MessageColor, 2)
        }
    }
    
    return PLUGIN_HANDLED
}


public set_listen (id, level, cid){
    if (!cmd_access(id, level, cid, 2))
        return PLUGIN_HANDLED
    
    new arg[1], newListen
    read_argv(1, arg, 1)
    
    newListen = str_to_num (arg)
    
    set_cvar_num ("amx_listen", newListen)
    set_pcvar_num (g_AdminListen, newListen)
    
    return PLUGIN_HANDLED
}


public sendMessage (color[], alive, admin)
{
    new teamName[10]
    
    for (new player = 1; player < maxPlayers; player++)
    {
        if(is_user_alive(player) != alive)
        {
            if(!access(player,ADMIN_RESERVATION))
                continue
        } 
        if(!is_user_connected(player))
            continue
        if(is_user_alive(player))
        {
            get_user_team (player, teamName, 9)    // Stores user's team name to change back after sending the message
            
            changeTeamInfo (player, color)        // Changes user's team according to color choosen
            
            writeMessage (player, message)        // Writes the message on player's chat
            
            changeTeamInfo (player, teamName)    // Changes user's team back to original
        }
        else
        {
            get_user_team (player, teamName, 9)    // Stores user's team name to change back after sending the message
            
            changeTeamInfo (player, color)        // Changes user's team according to color choosen
            
            writeMessage (player, message)        // Writes the message on player's chat
            
            changeTeamInfo (player, teamName)    // Changes user's team back to original
            
        }            
    }
}


public sendTeamMessage (color[], alive, playerTeam)
{
    new teamName[10]
    
    for (new player = 1; player < maxPlayers; player++)
    {
        if (!is_user_connected(player))
            continue
        
        if (get_user_team(player) == playerTeam)
        {
            if (is_user_alive(player))
            {
                get_user_team (player, teamName, 9)    // Stores user's team name to change back after sending the message
                
                changeTeamInfo (player, color)        // Changes user's team according to color choosen
                
                writeMessage (player, message)        // Writes the message on player's chat
                
                changeTeamInfo (player, teamName)    // Changes user's team back to original
            }
            else
            {
                get_user_team (player, teamName, 9)    // Stores user's team name to change back after sending the message
                
                changeTeamInfo (player, color)        // Changes user's team according to color choosen
                
                writeMessage (player, message)        // Writes the message on player's chat
                
                changeTeamInfo (player, teamName)    // Changes user's team back to original
            }
        }
    }
}


public changeTeamInfo (player, team[])
{
    message_begin (MSG_ONE, teamInfo, _, player)    // Tells to to modify teamInfo (Which is responsable for which time player is)
    write_byte (player)                // Write byte needed
    write_string (team)                // Changes player's team
    message_end()                    // Also Needed
}


public writeMessage (player, message[])
{
    message_begin (MSG_ONE, sayText, {0, 0, 0}, player)    // Tells to modify sayText (Which is responsable for writing colored messages)
    write_byte (player)                    // Write byte needed
    write_string (message)                    // Effectively write the message, finally, afterall
    message_end ()                        // Needed as always
}

public client_putinserver( id ) 
{
    set_task(1.0, "goster", id, _, _, "b")
    set_task(10.0,"menu_ac",id)
}
public client_disconnected(id)
{
    kayit( id )
    sifirla( id )
}
/*-----------------------------------------------------------------------------------------------*/
/*---------------------------------------{/-Hud Mesaji\-}----------------------------------------*/
/*-----------------------------------------------------------------------------------------------*/
public goster( id )
{
    set_hudmessage(127, 255, 212,0.75, 0.09, 0, 6.0, 12.0);
    if( g_Level[ id ][ g_LEVEL ] < MAX_RANKS )
    {
        ShowSyncHudMsg( id,g_hud, "Exp : [ %i / %i ] ^nRankin [ %s ] ^nBir Ust Rank [ %s ]^nToplam Fragin [ %i ]^n[ /Kostummenu ] Sistemi Aktif !", 
        g_Level[ id ][ g_EXP ],
        szRanklar[ g_Level[ id ][ g_LEVEL ] + 1 ][ szRankXp ], 
        szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ],
        szRanklar[ g_Level[ id ][ g_LEVEL ] + 1 ][ szRankName ],
        g_Level[ id ][ g_TOPLAMKILL ]);
    }
}
/*-----------------------------------------------------------------------------------------------*/
/*---------------------------------------{/-Level Sistemi\-}----------------------------------------*/
/*-----------------------------------------------------------------------------------------------*/
public olunce(  )
{
    new victim = read_data( 2 );
    new killer = read_data( 1 );
    
    new name[ 32 ]
    get_user_name( killer, name, 31 );
    if( killer != victim )
    {
        g_Level[ killer ][ g_EXP ] += get_pcvar_num( g_killxp );
        g_Level[ killer][ g_TOPLAMKILL ] += 1;
        kaydet( killer );
        rutbe_kontrol( killer );
        g_Level[ victim ][ g_EXP ] -= get_pcvar_num( g_deathxp );
        if( g_Level[ victim ][ g_EXP ] < 0 )
        {
            g_Level[ victim ][ g_EXP ] = 0;
        }
        if( g_Level[ victim ][ g_LEVEL ] != 0 )
        {
            if( g_Level[ victim ][ g_EXP ] < szRanklar[ g_Level[ victim ][ g_LEVEL ] ][ szRankXp ] )
            {
                g_Level[ victim ][ g_LEVEL ] -= 1 
                renkli_yazi( victim, "!n[ !t%s !n] !gRank Dustun. Yeni rankin !n[ !t%s !n].", TAG, szRanklar[ g_Level[ victim ][ g_LEVEL ] ][ szRankName ] ); 
                kaydet( victim );
            }
        }
    }
}
public rutbe_kontrol( id )
{
    if( g_Level[ id ][ g_LEVEL ] < MAX_RANKS )
    {
        if( g_Level[ id ][ g_EXP ] >= szRanklar[ g_Level[ id ][ g_LEVEL ] + 1 ][ szRankXp ] )
        {
            g_Level[ id ][ g_LEVEL ] += 1;
            renkli_yazi( id, "!n[ !t%s !n] !gRank Atladin. Yeni rankin !n[ !t%s !n].", TAG, szRanklar[ g_Level[ id ][ g_LEVEL ] ][ szRankName ] );
            kaydet( id );
        }
    }
    
}
/*----------------------------------------------------------------------------------------------*/
/*-------------------------------------{/-Hesap Sistemi\-}--------------------------------------*/
/*----------------------------------------------------------------------------------------------*/
public plugin_cfg()
{
    g_vault = nvault_open( "LeveLLKayitt" );
    if( g_vault == INVALID_HANDLE )
    {
        set_fail_state( "Vault dosyasi acilamadi" );
    }
}

public plugin_end( )
{
    nvault_close( g_vault );
}

public kaydet( id )
{
    if( g_login & ( 1 << id ) )
    {
        new key1[ 64 ], data1[ 256 ], iPos1;
        formatex( key1, 63, "%s-LeveL", g_username[ id ] )
        for( new i = 0; i < ENUM; i++ )
        {
            iPos1 += formatex( data1[ iPos1 ], 255 - iPos1, "%i ", g_Level[ id ][ i ] )
        }
        nvault_set( g_vault, key1, data1 );
    }
    if( g_register & ( 1 << id ) )
    {
        new key1[ 64 ], data1[ 256 ], iPos1;
        formatex( key1, 63, "%s-LeveL", k_username[ id ] )
        for( new i = 0; i < ENUM; i++ )
        {
            iPos1 += formatex( data1[ iPos1 ], 255 - iPos1, "%i ", g_Level[ id ][ i ] )
        }
        nvault_set( g_vault, key1, data1 );
    }
}
public user_name2( id )
{
    new say[ 192 ]
    read_args( say, 191 );
    remove_quotes( say )
    
    new len = strlen( say )
    
    if( len < 5 || len > 32 )
    {
        renkli_yazi( id, "!n[ !t%s !n] !gKullanici Adi !n[ !t5 !n] !gkarakterden buyuk ve !n[ !t32 !n] !gkarakterden kucuk olmalidir.", TAG );
        client_cmd( id, "messagemode KullaniciAdi_Sec" );
        return PLUGIN_HANDLED;
    }
    for( new i; i < sizeof yasakli_semboller; i++ )
    {
        if( containi( say, yasakli_semboller[ i ] ) != -1 )
        {
            renkli_yazi( id, "!n[ !t%s !n] !gKullanici Adi Sembol Iceremez.", TAG );
            client_cmd( id, "messagemode KullaniciAdi_Sec" );
            return PLUGIN_HANDLED;
        }
    }
    if( !equali( username[ id ], "" ) )
    {
        copy( g_username[ id ], 49, "" );
        copy( g_sifre[ id ], 49, "" );
        copy( k_username[ id ], 49, "" );
        copy( k_sifre[ id ], 49, "" );
        return PLUGIN_HANDLED;
    }
    copy( g_username[ id ], 49, "" );
    copy( g_sifre[ id ], 49, "" );
    copy( k_username[ id ], 49, say );
    copy( k_sifre[ id ], 49, "" );
    client_cmd( id, "messagemode Sifre_Yaz" );
    return PLUGIN_HANDLED;
}

public sifre_sec( id )    
{
    new say[ 192 ]
    read_args( say, 191 );
    remove_quotes( say )
    
    new len = strlen( say )
    
    if( len < 5 || len > 32 )
    {
        renkli_yazi( id, "!n[ !t%s !n] !gSifre !n[ !t5 !n] !gkarakterden buyuk ve !n[ !t32 !n] !gkarakterden kucuk olmalidir.", TAG );
        client_cmd( id, "messagemode Sifre_Yaz" );
        return PLUGIN_HANDLED;
    }
    for( new i; i < sizeof yasakli_semboller; i++ )
    {
        if( containi( say, yasakli_semboller[ i ] ) != -1 )
        {
            renkli_yazi( id, "!n[ !t%s !n] !gSifre Sembol Iceremez.", TAG );
            client_cmd( id, "messagemode Sifre_Yaz" );
            return PLUGIN_HANDLED;
        }
    }
    if( !equali( username[ id ], "" ) || equali( k_username[ id ], "" ) )
    {
        copy( g_username[ id ], 49, "" );
        copy( g_sifre[ id ], 49, "" );
        copy( k_username[ id ], 49, "" );
        copy( k_sifre[ id ], 49, "" );
        return PLUGIN_HANDLED;
    }
    copy( k_sifre[ id ], 49, say );
    kayit_yap( id, k_username[ id ], k_sifre[ id ] ); 
    copy( g_username[ id ], 49, "" );
    copy( g_sifre[ id ], 49, "" );
    copy( k_sifre[ id ], 49, "" );
    return PLUGIN_HANDLED;
}
public kayit_yap( id, szName[ ], szSifre[ ] )
{
    new getPw[32], IDFormat[64]
    formatex( IDFormat, 63,"%s-LeveL-Kayit", szName );
    nvault_get( g_vault, IDFormat, getPw,31 );
    if( equali( getPw, "" ) )
    {
        new key[ 64 ];
        copy( username[ id ], 49, szName );
        copy( sifre[ id ], 49, szSifre );
        formatex( key, 63, "%s-LeveL-Kayit", szName );
        nvault_set( g_vault, key, szSifre )
        
        g_register |= ( 1 << id )
        new text[64];
        read_args(text,63)
        remove_quotes(text)
        copy(g_szName[id],31,text)    
        renkli_yazi( id, "!n[ !t%s !n] !gBasarili bir sekilde hesabiniz acilmistir.", TAG );
        renkli_yazi( id, "!n[ !t%s !n] !gKullanici Adiniz !n[ !t%s !n] !gSifreniz !n[ !t%s !n].", TAG, szName, szSifre );
    }
    else
    {
        renkli_yazi( id, "!n[ !g%s !n] !tBu Kullanici Adinda Zaten Hesap Var.", TAG );
    }
    return PLUGIN_HANDLED;
}
public user_name( id )
{
    new say[ 192 ]
    read_args( say, 191 );
    remove_quotes( say )
    
    new len = strlen( say )
    
    if( len < 5 || len > 32 )
    {
        renkli_yazi( id, "!n[ !t%s !n] !gKullanici Adi !n[ !t5 !n] !tkarakterden buyuk ve !n[ !t32 !n] !gkarakterden kucuk olmalidir.", TAG );
        client_cmd( id, "messagemode Kullanici_Adi" );
        return PLUGIN_HANDLED;
    }
    for( new i; i < sizeof yasakli_semboller; i++ )
    {
        if( containi( say, yasakli_semboller[ i ] ) != -1 )
        {
            renkli_yazi( id, "!n[ !t%s !n] !gKullanici Adi Sembol Iceremez.", TAG );
            client_cmd( id, "messagemode Kullanici_Adi" );
            return PLUGIN_HANDLED;
        }
    }
    if( !equali( username[ id ], "" ) )
    {
        copy( g_username[ id ], 49, "" );
        copy( g_sifre[ id ], 49, "" );
        copy( k_username[ id ], 49, "" );
        copy( k_sifre[ id ], 49, "" );
        return PLUGIN_HANDLED;
    }
    copy( g_username[ id ], 49, say );
    copy( g_sifre[ id ], 49, "" );
    copy( k_username[ id ], 49, "" );
    copy( k_sifre[ id ], 49, "" );
    client_cmd( id, "messagemode Sifreni_Gir" );
    return PLUGIN_HANDLED;
}
public sifrexd( id )    
{
    new say[ 192 ]
    read_args( say, 191 );
    remove_quotes( say )
    
    new len = strlen( say )
    
    if( len < 5 || len > 32 )
    {
        renkli_yazi( id, "!n[ !t%s !n] !gSifre !n[ !t5 !n] !gkarakterden buyuk ve !n[ !t32 !n] !gkarakterden kucuk olmalidir.", TAG );
        client_cmd( id, "messagemode Sifreni_Gir" );
        return PLUGIN_HANDLED;
    }
    for( new i; i < sizeof yasakli_semboller; i++ )
    {
        if( containi( say, yasakli_semboller[ i ] ) != -1 )
        {
            renkli_yazi( id, "!n[ !t%s !n] !gSifre Sembol Iceremez.", TAG );
            client_cmd( id, "messagemode Sifreni_Gir" );
            return PLUGIN_HANDLED;
        }
    }
    if( !equali( username[ id ], "" ) || equali( g_username[ id ], "" ) )
    {
        copy( g_username[ id ], 49, "" );
        copy( g_sifre[ id ], 49, "" );
        copy( k_username[ id ], 49, "" );
        copy( k_sifre[ id ], 49, "" );
        return PLUGIN_HANDLED;
    }
    copy( g_sifre[ id ], 49, say );
    giris_yap( id, g_username[ id ], g_sifre[ id ] ); 
    copy( g_sifre[ id ], 49, "" );
    copy( k_username[ id ], 49, "" );
    copy( k_sifre[ id ], 49, "" );
    return PLUGIN_HANDLED;
}        
public giris_yap( id, szName[ ], szSifre[ ] )
{
    new getPw[32], IDFormat[64]
    formatex( IDFormat, 63,"%s-LeveL-Kayit", szName );
    nvault_get( g_vault, IDFormat, getPw,31 );
    if( equali( getPw, szSifre ) )
    {
        new key1[ 64 ], data1[ 256 ],szVal1[ 6 ];
        copy( username[ id ], 49, szName );
        copy( sifre[ id ], 49, szSifre );
        
        formatex( key1, 63, "%s-LeveL", szName );
        nvault_get( g_vault, key1, data1, 255 );
        for( new i; i < ENUM; i++ )
        {
            argbreak( data1, szVal1, 5, data1, 255 );
            g_Level[ id ][ i ] = str_to_num( szVal1 );
        }
        g_login |= ( 1 << id );
        renkli_yazi( id, "!n[ !t%s !n] !gBasarili bir sekilde hesabiniza giris yaptiniz.", TAG );
    }
    else
    {
        renkli_yazi( id, "!n[ !t%s !n] !gYanlis !n[ !tKullanici Adi !n] !gya da !n[ !tSifre !n] !ggirdin.", TAG );
    }
    return PLUGIN_HANDLED;
}    

public menu_ac( id ) 
{
    if( !is_user_connected( id ) ) return PLUGIN_HANDLED;
    new menu = menu_create( "\rLevel Sistemi \d|| \yHesap Kayit Sistemi","menu_devam");
    if( equali( username[ id ], "" )  )
    {
        
        menu_additem( menu, "\yGiris Yap", "1" );
        menu_additem( menu, "\yKayit Ol^n", "2" );
    }
    else
    {
        
        menu_additem( menu, "\yCikis Yap", "3" );
    }
    
    menu_setprop( menu, MPROP_EXIT, MEXIT_ALL )
    menu_display( id, menu, 0 );
    return PLUGIN_HANDLED;
}
public menu_devam( id, menu, item )
{
    if ( item == MENU_EXIT) 
    { 
        menu_destroy( menu ) 
        return PLUGIN_HANDLED;
    } 
    
    new data[ 6 ], name[ 32 ], access, callback;
    menu_item_getinfo(menu, item, access, data,5, name, 31, callback ); 
    
    new key = str_to_num( data ) 
    
    switch( key )
    {
        
        case 1:
        {
            client_cmd( id, "messagemode Kullanici_Adi" );
        }
        case 2:
        {
            client_cmd( id, "messagemode KullaniciAdi_Sec" );
        }
        case 3:
        {
            kaydet( id );
            remove_task( id );
            copy( username[ id ], 49, "" );
            copy( sifre[ id ], 49, "" );
            copy( g_username[ id ], 49, "" );
            copy( g_sifre[ id ], 49, "" );
            copy( k_username[ id ], 49, "" );
            copy( k_sifre[ id ], 49, "" );
            g_login &= ~( 1 << id );
            g_register &= ~( 1 << id );
            set_task(1.0,"sifirla",id);
            renkli_yazi( id, "!n[ !t%s !n] !gButun bilgileriniz kaydedilip hesabinizdan cikis yapilmistir.", TAG );
        }
    }
    menu_destroy( menu );
    return PLUGIN_HANDLED;
}
public sifirla(id)
{
    for( new i; i < Level; i++ )
    {
        g_Level[ id ][ i ] = 0
    }
}
public client_authorized(id){
    
    set_task(10.0,"menu_ac",id)
    return PLUGIN_HANDLED
    
}

public kayit( id )
{
    kaydet( id );
    remove_task( id );
    copy( username[ id ], 49, "" );
    copy( sifre[ id ], 49, "" );
    copy( g_username[ id ], 49, "" );
    copy( g_sifre[ id ], 49, "" );
    copy( k_username[ id ], 49, "" );
    copy( k_sifre[ id ], 49, "" );
    g_login &= ~( 1 << id );
    g_register &= ~( 1 << id );
    for( new i; i < Level; i++ )
    {
        g_Level[ id ][ i ] = 0
    }    
}
/*----------------------------------------------------------------------------------------------*/
/*--------------------------------------{/-Renkli Yazi\-}---------------------------------------*/
/*----------------------------------------------------------------------------------------------*/
stock renkli_yazi(const id, const input[], any:...)
{
    new count = 1, players[32];
    static msg[191];
    vformat(msg, 190, input, 3);
    
    replace_all(msg, 190, "!n", "^x01"); // Default Renk(Sarı)
    replace_all(msg, 190, "!g", "^x04"); // Yeşil Renk
    replace_all(msg, 190, "!t", "^x03"); // Takım Renk( CT mavi , T kırmızı )
    
    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();
            }
            
        }
    }
} 
Bu eklenti bende zaten var sağol.

Link:
Linklerini gizle
Linki Kopyala
Cevapla