hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.04.19. 18:50



Jelenlévő felhasználók

Jelenleg 225 felhasználó van jelen :: 0 regisztrált, 0 rejtett és 225 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: nincs regisztrált felhasználó az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 20 hozzászólás ]  Oldal Előző 1 2
Szerző Üzenet
 Hozzászólás témája: Re: Egyedi prefix
HozzászólásElküldve: 2019.03.13. 20:05 
Offline
Senior Tag

Csatlakozott: 2017.04.30. 17:21
Hozzászólások: 286
Megköszönt másnak: 49 alkalommal
Megköszönték neki: 66 alkalommal
ROL_MESTER írta:
Köszönöm le fordul de az sql tábla létrehozás nem akkar össze jöni rendesen meg csináltam mindent de mikor rá megyek hogy mentés akkor aztirja hogy ez nem szám ez végulis mint akkar jelenteni ? :o

Nem igazán értettem de tessék beleraktam, hogy automatikusan létrehozza a szükséges táblát az oszlopokkal együtt.
Kód:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <csstats>
#include <sqlx>
 
#pragma tabsize 0
 
#define PLUGIN "Rankrendszer (HUD + prefix)"
#define VERSION "1.5"
#define AUTHOR "6lmasok,qKKKJ;>, RaZ_HU" ///Szerk:. Jucika
 
#define ACCESS_LEVEL ADMIN_CHAT
#define ADMIN_LISTEN ADMIN_CHAT
 
#define RANK_SILVER 0
#define RANK_SILVER2 1
#define RANK_SILVER3 2
#define RANK_SILVER4 3
#define RANK_SILVERE 4
#define RANK_SILVEREM 5
#define RANK_NOVA 6
#define RANK_NOVA2 7
#define RANK_NOVA3 8
#define RANK_NOVAM 9
#define RANK_AK 10
#define RANK_AK2 11
#define RANK_DAK 12
#define RANK_SHERIFF 13
#define RANK_SAS 14
#define RANK_SASM 15
#define RANK_SUPREME 16
#define RANK_GLOBAL 17
#define RANK_UBER 18
 
#define MAXRANKS 19

new message[192]
 
new strName[191]
new strText[191]
new sayText
new teamInfo
new maxPlayers
new PlayerRank[33]
new bool: g_bHud[ 33 ]
new Float:HUD_INTERVAL
 
new static color[10]
 
// prefix cucc
new g_prefix[33][100], bool:g_hasprefix[33], g_authid[33][100]
new Handle:g_SqlTuple

new const g_HOST[] = ""
new const g_USERNAME[] = ""
new const g_PASSWORD[] = ""
new const g_DATABASE[] = ""

new const RANKS[MAXRANKS][] =
{
    "Ăšjonc",
    "AmatĹ‘r",
    "HaladĂł",
    "Tud valamit",
    "Tag",
    "Gyilkos",
    "VĂ©rbeli gyilkos",
    "AlázĂł",
    "Profi",
    "Őrűlt",
    "KĂ­mĂ©letlen",
    "LegyĹ‘zhetetlen",
    "Psychopata",
    "FĂ©l Isten",
    "RadioaktĂ­v állat",
    "Pokolfajzat",
    "Őstag",
    "ŐskövĂĽlet",
    "LEGENDA"
}
 
#define size 18
 
new const szamok[size] =
{
    150,
    300,
    450,
    550,
    700,
    800,
    1250,
    1500,
    1700,
    1950,
    2300,
    2550,
    2600,
    2900,
    3300,
    3600,
    4100,
    8000,
}
 
public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
   
    register_clcmd("say /prefix", "chat_prefix", ADMIN_IMMUNITY, "Celpont Prefix")
   
    register_clcmd("say /rang", "hud")
    register_clcmd("say rang", "hud")
    register_clcmd( "say /rangok", "cmdRangs" );
    register_clcmd( "say /hud", "cmdHud" );
    register_clcmd ("say", "hook_say")
    register_clcmd ("say_team", "hook_teamsay")
   
    register_concmd("amx_addprefix", "console_prefix", ADMIN_IMMUNITY, "Celpont Prefix")
   
    register_cvar("sv_rankrendszer","1") // A plugin be- illetve kikapcsolása
    register_cvar("sv_rankrendszer_HUD","1") // A HUD-ra valĂł kijelzĂ©s be- illetve kikapcsolása
    sethudtime()
   
    sayText = get_user_msgid ("SayText")
    teamInfo = get_user_msgid ("TeamInfo")
    maxPlayers = get_maxplayers()
   
    set_task(160.0, "korUzenet", 0, _, _, "b")
   
    register_message (sayText, "avoid_duplicated")
}
public plugin_cfg()
{
    g_SqlTuple = SQL_MakeDbTuple(g_HOST, g_USERNAME, g_PASSWORD, g_DATABASE)
   static Query[1024];
   new Len;
   
   Len += formatex(Query[Len], charsmax(Query), "CREATE TABLE IF NOT EXISTS `prefixek`");
   Len += formatex(Query[Len], charsmax(Query)-Len, "(`steamid` varchar(40) NOT NULL, ");
   Len += formatex(Query[Len], charsmax(Query)-Len, "`prefix` varchar(40) NOT NULL)");
   
   SQL_ThreadQuery(g_SqlTuple, "sql_user_thr", Query);
}
 
public cmdRangs( iPlayerId )
{
    static iLen = 0, sMotd[ 2048 ], iMotdLen = charsmax( sMotd );
   
    iLen = formatex( sMotd, iMotdLen, "<meta charset=utf-8><style>table{color:#FFB000;} td,th{border:1px solid #666;text-align:center;}</style><body bgcolor=#000000><center><table width='400'><tr><th>Rang</th><th>Ă–lĂ©s</th><tr>" );
    iLen += formatex( sMotd[ iLen ], iMotdLen - iLen, "<tr><td>%s</td><td>0</td><tr>", RANKS[ 0 ] );
   
    for ( new i; i < size; ++i )
        iLen += formatex( sMotd[ iLen ], iMotdLen - iLen, "<tr><td>%s</td><td>%d</td><tr>", RANKS[ i + 1 ], szamok[ i ] );
   
    show_motd( iPlayerId, sMotd, "Rangrendszer infĂł" );
}
 
public cmdHud( iPlayerId )
{
    ColorChat( iPlayerId, "^1A hud kijelzĹ‘ ^3%skapcsolva^1!", ( g_bHud[ iPlayerId ] ^= true ) ? "be" : "ki" );
   
    if ( !g_bHud[ iPlayerId ] ) remove_task( iPlayerId );
    else { if ( !task_exists( iPlayerId ) ) set_task( HUD_INTERVAL, "setDisplay", iPlayerId ); }
}
 
public sethudtime()
{
    new refreshtime = register_cvar("sv_rankrendszer_HUDtime","0.9") // A HUD-ra valĂł kijelzĂ©s frissĂ­tĂ©si ideje másodpercben
    if (refreshtime == 0.9)
    {
        HUD_INTERVAL = 0.9
    }
    else if (refreshtime != 0.9)
    {
        HUD_INTERVAL = get_pcvar_float(refreshtime)
    }
   
    return PLUGIN_CONTINUE
}
 
public avoid_duplicated (msgId, msgDest, receiver)
{
    return PLUGIN_HANDLED
}
 
public korUzenet()
{
    ColorChat( 0, "^3ĂŤrd be ^4/rang ^3vagy ^4rang ^3hogy megnĂ©zd hány ölĂ©s kell a következĹ‘ ranghoz.")
    return PLUGIN_HANDLED;
}
 
public hud(id)
{
    new stats[8]
    new bodyhits[8]
    get_user_stats(id, stats, bodyhits)
   
    ColorChat( id, "^4Rangod: ^3%s ^1| ^4Ă–lĂ©sek: ^3%d",RANKS[PlayerRank[id]], stats[0])
   
    if(PlayerRank[id] == MAXRANKS-1)
    {
        //client_print(id, print_chat, "^4Rangod: ^3%s ^1| ^4Ă–lĂ©sek: ^3%d ^n^4A következĹ‘ szinthez kell mĂ©g: ^3%d",RANKS[PlayerRank[id]], stats[0],szamok[PlayerRank[id]]-stats[0])
        ColorChat( id, "^4Már elĂ©rted a legnagyobb ^4rangot.")
    }
    else
    {
        //client_print(id, print_chat, "^4Rangod: ^3%s ^1| ^4Ă–lĂ©sek: ^3%d ^n^4Már elĂ©rted a legnagyobb rangot.",RANKS[PlayerRank[id]], stats[0])
        ColorChat( id, "^4KövetkezĹ‘ rang: ^3%s ^1| ^4A következĹ‘ szinthez kell mĂ©g: ^3%d",RANKS[PlayerRank[id]+1], szamok[PlayerRank[id]]-stats[0])
    }
}
 
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,
    return PLUGIN_CONTINUE
   
    new name[32]
    get_user_name (id, name, 31)
   
    new isAlive, alive[32]
   
    if (is_user_alive (id))
    {
        isAlive = 1
        alive = "^1*Él*"
    }
    else
    {
        isAlive = 0
        alive = "^1*Halott* "
    }
   
    //static color[10]
   
    if(get_user_flags(id)&ADMIN_CVAR)
    {
        //get_user_team (id, color, 9)
        getTeam(id)
        format (strName, 191, "%s^3[Tulaj]^4[%s] ^3%s:", alive, RANKS[PlayerRank[id]], name)
        format (strText, 191, "^4%s", message)
    } 
   
    else if(get_user_flags(id)&ADMIN_MAP)
    {
        getTeam(id)
        format (strName, 191, "%s^4[Admin][%s] ^3%s:", alive, RANKS[PlayerRank[id]], name)
        format (strText, 191, "^4%s", message)
    }   
   
    else if(get_user_flags(id)&ADMIN_MENU)
    {
        getTeam(id)
        format (strName, 191, "%s^4[Vip][%s] ^3%s:", alive, RANKS[PlayerRank[id]], name)
        format (strText, 191, "^4%s", message)
    }
   
    else if(get_user_flags(id)&ADMIN_USER)
    {
        getTeam(id)
        format (strName, 191, "%s^4[%s] ^3%s:",alive, RANKS[PlayerRank[id]], name)
        format (strText, 191, "^1%s", message)
    }
   else if(g_hasprefix[id])
    {
        getTeam(id)
        format (strName, 191, "%s^4[%s][%s] ^3%s:",alive, g_prefix[id], RANKS[PlayerRank[id]], name)
        format (strText, 191, "^1%s", message)
    }
   
    format (message, 191, "%s ^1%s", strName, strText)
    sendMessage (color, isAlive)
   
    return PLUGIN_CONTINUE
}
 
public hook_teamsay(id)
{
    new playerTeam = get_user_team(id)
    new playerTeamName[19]
   
    switch (playerTeam)
    {
        case 1:
            copy (playerTeamName, 11, "Terrorista")
       
        case 2:
            copy (playerTeamName, 18, "Anti-Terrorista")
       
        default:
            copy (playerTeamName, 9, "NĂ©zĹ‘")
    }
   
    read_args (message, 191)
    remove_quotes (message)
   
    if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, ""))
    return PLUGIN_CONTINUE
   
    new isAlive, alive[32]
   
    if (is_user_alive (id))
    {
        isAlive = 1
        alive = "^1*Él*"
    }
    else
    {
        isAlive = 0
        alive = "^1*Halott* "
    }
   
    new name[32]
    get_user_name (id, name, 31)
   
    //static color[10]
   
    if(get_user_flags(id)&ADMIN_CVAR)
    {
        //get_user_team (id, color, 9)
        getTeam(id)
        format (strName, 191, "%s(%s)^3[Tulaj]^3[%s] ^3%s:",alive , playerTeamName, RANKS[PlayerRank[id]], name)
        format (strText, 191, "^4%s", message)
    } 
   
    else if(get_user_flags(id)&ADMIN_MAP)
    {
        getTeam(id)
        format (strName, 191, "%s(%s)^4[Admin][%s] ^3%s:",alive , playerTeamName, RANKS[PlayerRank[id]], name)
        format (strText, 191, "^4%s", message)
    }   
   
    else if(get_user_flags(id)&ADMIN_MENU)
    {
        getTeam(id)
        format (strName, 191, "%s(%s)^4[Vip][%s] ^3%s:",alive , playerTeamName, RANKS[PlayerRank[id]], name)
        format (strText, 191, "^4%s", message)
    }
   
    else if(get_user_flags(id)&ADMIN_USER)
    {
        getTeam(id)
        format (strName, 191, "%s(%s)^4[%s] ^3%s:",alive ,playerTeamName, RANKS[PlayerRank[id]], name)
        format (strText, 191, "^1%s", message)
    }
   else if(g_hasprefix[id])
    {
        getTeam(id)
        format (strName, 191, "%s(%s)^4[%s][%s] ^3%s:",alive ,playerTeamName, g_prefix[id], RANKS[PlayerRank[id]], name)
        format (strText, 191, "^1%s", message)
    }
   
    format (message, 191, "%s ^1%s", strName, strText)
    sendTeamMessage (color,isAlive, playerTeam)
   
    return PLUGIN_CONTINUE
}
 
public sendMessage (color[], alive)
{
    new teamName[10]
   
    for (new player = 1; player < maxPlayers; player++)
    {
        if (!is_user_connected(player))
            continue
        if((alive && is_user_alive(player)) || (!alive && !is_user_alive(player)) || (get_user_flags(player) && ADMIN_LISTEN))
        {
            get_user_team (player, teamName, 9)
            changeTeamInfo (player, color)
            writeMessage (player, message)
            changeTeamInfo (player, teamName)
        }
    }
}
 
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 || get_user_flags(player) & ADMIN_LISTEN)
        {
            if (alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_user_flags(player) & ADMIN_LISTEN)
            {
                get_user_team (player, teamName, 9)
                changeTeamInfo (player, color)
                writeMessage (player, message)
                changeTeamInfo (player, teamName)
            }
        }
    }
}
 
public changeTeamInfo (player, team[])
{
    message_begin (MSG_ONE, teamInfo, _, player) 
    write_byte (player)
    write_string (team)
    message_end() 
}
 
public writeMessage (player, message[])
{
    message_begin (MSG_ONE, sayText, {0, 0, 0}, player)
    write_byte (player)
    write_string (message)
    message_end ()
}
 
stock bool:is_user_steam(id)
{
    static dp_pointer;
   
    if (dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
    {
        server_cmd("dp_clientinfo %d", id);
        server_exec();
        return (get_pcvar_num(dp_pointer) == 2) ? true : false;
    }
 
    return false;
}
 
public client_putinserver(id)
{
    if(get_cvar_num("sv_rankrendszer")==0)
    {
        return PLUGIN_HANDLED
    }
    else if (get_cvar_num("sv_rankrendszer")==1 && get_cvar_num("sv_rankrendszer_HUD")==1)
    {
        g_bHud[ id ] = true;
        set_task(HUD_INTERVAL, "setDisplay", id)
    }
    else
    {
        set_task(0.5, "remTask", id)
    }
   
   get_user_authid(id, g_authid[id], charsmax(g_authid))
   sql_load_user(id)
    return PLUGIN_CONTINUE
}
public client_disconnect(id)
{
   if(is_user_bot(id))
      return
     
   g_hasprefix[id] = false
   g_prefix[id] = ""
   g_authid[id] = ""
}
 
public remTask(id)
{
    remove_task(id, 0)
}
 
public getTeam(id)
{
    get_user_team (id, color, 9)
}
 
public setDisplay(id)
{
    if(!is_user_connected(id))
        return PLUGIN_CONTINUE
   
    new stats[8]
    new bodyhits[8]
    get_user_stats(id, stats, bodyhits)
   
    if(stats[0] < 50)
    {
        PlayerRank[id] = RANK_SILVER
    }
    else if(stats[0] >= 50 && stats[0] < 200)
    {
        PlayerRank[id] = RANK_SILVER2
    }
    else if(stats[0] >= 200 && stats[0] < 350)
    {
        PlayerRank[id] = RANK_SILVER3
    }
    else if(stats[0] >= 350 && stats[0] < 450)
    {
        PlayerRank[id] = RANK_SILVER4
    }
    else if(stats[0] >= 450 && stats[0] < 600)
    {
        PlayerRank[id] = RANK_SILVERE
    }
    else if(stats[0] >= 600 && stats[0] < 800)
    {
        PlayerRank[id] = RANK_SILVEREM
    }
    else if(stats[0] >= 800 && stats[0] < 1150)
    {
        PlayerRank[id] = RANK_NOVA
    }
    else if(stats[0] >= 1150&& stats[0] < 1400)
    {
        PlayerRank[id] = RANK_NOVA2
    }
    else if(stats[0] >= 1400 && stats[0] < 1600)
    {
        PlayerRank[id] = RANK_NOVA3
    }
    else if(stats[0] >= 1600 && stats[0] < 1850)
    {
        PlayerRank[id] = RANK_NOVAM
    }
    else if(stats[0] >= 1850 && stats[0] < 2200)
    {
        PlayerRank[id] = RANK_AK
    }
    else if(stats[0] >= 2200 && stats[0] < 2450)
    {
        PlayerRank[id] = RANK_AK2
    }
    else if(stats[0] >= 2450 && stats[0] < 2600)
    {
        PlayerRank[id] = RANK_DAK
    }
    else if(stats[0] >= 2600 && stats[0] < 2800)
    {
        PlayerRank[id] = RANK_SHERIFF
    }
    else if(stats[0] >= 2800 && stats[0] < 3200)
    {
        PlayerRank[id] = RANK_SAS
    }
    else if(stats[0] >= 3200 && stats[0] < 3500)
    {
        PlayerRank[id] = RANK_SASM
    }
    else if(stats[0] >= 3500 && stats[0] < 4000)
    {
        PlayerRank[id] = RANK_SUPREME
    }
    else if(stats[0] >= 4000 && stats[0] < 4500)
    {
        PlayerRank[id] = RANK_GLOBAL
    }
    else if(stats[0] >= 4500)
    {
        PlayerRank[id] = RANK_UBER
    }
   
    set_hudmessage(random_num(15, 255), random_num(15, 255), random_num(15, 255), 0.01, 0.20, 0, 6.0, 1.0, 0.0, 0.0, -1)
    show_hudmessage(id, "^nĂ–lĂ©seid: %i^nRangod: %s^nParancsok: /rang, /rangok, /hud", stats[0], RANKS[PlayerRank[id]])
    //show_hudmessage(id, "%s ^nĂ–lĂ©sek: %i ^nRang: %s", name, stats[0], RANKS[PlayerRank[id]])
   
    set_task(HUD_INTERVAL, "setDisplay", id)
   
    return PLUGIN_CONTINUE
}
public chat_prefix(id, lvl, cid)
{
   if(!cmd_access(id, lvl, cid, 0))
      return PLUGIN_HANDLED
   
   new Arg1[40], Arg2[40]
   read_argv(1, Arg1, charsmax(Arg1))
   read_argv(2, Arg2, charsmax(Arg2))
   
   new player = cmd_target(id, Arg1, 1)
   if (!player)
      return PLUGIN_HANDLED
     
   if(g_hasprefix[player])
   {
      g_prefix[player] = Arg2
      g_hasprefix[player] = true
      sql_user(player, 0)
      return PLUGIN_HANDLED
   }
   g_prefix[player] = Arg2
   g_hasprefix[player] = true
   sql_user(player, 1)
   return PLUGIN_HANDLED
}
public console_prefix(id, lvl, cid)
{
   if(!cmd_access(id, lvl, cid, 0))
      return PLUGIN_HANDLED
   
   new Arg1[40], Arg2[40]
   read_argv(1, Arg1, charsmax(Arg1))
   read_argv(2, Arg2, charsmax(Arg2))
   
   new player = cmd_target(id, Arg1, 1)
   if (!player)
      return PLUGIN_HANDLED
   
   if(g_hasprefix[player])
   {
      g_prefix[player] = Arg2
      g_hasprefix[player] = true
      sql_user(player, 0)
      return PLUGIN_HANDLED
   }
   g_prefix[player] = Arg2
   g_hasprefix[player] = true
   sql_user(player, 1)
   return PLUGIN_HANDLED
}
public sql_user(player, mode)
{
   static Query[256]

   if(mode == 0)
      formatex(Query, charsmax(Query), "UPDATE `prefixek` SET `prefix` = '%s' WHERE `steamid` = '%s';", g_prefix[player], g_authid[player]);
   else
      formatex(Query, charsmax(Query), "INSERT INTO `prefixek` (`steamid`, `prefix`) VALUES ('%s', '%s');", g_authid[player], g_prefix[player]);
   SQL_ThreadQuery(g_SqlTuple, "sql_user_thr", Query);
}
public sql_user_thr(FailState, Handle:Query, Error[], Errcode, DataSize, Float:Queuetime) {
   if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
      log_amx("%s", Error);
      return;
   }
}
public sql_load_user(id)
{
   static Query[512];
   static szData[2]
   szData[0] = id
   szData[1] = get_user_userid(id)
   
   formatex(Query, charsmax(Query), "SELECT * FROM `prefixek` WHERE `authid` = '%s';", g_authid[id])
   SQL_ThreadQuery(g_SqlTuple, "sql_load_user_thr", Query, szData, 2)
}
public sql_load_user_thr(FailState, Handle:Query, Error[], Errcode, szData[], DataSize, Float:Queuetime)
{
   if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
      log_amx("%s", Error);
      return;
   }
   else
   {
      new id = szData[0]
     
      if(szData[1] != get_user_userid(id))
         return
     
      if(SQL_NumRows(Query) > 0)
      {
         SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "prefix"), g_prefix[id], charsmax(g_prefix[]))
         g_hasprefix[id] = true
      }
   }
}
stock ColorChat(const id, const input[], any:...)
{
    new count = 1, players[32];
    static msg[191];
    vformat(msg, 190, input, 3);
   
    replace_all(msg, 190, "!g", "^4"); // Green Color
    replace_all(msg, 190, "!y", "^1"); // Default Color
    replace_all(msg, 190, "!t", "^3"); // Team Color
   
    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();
            }
        }
    }
}


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Egyedi prefix
HozzászólásElküldve: 2019.03.13. 21:29 
Offline
Fanatikus
Avatar

Csatlakozott: 2018.02.06. 14:07
Hozzászólások: 182
Megköszönt másnak: 19 alkalommal
Megköszönték neki: 12 alkalommal
aarpi. írta:
ROL_MESTER írta:
Köszönöm le fordul de az sql tábla létrehozás nem akkar össze jöni rendesen meg csináltam mindent de mikor rá megyek hogy mentés akkor aztirja hogy ez nem szám ez végulis mint akkar jelenteni ? :o

Nem igazán értettem de tessék beleraktam, hogy automatikusan létrehozza a szükséges táblát az oszlopokkal együtt.
Kód:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <csstats>
#include <sqlx>
 
#pragma tabsize 0
 
#define PLUGIN "Rankrendszer (HUD + prefix)"
#define VERSION "1.5"
#define AUTHOR "6lmasok,qKKKJ;>, RaZ_HU" ///Szerk:. Jucika
 
#define ACCESS_LEVEL ADMIN_CHAT
#define ADMIN_LISTEN ADMIN_CHAT
 
#define RANK_SILVER 0
#define RANK_SILVER2 1
#define RANK_SILVER3 2
#define RANK_SILVER4 3
#define RANK_SILVERE 4
#define RANK_SILVEREM 5
#define RANK_NOVA 6
#define RANK_NOVA2 7
#define RANK_NOVA3 8
#define RANK_NOVAM 9
#define RANK_AK 10
#define RANK_AK2 11
#define RANK_DAK 12
#define RANK_SHERIFF 13
#define RANK_SAS 14
#define RANK_SASM 15
#define RANK_SUPREME 16
#define RANK_GLOBAL 17
#define RANK_UBER 18
 
#define MAXRANKS 19

new message[192]
 
new strName[191]
new strText[191]
new sayText
new teamInfo
new maxPlayers
new PlayerRank[33]
new bool: g_bHud[ 33 ]
new Float:HUD_INTERVAL
 
new static color[10]
 
// prefix cucc
new g_prefix[33][100], bool:g_hasprefix[33], g_authid[33][100]
new Handle:g_SqlTuple

new const g_HOST[] = ""
new const g_USERNAME[] = ""
new const g_PASSWORD[] = ""
new const g_DATABASE[] = ""

new const RANKS[MAXRANKS][] =
{
    "Ăšjonc",
    "AmatĹ‘r",
    "HaladĂł",
    "Tud valamit",
    "Tag",
    "Gyilkos",
    "VĂ©rbeli gyilkos",
    "AlázĂł",
    "Profi",
    "Őrűlt",
    "KĂ­mĂ©letlen",
    "LegyĹ‘zhetetlen",
    "Psychopata",
    "FĂ©l Isten",
    "RadioaktĂ­v állat",
    "Pokolfajzat",
    "Őstag",
    "ŐskövĂĽlet",
    "LEGENDA"
}
 
#define size 18
 
new const szamok[size] =
{
    150,
    300,
    450,
    550,
    700,
    800,
    1250,
    1500,
    1700,
    1950,
    2300,
    2550,
    2600,
    2900,
    3300,
    3600,
    4100,
    8000,
}
 
public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
   
    register_clcmd("say /prefix", "chat_prefix", ADMIN_IMMUNITY, "Celpont Prefix")
   
    register_clcmd("say /rang", "hud")
    register_clcmd("say rang", "hud")
    register_clcmd( "say /rangok", "cmdRangs" );
    register_clcmd( "say /hud", "cmdHud" );
    register_clcmd ("say", "hook_say")
    register_clcmd ("say_team", "hook_teamsay")
   
    register_concmd("amx_addprefix", "console_prefix", ADMIN_IMMUNITY, "Celpont Prefix")
   
    register_cvar("sv_rankrendszer","1") // A plugin be- illetve kikapcsolása
    register_cvar("sv_rankrendszer_HUD","1") // A HUD-ra valĂł kijelzĂ©s be- illetve kikapcsolása
    sethudtime()
   
    sayText = get_user_msgid ("SayText")
    teamInfo = get_user_msgid ("TeamInfo")
    maxPlayers = get_maxplayers()
   
    set_task(160.0, "korUzenet", 0, _, _, "b")
   
    register_message (sayText, "avoid_duplicated")
}
public plugin_cfg()
{
    g_SqlTuple = SQL_MakeDbTuple(g_HOST, g_USERNAME, g_PASSWORD, g_DATABASE)
   static Query[1024];
   new Len;
   
   Len += formatex(Query[Len], charsmax(Query), "CREATE TABLE IF NOT EXISTS `prefixek`");
   Len += formatex(Query[Len], charsmax(Query)-Len, "(`steamid` varchar(40) NOT NULL, ");
   Len += formatex(Query[Len], charsmax(Query)-Len, "`prefix` varchar(40) NOT NULL)");
   
   SQL_ThreadQuery(g_SqlTuple, "sql_user_thr", Query);
}
 
public cmdRangs( iPlayerId )
{
    static iLen = 0, sMotd[ 2048 ], iMotdLen = charsmax( sMotd );
   
    iLen = formatex( sMotd, iMotdLen, "<meta charset=utf-8><style>table{color:#FFB000;} td,th{border:1px solid #666;text-align:center;}</style><body bgcolor=#000000><center><table width='400'><tr><th>Rang</th><th>Ă–lĂ©s</th><tr>" );
    iLen += formatex( sMotd[ iLen ], iMotdLen - iLen, "<tr><td>%s</td><td>0</td><tr>", RANKS[ 0 ] );
   
    for ( new i; i < size; ++i )
        iLen += formatex( sMotd[ iLen ], iMotdLen - iLen, "<tr><td>%s</td><td>%d</td><tr>", RANKS[ i + 1 ], szamok[ i ] );
   
    show_motd( iPlayerId, sMotd, "Rangrendszer infĂł" );
}
 
public cmdHud( iPlayerId )
{
    ColorChat( iPlayerId, "^1A hud kijelzĹ‘ ^3%skapcsolva^1!", ( g_bHud[ iPlayerId ] ^= true ) ? "be" : "ki" );
   
    if ( !g_bHud[ iPlayerId ] ) remove_task( iPlayerId );
    else { if ( !task_exists( iPlayerId ) ) set_task( HUD_INTERVAL, "setDisplay", iPlayerId ); }
}
 
public sethudtime()
{
    new refreshtime = register_cvar("sv_rankrendszer_HUDtime","0.9") // A HUD-ra valĂł kijelzĂ©s frissĂ­tĂ©si ideje másodpercben
    if (refreshtime == 0.9)
    {
        HUD_INTERVAL = 0.9
    }
    else if (refreshtime != 0.9)
    {
        HUD_INTERVAL = get_pcvar_float(refreshtime)
    }
   
    return PLUGIN_CONTINUE
}
 
public avoid_duplicated (msgId, msgDest, receiver)
{
    return PLUGIN_HANDLED
}
 
public korUzenet()
{
    ColorChat( 0, "^3ĂŤrd be ^4/rang ^3vagy ^4rang ^3hogy megnĂ©zd hány ölĂ©s kell a következĹ‘ ranghoz.")
    return PLUGIN_HANDLED;
}
 
public hud(id)
{
    new stats[8]
    new bodyhits[8]
    get_user_stats(id, stats, bodyhits)
   
    ColorChat( id, "^4Rangod: ^3%s ^1| ^4Ă–lĂ©sek: ^3%d",RANKS[PlayerRank[id]], stats[0])
   
    if(PlayerRank[id] == MAXRANKS-1)
    {
        //client_print(id, print_chat, "^4Rangod: ^3%s ^1| ^4Ă–lĂ©sek: ^3%d ^n^4A következĹ‘ szinthez kell mĂ©g: ^3%d",RANKS[PlayerRank[id]], stats[0],szamok[PlayerRank[id]]-stats[0])
        ColorChat( id, "^4Már elĂ©rted a legnagyobb ^4rangot.")
    }
    else
    {
        //client_print(id, print_chat, "^4Rangod: ^3%s ^1| ^4Ă–lĂ©sek: ^3%d ^n^4Már elĂ©rted a legnagyobb rangot.",RANKS[PlayerRank[id]], stats[0])
        ColorChat( id, "^4KövetkezĹ‘ rang: ^3%s ^1| ^4A következĹ‘ szinthez kell mĂ©g: ^3%d",RANKS[PlayerRank[id]+1], szamok[PlayerRank[id]]-stats[0])
    }
}
 
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,
    return PLUGIN_CONTINUE
   
    new name[32]
    get_user_name (id, name, 31)
   
    new isAlive, alive[32]
   
    if (is_user_alive (id))
    {
        isAlive = 1
        alive = "^1*Él*"
    }
    else
    {
        isAlive = 0
        alive = "^1*Halott* "
    }
   
    //static color[10]
   
    if(get_user_flags(id)&ADMIN_CVAR)
    {
        //get_user_team (id, color, 9)
        getTeam(id)
        format (strName, 191, "%s^3[Tulaj]^4[%s] ^3%s:", alive, RANKS[PlayerRank[id]], name)
        format (strText, 191, "^4%s", message)
    } 
   
    else if(get_user_flags(id)&ADMIN_MAP)
    {
        getTeam(id)
        format (strName, 191, "%s^4[Admin][%s] ^3%s:", alive, RANKS[PlayerRank[id]], name)
        format (strText, 191, "^4%s", message)
    }   
   
    else if(get_user_flags(id)&ADMIN_MENU)
    {
        getTeam(id)
        format (strName, 191, "%s^4[Vip][%s] ^3%s:", alive, RANKS[PlayerRank[id]], name)
        format (strText, 191, "^4%s", message)
    }
   
    else if(get_user_flags(id)&ADMIN_USER)
    {
        getTeam(id)
        format (strName, 191, "%s^4[%s] ^3%s:",alive, RANKS[PlayerRank[id]], name)
        format (strText, 191, "^1%s", message)
    }
   else if(g_hasprefix[id])
    {
        getTeam(id)
        format (strName, 191, "%s^4[%s][%s] ^3%s:",alive, g_prefix[id], RANKS[PlayerRank[id]], name)
        format (strText, 191, "^1%s", message)
    }
   
    format (message, 191, "%s ^1%s", strName, strText)
    sendMessage (color, isAlive)
   
    return PLUGIN_CONTINUE
}
 
public hook_teamsay(id)
{
    new playerTeam = get_user_team(id)
    new playerTeamName[19]
   
    switch (playerTeam)
    {
        case 1:
            copy (playerTeamName, 11, "Terrorista")
       
        case 2:
            copy (playerTeamName, 18, "Anti-Terrorista")
       
        default:
            copy (playerTeamName, 9, "NĂ©zĹ‘")
    }
   
    read_args (message, 191)
    remove_quotes (message)
   
    if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, ""))
    return PLUGIN_CONTINUE
   
    new isAlive, alive[32]
   
    if (is_user_alive (id))
    {
        isAlive = 1
        alive = "^1*Él*"
    }
    else
    {
        isAlive = 0
        alive = "^1*Halott* "
    }
   
    new name[32]
    get_user_name (id, name, 31)
   
    //static color[10]
   
    if(get_user_flags(id)&ADMIN_CVAR)
    {
        //get_user_team (id, color, 9)
        getTeam(id)
        format (strName, 191, "%s(%s)^3[Tulaj]^3[%s] ^3%s:",alive , playerTeamName, RANKS[PlayerRank[id]], name)
        format (strText, 191, "^4%s", message)
    } 
   
    else if(get_user_flags(id)&ADMIN_MAP)
    {
        getTeam(id)
        format (strName, 191, "%s(%s)^4[Admin][%s] ^3%s:",alive , playerTeamName, RANKS[PlayerRank[id]], name)
        format (strText, 191, "^4%s", message)
    }   
   
    else if(get_user_flags(id)&ADMIN_MENU)
    {
        getTeam(id)
        format (strName, 191, "%s(%s)^4[Vip][%s] ^3%s:",alive , playerTeamName, RANKS[PlayerRank[id]], name)
        format (strText, 191, "^4%s", message)
    }
   
    else if(get_user_flags(id)&ADMIN_USER)
    {
        getTeam(id)
        format (strName, 191, "%s(%s)^4[%s] ^3%s:",alive ,playerTeamName, RANKS[PlayerRank[id]], name)
        format (strText, 191, "^1%s", message)
    }
   else if(g_hasprefix[id])
    {
        getTeam(id)
        format (strName, 191, "%s(%s)^4[%s][%s] ^3%s:",alive ,playerTeamName, g_prefix[id], RANKS[PlayerRank[id]], name)
        format (strText, 191, "^1%s", message)
    }
   
    format (message, 191, "%s ^1%s", strName, strText)
    sendTeamMessage (color,isAlive, playerTeam)
   
    return PLUGIN_CONTINUE
}
 
public sendMessage (color[], alive)
{
    new teamName[10]
   
    for (new player = 1; player < maxPlayers; player++)
    {
        if (!is_user_connected(player))
            continue
        if((alive && is_user_alive(player)) || (!alive && !is_user_alive(player)) || (get_user_flags(player) && ADMIN_LISTEN))
        {
            get_user_team (player, teamName, 9)
            changeTeamInfo (player, color)
            writeMessage (player, message)
            changeTeamInfo (player, teamName)
        }
    }
}
 
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 || get_user_flags(player) & ADMIN_LISTEN)
        {
            if (alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_user_flags(player) & ADMIN_LISTEN)
            {
                get_user_team (player, teamName, 9)
                changeTeamInfo (player, color)
                writeMessage (player, message)
                changeTeamInfo (player, teamName)
            }
        }
    }
}
 
public changeTeamInfo (player, team[])
{
    message_begin (MSG_ONE, teamInfo, _, player) 
    write_byte (player)
    write_string (team)
    message_end() 
}
 
public writeMessage (player, message[])
{
    message_begin (MSG_ONE, sayText, {0, 0, 0}, player)
    write_byte (player)
    write_string (message)
    message_end ()
}
 
stock bool:is_user_steam(id)
{
    static dp_pointer;
   
    if (dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
    {
        server_cmd("dp_clientinfo %d", id);
        server_exec();
        return (get_pcvar_num(dp_pointer) == 2) ? true : false;
    }
 
    return false;
}
 
public client_putinserver(id)
{
    if(get_cvar_num("sv_rankrendszer")==0)
    {
        return PLUGIN_HANDLED
    }
    else if (get_cvar_num("sv_rankrendszer")==1 && get_cvar_num("sv_rankrendszer_HUD")==1)
    {
        g_bHud[ id ] = true;
        set_task(HUD_INTERVAL, "setDisplay", id)
    }
    else
    {
        set_task(0.5, "remTask", id)
    }
   
   get_user_authid(id, g_authid[id], charsmax(g_authid))
   sql_load_user(id)
    return PLUGIN_CONTINUE
}
public client_disconnect(id)
{
   if(is_user_bot(id))
      return
     
   g_hasprefix[id] = false
   g_prefix[id] = ""
   g_authid[id] = ""
}
 
public remTask(id)
{
    remove_task(id, 0)
}
 
public getTeam(id)
{
    get_user_team (id, color, 9)
}
 
public setDisplay(id)
{
    if(!is_user_connected(id))
        return PLUGIN_CONTINUE
   
    new stats[8]
    new bodyhits[8]
    get_user_stats(id, stats, bodyhits)
   
    if(stats[0] < 50)
    {
        PlayerRank[id] = RANK_SILVER
    }
    else if(stats[0] >= 50 && stats[0] < 200)
    {
        PlayerRank[id] = RANK_SILVER2
    }
    else if(stats[0] >= 200 && stats[0] < 350)
    {
        PlayerRank[id] = RANK_SILVER3
    }
    else if(stats[0] >= 350 && stats[0] < 450)
    {
        PlayerRank[id] = RANK_SILVER4
    }
    else if(stats[0] >= 450 && stats[0] < 600)
    {
        PlayerRank[id] = RANK_SILVERE
    }
    else if(stats[0] >= 600 && stats[0] < 800)
    {
        PlayerRank[id] = RANK_SILVEREM
    }
    else if(stats[0] >= 800 && stats[0] < 1150)
    {
        PlayerRank[id] = RANK_NOVA
    }
    else if(stats[0] >= 1150&& stats[0] < 1400)
    {
        PlayerRank[id] = RANK_NOVA2
    }
    else if(stats[0] >= 1400 && stats[0] < 1600)
    {
        PlayerRank[id] = RANK_NOVA3
    }
    else if(stats[0] >= 1600 && stats[0] < 1850)
    {
        PlayerRank[id] = RANK_NOVAM
    }
    else if(stats[0] >= 1850 && stats[0] < 2200)
    {
        PlayerRank[id] = RANK_AK
    }
    else if(stats[0] >= 2200 && stats[0] < 2450)
    {
        PlayerRank[id] = RANK_AK2
    }
    else if(stats[0] >= 2450 && stats[0] < 2600)
    {
        PlayerRank[id] = RANK_DAK
    }
    else if(stats[0] >= 2600 && stats[0] < 2800)
    {
        PlayerRank[id] = RANK_SHERIFF
    }
    else if(stats[0] >= 2800 && stats[0] < 3200)
    {
        PlayerRank[id] = RANK_SAS
    }
    else if(stats[0] >= 3200 && stats[0] < 3500)
    {
        PlayerRank[id] = RANK_SASM
    }
    else if(stats[0] >= 3500 && stats[0] < 4000)
    {
        PlayerRank[id] = RANK_SUPREME
    }
    else if(stats[0] >= 4000 && stats[0] < 4500)
    {
        PlayerRank[id] = RANK_GLOBAL
    }
    else if(stats[0] >= 4500)
    {
        PlayerRank[id] = RANK_UBER
    }
   
    set_hudmessage(random_num(15, 255), random_num(15, 255), random_num(15, 255), 0.01, 0.20, 0, 6.0, 1.0, 0.0, 0.0, -1)
    show_hudmessage(id, "^nĂ–lĂ©seid: %i^nRangod: %s^nParancsok: /rang, /rangok, /hud", stats[0], RANKS[PlayerRank[id]])
    //show_hudmessage(id, "%s ^nĂ–lĂ©sek: %i ^nRang: %s", name, stats[0], RANKS[PlayerRank[id]])
   
    set_task(HUD_INTERVAL, "setDisplay", id)
   
    return PLUGIN_CONTINUE
}
public chat_prefix(id, lvl, cid)
{
   if(!cmd_access(id, lvl, cid, 0))
      return PLUGIN_HANDLED
   
   new Arg1[40], Arg2[40]
   read_argv(1, Arg1, charsmax(Arg1))
   read_argv(2, Arg2, charsmax(Arg2))
   
   new player = cmd_target(id, Arg1, 1)
   if (!player)
      return PLUGIN_HANDLED
     
   if(g_hasprefix[player])
   {
      g_prefix[player] = Arg2
      g_hasprefix[player] = true
      sql_user(player, 0)
      return PLUGIN_HANDLED
   }
   g_prefix[player] = Arg2
   g_hasprefix[player] = true
   sql_user(player, 1)
   return PLUGIN_HANDLED
}
public console_prefix(id, lvl, cid)
{
   if(!cmd_access(id, lvl, cid, 0))
      return PLUGIN_HANDLED
   
   new Arg1[40], Arg2[40]
   read_argv(1, Arg1, charsmax(Arg1))
   read_argv(2, Arg2, charsmax(Arg2))
   
   new player = cmd_target(id, Arg1, 1)
   if (!player)
      return PLUGIN_HANDLED
   
   if(g_hasprefix[player])
   {
      g_prefix[player] = Arg2
      g_hasprefix[player] = true
      sql_user(player, 0)
      return PLUGIN_HANDLED
   }
   g_prefix[player] = Arg2
   g_hasprefix[player] = true
   sql_user(player, 1)
   return PLUGIN_HANDLED
}
public sql_user(player, mode)
{
   static Query[256]

   if(mode == 0)
      formatex(Query, charsmax(Query), "UPDATE `prefixek` SET `prefix` = '%s' WHERE `steamid` = '%s';", g_prefix[player], g_authid[player]);
   else
      formatex(Query, charsmax(Query), "INSERT INTO `prefixek` (`steamid`, `prefix`) VALUES ('%s', '%s');", g_authid[player], g_prefix[player]);
   SQL_ThreadQuery(g_SqlTuple, "sql_user_thr", Query);
}
public sql_user_thr(FailState, Handle:Query, Error[], Errcode, DataSize, Float:Queuetime) {
   if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
      log_amx("%s", Error);
      return;
   }
}
public sql_load_user(id)
{
   static Query[512];
   static szData[2]
   szData[0] = id
   szData[1] = get_user_userid(id)
   
   formatex(Query, charsmax(Query), "SELECT * FROM `prefixek` WHERE `authid` = '%s';", g_authid[id])
   SQL_ThreadQuery(g_SqlTuple, "sql_load_user_thr", Query, szData, 2)
}
public sql_load_user_thr(FailState, Handle:Query, Error[], Errcode, szData[], DataSize, Float:Queuetime)
{
   if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
      log_amx("%s", Error);
      return;
   }
   else
   {
      new id = szData[0]
     
      if(szData[1] != get_user_userid(id))
         return
     
      if(SQL_NumRows(Query) > 0)
      {
         SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "prefix"), g_prefix[id], charsmax(g_prefix[]))
         g_hasprefix[id] = true
      }
   }
}
stock ColorChat(const id, const input[], any:...)
{
    new count = 1, players[32];
    static msg[191];
    vformat(msg, 190, input, 3);
   
    replace_all(msg, 190, "!g", "^4"); // Green Color
    replace_all(msg, 190, "!y", "^1"); // Default Color
    replace_all(msg, 190, "!t", "^3"); // Team Color
   
    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();
            }
        }
    }
}


Az sql rész szépen megy de a mikor meg adom a prefix-et az már nem irja a játékosoknak!

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Egyedi prefix
HozzászólásElküldve: 2019.03.13. 22:08 
Offline
Lelkes

Csatlakozott: 2019.03.04. 21:27
Hozzászólások: 17
Megköszönt másnak: 1 alkalommal
tessék próbáld

  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <cstrike>
  4. #include <csstats>
  5. #include <sqlx>
  6.  
  7. #pragma tabsize 0
  8.  
  9. #define PLUGIN "Rankrendszer (HUD + prefix)"
  10. #define VERSION "1.5"
  11. #define AUTHOR "6lmasok,qKKKJ;>, RaZ_HU" ///Szerk:. Jucika
  12.  
  13. #define ACCESS_LEVEL ADMIN_CHAT
  14. #define ADMIN_LISTEN ADMIN_CHAT
  15.  
  16. #define RANK_SILVER 0
  17. #define RANK_SILVER2 1
  18. #define RANK_SILVER3 2
  19. #define RANK_SILVER4 3
  20. #define RANK_SILVERE 4
  21. #define RANK_SILVEREM 5
  22. #define RANK_NOVA 6
  23. #define RANK_NOVA2 7
  24. #define RANK_NOVA3 8
  25. #define RANK_NOVAM 9
  26. #define RANK_AK 10
  27. #define RANK_AK2 11
  28. #define RANK_DAK 12
  29. #define RANK_SHERIFF 13
  30. #define RANK_SAS 14
  31. #define RANK_SASM 15
  32. #define RANK_SUPREME 16
  33. #define RANK_GLOBAL 17
  34. #define RANK_UBER 18
  35.  
  36. #define MAXRANKS 19
  37.  
  38. new message[192]
  39.  
  40. new strName[191]
  41. new strText[191]
  42. new sayText
  43. new teamInfo
  44. new maxPlayers
  45. new PlayerRank[33]
  46. new bool: g_bHud[ 33 ]
  47. new Float:HUD_INTERVAL
  48.  
  49. new static color[10]
  50.  
  51. // prefix cucc
  52. new g_prefix[33][100], bool:g_hasprefix[33], g_authid[33][100]
  53. new Handle:g_SqlTuple
  54.  
  55. new const g_HOST[] = ""
  56. new const g_USERNAME[] = ""
  57. new const g_PASSWORD[] = ""
  58. new const g_DATABASE[] = ""
  59.  
  60. new const RANKS[MAXRANKS][] =
  61. {
  62.     "Újonc",
  63.     "Amatőr",
  64.     "Haladó",
  65.     "Tud valamit",
  66.     "Tag",
  67.     "Gyilkos",
  68.     "Vérbeli gyilkos",
  69.     "Alázó",
  70.     "Profi",
  71.     "Őrűlt",
  72.     "Kíméletlen",
  73.     "Legyőzhetetlen",
  74.     "Psychopata",
  75.     "Fél Isten",
  76.     "Radioaktív állat",
  77.     "Pokolfajzat",
  78.     "Őstag",
  79.     "Őskövület",
  80.     "LEGENDA"
  81. }
  82.  
  83. #define size 18
  84.  
  85. new const szamok[size] =
  86. {
  87.     150,
  88.     300,
  89.     450,
  90.     550,
  91.     700,
  92.     800,
  93.     1250,
  94.     1500,
  95.     1700,
  96.     1950,
  97.     2300,
  98.     2550,
  99.     2600,
  100.     2900,
  101.     3300,
  102.     3600,
  103.     4100,
  104.     8000,
  105. }
  106.  
  107. public plugin_init()
  108. {
  109.     register_plugin(PLUGIN, VERSION, AUTHOR)
  110.    
  111.     register_clcmd("say /prefix", "chat_prefix", ADMIN_IMMUNITY, "Celpont Prefix")
  112.    
  113.     register_clcmd("say /rang", "hud")
  114.     register_clcmd("say rang", "hud")
  115.     register_clcmd( "say /rangok", "cmdRangs" );
  116.     register_clcmd( "say /hud", "cmdHud" );
  117.     register_clcmd ("say", "hook_say")
  118.     register_clcmd ("say_team", "hook_teamsay")
  119.    
  120.     register_concmd("amx_addprefix", "console_prefix", ADMIN_IMMUNITY, "Celpont Prefix")
  121.    
  122.     register_cvar("sv_rankrendszer","1") // A plugin be- illetve kikapcsolása
  123.     register_cvar("sv_rankrendszer_HUD","1") // A HUD-ra való kijelzés be- illetve kikapcsolása
  124.     sethudtime()
  125.    
  126.     sayText = get_user_msgid ("SayText")
  127.     teamInfo = get_user_msgid ("TeamInfo")
  128.     maxPlayers = get_maxplayers()
  129.    
  130.     set_task(160.0, "korUzenet", 0, _, _, "b")
  131.    
  132.     register_message (sayText, "avoid_duplicated")
  133. }
  134. public plugin_cfg()
  135. {
  136.     g_SqlTuple = SQL_MakeDbTuple(g_HOST, g_USERNAME, g_PASSWORD, g_DATABASE)
  137.    static Query[1024];
  138.    new Len;
  139.    
  140.    Len += formatex(Query[Len], charsmax(Query), "CREATE TABLE IF NOT EXISTS `prefixek`");
  141.    Len += formatex(Query[Len], charsmax(Query)-Len, "(`steamid` varchar(40) NOT NULL, ");
  142.    Len += formatex(Query[Len], charsmax(Query)-Len, "`prefix` varchar(40) NOT NULL)");
  143.    
  144.    SQL_ThreadQuery(g_SqlTuple, "sql_user_thr", Query);
  145. }
  146.  
  147. public cmdRangs( iPlayerId )
  148. {
  149.     static iLen = 0, sMotd[ 2048 ], iMotdLen = charsmax( sMotd );
  150.    
  151.     iLen = formatex( sMotd, iMotdLen, "<meta charset=utf-8><style>table{color:#FFB000;} td,th{border:1px solid #666;text-align:center;}</style><body bgcolor=#000000><center><table width='400'><tr><th>Rang</th><th>Ölés</th><tr>" );
  152.     iLen += formatex( sMotd[ iLen ], iMotdLen - iLen, "<tr><td>%s</td><td>0</td><tr>", RANKS[ 0 ] );
  153.    
  154.     for ( new i; i < size; ++i )
  155.         iLen += formatex( sMotd[ iLen ], iMotdLen - iLen, "<tr><td>%s</td><td>%d</td><tr>", RANKS[ i + 1 ], szamok[ i ] );
  156.    
  157.     show_motd( iPlayerId, sMotd, "Rangrendszer infó" );
  158. }
  159.  
  160. public cmdHud( iPlayerId )
  161. {
  162.     ColorChat( iPlayerId, "^1A hud kijelző ^3%skapcsolva^1!", ( g_bHud[ iPlayerId ] ^= true ) ? "be" : "ki" );
  163.    
  164.     if ( !g_bHud[ iPlayerId ] ) remove_task( iPlayerId );
  165.     else { if ( !task_exists( iPlayerId ) ) set_task( HUD_INTERVAL, "setDisplay", iPlayerId ); }
  166. }
  167.  
  168. public sethudtime()
  169. {
  170.     new refreshtime = register_cvar("sv_rankrendszer_HUDtime","0.9") // A HUD-ra való kijelzés frissítési ideje másodpercben
  171.     if (refreshtime == 0.9)
  172.     {
  173.         HUD_INTERVAL = 0.9
  174.     }
  175.     else if (refreshtime != 0.9)
  176.     {
  177.         HUD_INTERVAL = get_pcvar_float(refreshtime)
  178.     }
  179.    
  180.     return PLUGIN_CONTINUE
  181. }
  182.  
  183. public avoid_duplicated (msgId, msgDest, receiver)
  184. {
  185.     return PLUGIN_HANDLED
  186. }
  187.  
  188. public korUzenet()
  189. {
  190.     ColorChat( 0, "^3Írd be ^4/rang ^3vagy ^4rang ^3hogy megnézd hány ölés kell a következő ranghoz.")
  191.     return PLUGIN_HANDLED;
  192. }
  193.  
  194. public hud(id)
  195. {
  196.     new stats[8]
  197.     new bodyhits[8]
  198.     get_user_stats(id, stats, bodyhits)
  199.    
  200.     ColorChat( id, "^4Rangod: ^3%s ^1| ^4Ölések: ^3%d",RANKS[PlayerRank[id]], stats[0])
  201.    
  202.     if(PlayerRank[id] == MAXRANKS-1)
  203.     {
  204.         //client_print(id, print_chat, "^4Rangod: ^3%s ^1| ^4Ölések: ^3%d ^n^4A következő szinthez kell még: ^3%d",RANKS[PlayerRank[id]], stats[0],szamok[PlayerRank[id]]-stats[0])
  205.         ColorChat( id, "^4Már elérted a legnagyobb ^4rangot.")
  206.     }
  207.     else
  208.     {
  209.         //client_print(id, print_chat, "^4Rangod: ^3%s ^1| ^4Ölések: ^3%d ^n^4Már elérted a legnagyobb rangot.",RANKS[PlayerRank[id]], stats[0])
  210.         ColorChat( id, "^4Következő rang: ^3%s ^1| ^4A következő szinthez kell még: ^3%d",RANKS[PlayerRank[id]+1], szamok[PlayerRank[id]]-stats[0])
  211.     }
  212. }
  213.  
  214. public hook_say(id)
  215. {
  216.     read_args (message, 191)
  217.     remove_quotes (message)
  218.    
  219.     if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, "")) // Ignores Admin Hud Messages, Admin Slash commands,
  220.     return PLUGIN_CONTINUE
  221.    
  222.     new name[32]
  223.     get_user_name (id, name, 31)
  224.    
  225.     new isAlive, alive[32]
  226.    
  227.     if (is_user_alive (id))
  228.     {
  229.         isAlive = 1
  230.         alive = "^1*Él*"
  231.     }
  232.     else
  233.     {
  234.         isAlive = 0
  235.         alive = "^1*Halott* "
  236.     }
  237.    
  238.     //static color[10]
  239.    
  240.     if(get_user_flags(id)&ADMIN_CVAR)
  241.     {
  242.         //get_user_team (id, color, 9)
  243.         getTeam(id)
  244.         format (strName, 191, "%s^3[Tulaj]^4[%s][%s] ^3%s:", alive, g_prefix[id], RANKS[PlayerRank[id]], name)
  245.         format (strText, 191, "^4%s", message)
  246.     }
  247.    
  248.     else if(get_user_flags(id)&ADMIN_MAP)
  249.     {
  250.         getTeam(id)
  251.         format (strName, 191, "%s^4[Admin][%s][%s] ^3%s:", alive, g_prefix[id], RANKS[PlayerRank[id]], name)
  252.         format (strText, 191, "^4%s", message)
  253.     }  
  254.    
  255.     else if(get_user_flags(id)&ADMIN_MENU)
  256.     {
  257.         getTeam(id)
  258.         format (strName, 191, "%s^4[Vip][%s][%s] ^3%s:", alive, g_prefix[id], RANKS[PlayerRank[id]], name)
  259.         format (strText, 191, "^4%s", message)
  260.     }
  261.    
  262.     else if(get_user_flags(id)&ADMIN_USER)
  263.     {
  264.         getTeam(id)
  265.         format (strName, 191, "%s^4[%s][%s] ^3%s:",alive, g_prefix[id], RANKS[PlayerRank[id]], name)
  266.         format (strText, 191, "^1%s", message)
  267.     }
  268.    else if(g_hasprefix[id])
  269.     {
  270.         getTeam(id)
  271.         format (strName, 191, "%s^4[%s][%s] ^3%s:",alive, g_prefix[id], RANKS[PlayerRank[id]], name)
  272.         format (strText, 191, "^1%s", message)
  273.     }
  274.    
  275.     format (message, 191, "%s ^1%s", strName, strText)
  276.     sendMessage (color, isAlive)
  277.    
  278.     return PLUGIN_CONTINUE
  279. }
  280.  
  281. public hook_teamsay(id)
  282. {
  283.     new playerTeam = get_user_team(id)
  284.     new playerTeamName[19]
  285.    
  286.     switch (playerTeam)
  287.     {
  288.         case 1:
  289.             copy (playerTeamName, 11, "Terrorista")
  290.        
  291.         case 2:
  292.             copy (playerTeamName, 18, "Anti-Terrorista")
  293.        
  294.         default:
  295.             copy (playerTeamName, 9, "Néző")
  296.     }
  297.    
  298.     read_args (message, 191)
  299.     remove_quotes (message)
  300.    
  301.     if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, ""))
  302.     return PLUGIN_CONTINUE
  303.    
  304.     new isAlive, alive[32]
  305.    
  306.     if (is_user_alive (id))
  307.     {
  308.         isAlive = 1
  309.         alive = "^1*Él*"
  310.     }
  311.     else
  312.     {
  313.         isAlive = 0
  314.         alive = "^1*Halott* "
  315.     }
  316.    
  317.     new name[32]
  318.     get_user_name (id, name, 31)
  319.    
  320.     //static color[10]
  321.    
  322.     if(get_user_flags(id)&ADMIN_CVAR)
  323.     {
  324.         //get_user_team (id, color, 9)
  325.         getTeam(id)
  326.         format (strName, 191, "%s(%s)^3[Tulaj]^3[%s][%s] ^3%s:",alive , playerTeamName, g_prefix[id], RANKS[PlayerRank[id]], name)
  327.         format (strText, 191, "^4%s", message)
  328.     }
  329.    
  330.     else if(get_user_flags(id)&ADMIN_MAP)
  331.     {
  332.         getTeam(id)
  333.         format (strName, 191, "%s(%s)^4[Admin][%s][%s] ^3%s:",alive , playerTeamName, g_prefix[id], RANKS[PlayerRank[id]], name)
  334.         format (strText, 191, "^4%s", message)
  335.     }  
  336.    
  337.     else if(get_user_flags(id)&ADMIN_MENU)
  338.     {
  339.         getTeam(id)
  340.         format (strName, 191, "%s(%s)^4[Vip][%s][%s] ^3%s:",alive , playerTeamName, g_prefix[id], RANKS[PlayerRank[id]], name)
  341.         format (strText, 191, "^4%s", message)
  342.     }
  343.    
  344.     else if(get_user_flags(id)&ADMIN_USER)
  345.     {
  346.         getTeam(id)
  347.         format (strName, 191, "%s(%s)^4[%s][%s] ^3%s:",alive ,playerTeamName, g_prefix[id], RANKS[PlayerRank[id]], name)
  348.         format (strText, 191, "^1%s", message)
  349.     }
  350.    else if(g_hasprefix[id])
  351.     {
  352.         getTeam(id)
  353.         format (strName, 191, "%s(%s)^4[%s][%s] ^3%s:",alive ,playerTeamName, g_prefix[id], RANKS[PlayerRank[id]], name)
  354.         format (strText, 191, "^1%s", message)
  355.     }
  356.    
  357.     format (message, 191, "%s ^1%s", strName, strText)
  358.     sendTeamMessage (color,isAlive, playerTeam)
  359.    
  360.     return PLUGIN_CONTINUE
  361. }
  362.  
  363. public sendMessage (color[], alive)
  364. {
  365.     new teamName[10]
  366.    
  367.     for (new player = 1; player < maxPlayers; player++)
  368.     {
  369.         if (!is_user_connected(player))
  370.             continue
  371.         if((alive && is_user_alive(player)) || (!alive && !is_user_alive(player)) || (get_user_flags(player) && ADMIN_LISTEN))
  372.         {
  373.             get_user_team (player, teamName, 9)
  374.             changeTeamInfo (player, color)
  375.             writeMessage (player, message)
  376.             changeTeamInfo (player, teamName)
  377.         }
  378.     }
  379. }
  380.  
  381. public sendTeamMessage (color[], alive, playerTeam)
  382. {
  383.     new teamName[10]
  384.    
  385.     for (new player = 1; player < maxPlayers; player++)
  386.     {
  387.         if (!is_user_connected(player))
  388.             continue
  389.        
  390.         if (get_user_team(player) == playerTeam || get_user_flags(player) & ADMIN_LISTEN)
  391.         {
  392.             if (alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_user_flags(player) & ADMIN_LISTEN)
  393.             {
  394.                 get_user_team (player, teamName, 9)
  395.                 changeTeamInfo (player, color)
  396.                 writeMessage (player, message)
  397.                 changeTeamInfo (player, teamName)
  398.             }
  399.         }
  400.     }
  401. }
  402.  
  403. public changeTeamInfo (player, team[])
  404. {
  405.     message_begin (MSG_ONE, teamInfo, _, player)
  406.     write_byte (player)
  407.     write_string (team)
  408.     message_end()
  409. }
  410.  
  411. public writeMessage (player, message[])
  412. {
  413.     message_begin (MSG_ONE, sayText, {0, 0, 0}, player)
  414.     write_byte (player)
  415.     write_string (message)
  416.     message_end ()
  417. }
  418.  
  419. stock bool:is_user_steam(id)
  420. {
  421.     static dp_pointer;
  422.    
  423.     if (dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
  424.     {
  425.         server_cmd("dp_clientinfo %d", id);
  426.         server_exec();
  427.         return (get_pcvar_num(dp_pointer) == 2) ? true : false;
  428.     }
  429.  
  430.     return false;
  431. }
  432.  
  433. public client_putinserver(id)
  434. {
  435.     if(get_cvar_num("sv_rankrendszer")==0)
  436.     {
  437.         return PLUGIN_HANDLED
  438.     }
  439.     else if (get_cvar_num("sv_rankrendszer")==1 && get_cvar_num("sv_rankrendszer_HUD")==1)
  440.     {
  441.         g_bHud[ id ] = true;
  442.         set_task(HUD_INTERVAL, "setDisplay", id)
  443.     }
  444.     else
  445.     {
  446.         set_task(0.5, "remTask", id)
  447.     }
  448.    
  449.    get_user_authid(id, g_authid[id], charsmax(g_authid))
  450.    sql_load_user(id)
  451.     return PLUGIN_CONTINUE
  452. }
  453. public client_disconnect(id)
  454. {
  455.    if(is_user_bot(id))
  456.       return
  457.      
  458.    g_hasprefix[id] = false
  459.    g_prefix[id] = ""
  460.    g_authid[id] = ""
  461. }
  462.  
  463. public remTask(id)
  464. {
  465.     remove_task(id, 0)
  466. }
  467.  
  468. public getTeam(id)
  469. {
  470.     get_user_team (id, color, 9)
  471. }
  472.  
  473. public setDisplay(id)
  474. {
  475.     if(!is_user_connected(id))
  476.         return PLUGIN_CONTINUE
  477.    
  478.     new stats[8]
  479.     new bodyhits[8]
  480.     get_user_stats(id, stats, bodyhits)
  481.    
  482.     if(stats[0] < 50)
  483.     {
  484.         PlayerRank[id] = RANK_SILVER
  485.     }
  486.     else if(stats[0] >= 50 && stats[0] < 200)
  487.     {
  488.         PlayerRank[id] = RANK_SILVER2
  489.     }
  490.     else if(stats[0] >= 200 && stats[0] < 350)
  491.     {
  492.         PlayerRank[id] = RANK_SILVER3
  493.     }
  494.     else if(stats[0] >= 350 && stats[0] < 450)
  495.     {
  496.         PlayerRank[id] = RANK_SILVER4
  497.     }
  498.     else if(stats[0] >= 450 && stats[0] < 600)
  499.     {
  500.         PlayerRank[id] = RANK_SILVERE
  501.     }
  502.     else if(stats[0] >= 600 && stats[0] < 800)
  503.     {
  504.         PlayerRank[id] = RANK_SILVEREM
  505.     }
  506.     else if(stats[0] >= 800 && stats[0] < 1150)
  507.     {
  508.         PlayerRank[id] = RANK_NOVA
  509.     }
  510.     else if(stats[0] >= 1150&& stats[0] < 1400)
  511.     {
  512.         PlayerRank[id] = RANK_NOVA2
  513.     }
  514.     else if(stats[0] >= 1400 && stats[0] < 1600)
  515.     {
  516.         PlayerRank[id] = RANK_NOVA3
  517.     }
  518.     else if(stats[0] >= 1600 && stats[0] < 1850)
  519.     {
  520.         PlayerRank[id] = RANK_NOVAM
  521.     }
  522.     else if(stats[0] >= 1850 && stats[0] < 2200)
  523.     {
  524.         PlayerRank[id] = RANK_AK
  525.     }
  526.     else if(stats[0] >= 2200 && stats[0] < 2450)
  527.     {
  528.         PlayerRank[id] = RANK_AK2
  529.     }
  530.     else if(stats[0] >= 2450 && stats[0] < 2600)
  531.     {
  532.         PlayerRank[id] = RANK_DAK
  533.     }
  534.     else if(stats[0] >= 2600 && stats[0] < 2800)
  535.     {
  536.         PlayerRank[id] = RANK_SHERIFF
  537.     }
  538.     else if(stats[0] >= 2800 && stats[0] < 3200)
  539.     {
  540.         PlayerRank[id] = RANK_SAS
  541.     }
  542.     else if(stats[0] >= 3200 && stats[0] < 3500)
  543.     {
  544.         PlayerRank[id] = RANK_SASM
  545.     }
  546.     else if(stats[0] >= 3500 && stats[0] < 4000)
  547.     {
  548.         PlayerRank[id] = RANK_SUPREME
  549.     }
  550.     else if(stats[0] >= 4000 && stats[0] < 4500)
  551.     {
  552.         PlayerRank[id] = RANK_GLOBAL
  553.     }
  554.     else if(stats[0] >= 4500)
  555.     {
  556.         PlayerRank[id] = RANK_UBER
  557.     }
  558.    
  559.     set_hudmessage(random_num(15, 255), random_num(15, 255), random_num(15, 255), 0.01, 0.20, 0, 6.0, 1.0, 0.0, 0.0, -1)
  560.     show_hudmessage(id, "^nÖléseid: %i^nRangod: %s^nParancsok: /rang, /rangok, /hud", stats[0], RANKS[PlayerRank[id]])
  561.     //show_hudmessage(id, "%s ^nÖlések: %i ^nRang: %s", name, stats[0], RANKS[PlayerRank[id]])
  562.    
  563.     set_task(HUD_INTERVAL, "setDisplay", id)
  564.    
  565.     return PLUGIN_CONTINUE
  566. }
  567. public chat_prefix(id, lvl, cid)
  568. {
  569.    if(!cmd_access(id, lvl, cid, 0))
  570.       return PLUGIN_HANDLED
  571.    
  572.    new Arg1[40], Arg2[40]
  573.    read_argv(1, Arg1, charsmax(Arg1))
  574.    read_argv(2, Arg2, charsmax(Arg2))
  575.    
  576.    new player = cmd_target(id, Arg1, 1)
  577.    if (!player)
  578.       return PLUGIN_HANDLED
  579.      
  580.    if(g_hasprefix[player])
  581.    {
  582.       g_prefix[player] = Arg2
  583.       g_hasprefix[player] = true
  584.       sql_user(player, 0)
  585.       return PLUGIN_HANDLED
  586.    }
  587.    g_prefix[player] = Arg2
  588.    g_hasprefix[player] = true
  589.    sql_user(player, 1)
  590.    return PLUGIN_HANDLED
  591. }
  592. public console_prefix(id, lvl, cid)
  593. {
  594.    if(!cmd_access(id, lvl, cid, 0))
  595.       return PLUGIN_HANDLED
  596.    
  597.    new Arg1[40], Arg2[40]
  598.    read_argv(1, Arg1, charsmax(Arg1))
  599.    read_argv(2, Arg2, charsmax(Arg2))
  600.    
  601.    new player = cmd_target(id, Arg1, 1)
  602.    if (!player)
  603.       return PLUGIN_HANDLED
  604.    
  605.    if(g_hasprefix[player])
  606.    {
  607.       g_prefix[player] = Arg2
  608.       g_hasprefix[player] = true
  609.       sql_user(player, 0)
  610.       return PLUGIN_HANDLED
  611.    }
  612.    g_prefix[player] = Arg2
  613.    g_hasprefix[player] = true
  614.    sql_user(player, 1)
  615.    return PLUGIN_HANDLED
  616. }
  617. public sql_user(player, mode)
  618. {
  619.    static Query[256]
  620.  
  621.    if(mode == 0)
  622.       formatex(Query, charsmax(Query), "UPDATE `prefixek` SET `prefix` = '%s' WHERE `steamid` = '%s';", g_prefix[player], g_authid[player]);
  623.    else
  624.       formatex(Query, charsmax(Query), "INSERT INTO `prefixek` (`steamid`, `prefix`) VALUES ('%s', '%s');", g_authid[player], g_prefix[player]);
  625.    SQL_ThreadQuery(g_SqlTuple, "sql_user_thr", Query);
  626. }
  627. public sql_user_thr(FailState, Handle:Query, Error[], Errcode, DataSize, Float:Queuetime) {
  628.    if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  629.       log_amx("%s", Error);
  630.       return;
  631.    }
  632. }
  633. public sql_load_user(id)
  634. {
  635.    static Query[512];
  636.    static szData[2]
  637.    szData[0] = id
  638.    szData[1] = get_user_userid(id)
  639.    
  640.    formatex(Query, charsmax(Query), "SELECT * FROM `prefixek` WHERE `authid` = '%s';", g_authid[id])
  641.    SQL_ThreadQuery(g_SqlTuple, "sql_load_user_thr", Query, szData, 2)
  642. }
  643. public sql_load_user_thr(FailState, Handle:Query, Error[], Errcode, szData[], DataSize, Float:Queuetime)
  644. {
  645.    if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  646.       log_amx("%s", Error);
  647.       return;
  648.    }
  649.    else
  650.    {
  651.       new id = szData[0]
  652.      
  653.       if(szData[1] != get_user_userid(id))
  654.          return
  655.      
  656.       if(SQL_NumRows(Query) > 0)
  657.       {
  658.          SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "prefix"), g_prefix[id], charsmax(g_prefix[]))
  659.          g_hasprefix[id] = true
  660.       }
  661.    }
  662. }
  663. stock ColorChat(const id, const input[], any:...)
  664. {
  665.     new count = 1, players[32];
  666.     static msg[191];
  667.     vformat(msg, 190, input, 3);
  668.    
  669.     replace_all(msg, 190, "!g", "^4"); // Green Color
  670.     replace_all(msg, 190, "!y", "^1"); // Default Color
  671.     replace_all(msg, 190, "!t", "^3"); // Team Color
  672.    
  673.     if (id) players[0] = id; else get_players(players, count, "ch");
  674.     {
  675.         for (new i = 0; i < count; i++)
  676.         {
  677.             if (is_user_connected(players[i]))
  678.             {
  679.                 message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
  680.                 write_byte(players[i]);
  681.                 write_string(msg);
  682.                 message_end();
  683.             }
  684.         }
  685.     }
  686. }


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Egyedi prefix
HozzászólásElküldve: 2019.03.13. 22:17 
Offline
Senior Tag

Csatlakozott: 2017.04.30. 17:21
Hozzászólások: 286
Megköszönt másnak: 49 alkalommal
Megköszönték neki: 66 alkalommal
Kód:
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,
    return PLUGIN_CONTINUE
   
    new name[32]
    get_user_name (id, name, 31)
   
    new isAlive, alive[32]
   
    if (is_user_alive (id))
    {
        isAlive = 1
        alive = "^1*Él*"
    }
    else
    {
        isAlive = 0
        alive = "^1*Halott* "
    }
   
    //static color[10]
   
    if(get_user_flags(id)&ADMIN_CVAR)
    {
        //get_user_team (id, color, 9)
        getTeam(id)
        format (strName, 191, "%s^3[Tulaj]^4[%s] ^3%s:", alive, RANKS[PlayerRank[id]], name)
        format (strText, 191, "^4%s", message)
    } 
   
    else if(get_user_flags(id)&ADMIN_MAP)
    {
        getTeam(id)
        format (strName, 191, "%s^4[Admin][%s] ^3%s:", alive, RANKS[PlayerRank[id]], name)
        format (strText, 191, "^4%s", message)
    }   
   
    else if(get_user_flags(id)&ADMIN_MENU)
    {
        getTeam(id)
        format (strName, 191, "%s^4[Vip][%s] ^3%s:", alive, RANKS[PlayerRank[id]], name)
        format (strText, 191, "^4%s", message)
    }
    else if(g_hasprefix[id])
    {
        getTeam(id)
        format (strName, 191, "%s^4[%s][%s] ^3%s:",alive, g_prefix[id], RANKS[PlayerRank[id]], name)
        format (strText, 191, "^1%s", message)
    }
    else
   {
        getTeam(id)
        format (strName, 191, "%s^4[%s] ^3%s:",alive, RANKS[PlayerRank[id]], name)
        format (strText, 191, "^1%s", message)
    }
   
    format (message, 191, "%s ^1%s", strName, strText)
    sendMessage (color, isAlive)
   
    return PLUGIN_CONTINUE
}
 
public hook_teamsay(id)
{
    new playerTeam = get_user_team(id)
    new playerTeamName[19]
   
    switch (playerTeam)
    {
        case 1:
            copy (playerTeamName, 11, "Terrorista")
       
        case 2:
            copy (playerTeamName, 18, "Anti-Terrorista")
       
        default:
            copy (playerTeamName, 9, "NĂ©zĹ‘")
    }
   
    read_args (message, 191)
    remove_quotes (message)
   
    if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, ""))
    return PLUGIN_CONTINUE
   
    new isAlive, alive[32]
   
    if (is_user_alive (id))
    {
        isAlive = 1
        alive = "^1*Él*"
    }
    else
    {
        isAlive = 0
        alive = "^1*Halott* "
    }
   
    new name[32]
    get_user_name (id, name, 31)
   
    //static color[10]
   
    if(get_user_flags(id)&ADMIN_CVAR)
    {
        //get_user_team (id, color, 9)
        getTeam(id)
        format (strName, 191, "%s(%s)^3[Tulaj]^3[%s] ^3%s:",alive , playerTeamName, RANKS[PlayerRank[id]], name)
        format (strText, 191, "^4%s", message)
    } 
   
    else if(get_user_flags(id)&ADMIN_MAP)
    {
        getTeam(id)
        format (strName, 191, "%s(%s)^4[Admin][%s] ^3%s:",alive , playerTeamName, RANKS[PlayerRank[id]], name)
        format (strText, 191, "^4%s", message)
    }   
   
    else if(get_user_flags(id)&ADMIN_MENU)
    {
        getTeam(id)
        format (strName, 191, "%s(%s)^4[Vip][%s] ^3%s:",alive , playerTeamName, RANKS[PlayerRank[id]], name)
        format (strText, 191, "^4%s", message)
    }
    else if(g_hasprefix[id])
    {
        getTeam(id)
        format (strName, 191, "%s(%s)^4[%s][%s] ^3%s:",alive ,playerTeamName, g_prefix[id], RANKS[PlayerRank[id]], name)
        format (strText, 191, "^1%s", message)
    }
    else
    {
        getTeam(id)
        format (strName, 191, "%s(%s)^4[%s] ^3%s:",alive ,playerTeamName, RANKS[PlayerRank[id]], name)
        format (strText, 191, "^1%s", message)
    }
   
    format (message, 191, "%s ^1%s", strName, strText)
    sendTeamMessage (color,isAlive, playerTeam)
   
    return PLUGIN_CONTINUE
}


Nem nagyon nézegéltem azt csak hozzá csaptam de csak fel kellett cserélni a sorrendet vagy átírni egy picit igy lenne a helyes, de persze amit yeryy is küldött sem hibás csak annyi, hogy tulaj prefix mellett vagy admin mellette fogja írni az egyedi prefixet vagy épp ha nincs is prefixe akkor: [Tulaj][][Silver I] aarpi: asd-ként írja..


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Egyedi prefix
HozzászólásElküldve: 2019.03.13. 22:19 
Offline
Lelkes

Csatlakozott: 2019.03.04. 21:27
Hozzászólások: 17
Megköszönt másnak: 1 alkalommal
aarpi. írta:
Kód:
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,
    return PLUGIN_CONTINUE
   
    new name[32]
    get_user_name (id, name, 31)
   
    new isAlive, alive[32]
   
    if (is_user_alive (id))
    {
        isAlive = 1
        alive = "^1*Él*"
    }
    else
    {
        isAlive = 0
        alive = "^1*Halott* "
    }
   
    //static color[10]
   
    if(get_user_flags(id)&ADMIN_CVAR)
    {
        //get_user_team (id, color, 9)
        getTeam(id)
        format (strName, 191, "%s^3[Tulaj]^4[%s] ^3%s:", alive, RANKS[PlayerRank[id]], name)
        format (strText, 191, "^4%s", message)
    } 
   
    else if(get_user_flags(id)&ADMIN_MAP)
    {
        getTeam(id)
        format (strName, 191, "%s^4[Admin][%s] ^3%s:", alive, RANKS[PlayerRank[id]], name)
        format (strText, 191, "^4%s", message)
    }   
   
    else if(get_user_flags(id)&ADMIN_MENU)
    {
        getTeam(id)
        format (strName, 191, "%s^4[Vip][%s] ^3%s:", alive, RANKS[PlayerRank[id]], name)
        format (strText, 191, "^4%s", message)
    }
    else if(g_hasprefix[id])
    {
        getTeam(id)
        format (strName, 191, "%s^4[%s][%s] ^3%s:",alive, g_prefix[id], RANKS[PlayerRank[id]], name)
        format (strText, 191, "^1%s", message)
    }
    else
   {
        getTeam(id)
        format (strName, 191, "%s^4[%s] ^3%s:",alive, RANKS[PlayerRank[id]], name)
        format (strText, 191, "^1%s", message)
    }
   
    format (message, 191, "%s ^1%s", strName, strText)
    sendMessage (color, isAlive)
   
    return PLUGIN_CONTINUE
}
 
public hook_teamsay(id)
{
    new playerTeam = get_user_team(id)
    new playerTeamName[19]
   
    switch (playerTeam)
    {
        case 1:
            copy (playerTeamName, 11, "Terrorista")
       
        case 2:
            copy (playerTeamName, 18, "Anti-Terrorista")
       
        default:
            copy (playerTeamName, 9, "NĂ©zĹ‘")
    }
   
    read_args (message, 191)
    remove_quotes (message)
   
    if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, ""))
    return PLUGIN_CONTINUE
   
    new isAlive, alive[32]
   
    if (is_user_alive (id))
    {
        isAlive = 1
        alive = "^1*Él*"
    }
    else
    {
        isAlive = 0
        alive = "^1*Halott* "
    }
   
    new name[32]
    get_user_name (id, name, 31)
   
    //static color[10]
   
    if(get_user_flags(id)&ADMIN_CVAR)
    {
        //get_user_team (id, color, 9)
        getTeam(id)
        format (strName, 191, "%s(%s)^3[Tulaj]^3[%s] ^3%s:",alive , playerTeamName, RANKS[PlayerRank[id]], name)
        format (strText, 191, "^4%s", message)
    } 
   
    else if(get_user_flags(id)&ADMIN_MAP)
    {
        getTeam(id)
        format (strName, 191, "%s(%s)^4[Admin][%s] ^3%s:",alive , playerTeamName, RANKS[PlayerRank[id]], name)
        format (strText, 191, "^4%s", message)
    }   
   
    else if(get_user_flags(id)&ADMIN_MENU)
    {
        getTeam(id)
        format (strName, 191, "%s(%s)^4[Vip][%s] ^3%s:",alive , playerTeamName, RANKS[PlayerRank[id]], name)
        format (strText, 191, "^4%s", message)
    }
    else if(g_hasprefix[id])
    {
        getTeam(id)
        format (strName, 191, "%s(%s)^4[%s][%s] ^3%s:",alive ,playerTeamName, g_prefix[id], RANKS[PlayerRank[id]], name)
        format (strText, 191, "^1%s", message)
    }
    else
    {
        getTeam(id)
        format (strName, 191, "%s(%s)^4[%s] ^3%s:",alive ,playerTeamName, RANKS[PlayerRank[id]], name)
        format (strText, 191, "^1%s", message)
    }
   
    format (message, 191, "%s ^1%s", strName, strText)
    sendTeamMessage (color,isAlive, playerTeam)
   
    return PLUGIN_CONTINUE
}


Nem nagyon nézegéltem azt csak hozzá csaptam de csak fel kellett cserélni a sorrendet vagy átírni egy picit igy lenne a helyes, de persze amit yeryy is küldött sem hibás csak annyi, hogy tulaj prefix mellett vagy admin mellette fogja írni az egyedi prefixet vagy épp ha nincs is prefixe akkor: [Tulaj][][Silver I] aarpi: asd-ként írja..


akkor azt így kelllene meg oldani
[VIP][%s][%s]^x03%s^x04: %s"
hogy ne hagyd ki mellete a Sorokat nekem így lett jó még. pl így ne [VIP][%s] [%s] ^x03%s^x04: %s"


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Egyedi prefix
HozzászólásElküldve: 2019.03.14. 19:44 
Offline
Senior Tag
Avatar

Csatlakozott: 2018.02.01. 16:27
Hozzászólások: 225
Megköszönt másnak: 14 alkalommal
Megköszönték neki: 18 alkalommal
Helló!

Én most pontosan nem értem hogy milyen "Egyedi Prefix" kellene, nem olyanra gondolsz amit menüből tudnak maguknak adni a játékosok, és kedvük szerint módosítani?


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Egyedi prefix
HozzászólásElküldve: 2019.03.15. 00:40 
Offline
Fanatikus
Avatar

Csatlakozott: 2018.02.06. 14:07
Hozzászólások: 182
Megköszönt másnak: 19 alkalommal
Megköszönték neki: 12 alkalommal
Tomii írta:
Helló!

Én most pontosan nem értem hogy milyen "Egyedi Prefix" kellene, nem olyanra gondolsz amit menüből tudnak maguknak adni a játékosok, és kedvük szerint módosítani?


Szia nem én olyat szeretnék amivel csak én adhatok nekik vagyis csak akkor lesz nekik prefix ha én adom meg nekik! :)

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Egyedi prefix
HozzászólásElküldve: 2019.03.15. 18:11 
Offline
Tud valamit
Avatar

Csatlakozott: 2018.02.07. 01:13
Hozzászólások: 127
Megköszönt másnak: 7 alkalommal
Megköszönték neki: 25 alkalommal
Tomii írta:
Helló!

Én most pontosan nem értem hogy milyen "Egyedi Prefix" kellene, nem olyanra gondolsz amit menüből tudnak maguknak adni a játékosok, és kedvük szerint módosítani?

Engem erdekelne


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Egyedi prefix
HozzászólásElküldve: 2019.03.15. 18:31 
Offline
Fanatikus

Csatlakozott: 2018.05.05. 18:34
Hozzászólások: 198
Megköszönt másnak: 39 alkalommal
Megköszönték neki: 8 alkalommal
Az én szerveremen olyan van hogy x dollár ért tudnak venni egyedi rangot és azt chatben kiírja nekik.
Olyanra gondolsz?

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Egyedi prefix
HozzászólásElküldve: 2019.03.15. 19:27 
Offline
Senior Tag
Avatar

Csatlakozott: 2018.02.01. 16:27
Hozzászólások: 225
Megköszönt másnak: 14 alkalommal
Megköszönték neki: 18 alkalommal
  1. //Egyedi Prefix// *
  2. new PChat[33][32], VanPrefix[33], Temp[192];
  3. static color[10];
  4.  
  5. public plugin_init()
  6. {
  7.     register_clcmd("Prefix", "Chat_Prefix_Hozzaad");
  8. }
  9.  
  10. public Bolt(id)
  11. {
  12.     new String[121];
  13.     if(VanPrefix[id] >= 1)
  14.     {
  15.         format(String, charsmax(String), "%s \r- \dEgyedi prefix \r* ^n\rHasználatban lévő Prefixed: \d%s", Prefix, PChat[id]);
  16.     }
  17.     else
  18.     {
  19.         format(String, charsmax(String), "%s \r- \dEgyedi prefix \r* ^n\rHasználatban lévő Prefixed: \dNincs", Prefix);
  20.     }
  21.     new menu = menu_create(String, "Prefix_h");
  22.    
  23.     formatex(String, charsmax(String), "Prefix Hozzáadása", VanPrefix[id]);
  24.     menu_additem(menu, String, "1", 0);
  25.    
  26.     menu_display(id, menu, 0);
  27. }
  28. public Prefix_h(id, menu, item)
  29. {
  30.     if(item == MENU_EXIT)
  31.     {
  32.         menu_destroy(menu);
  33.         return;
  34.     }
  35.     new data[9], szName[64];
  36.     new access, callback;
  37.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  38.     new key = str_to_num(data);
  39.    
  40.     switch(key)
  41.     {
  42.         case 1:
  43.         {
  44.             if(Arany[id] >= 500)
  45.             {
  46.                 client_cmd(id, "messagemode Prefix");
  47.             }
  48.             else
  49.             ColorChat(id, GREEN, "^4%s ^3» ^1Sajnos nincs elég ^3Aranyad^1!", Chat_Prefix)
  50.         }
  51.     }
  52. }
  53.  
  54. public Chat_Prefix_Hozzaad(id)
  55. {
  56.     new Data[32];
  57.     new hosszusag = strlen(Data);
  58.     read_args(Data, charsmax(Data));
  59.     remove_quotes(Data);
  60.     if(hosszusag >= 5)
  61.     {
  62.         PChat[id] = Data;
  63.         VanPrefix[id]++;
  64.         Bolt(id);
  65.     }
  66.     return PLUGIN_CONTINUE;
  67. }


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 20 hozzászólás ]  Oldal Előző 1 2


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 4 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole