Modificare Plugin

Modificari necesare ale pluginurilor

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
User avatar
WarGods - Tranda
Membru, skill 0
Membru, skill 0
Posts: 33
Joined: 08 Oct 2015, 21:52
Detinator Steam: Da
Fond eXtream: 0
Location: Planeta de Sus
Discord: unknown.cfg
Has thanked: 17 times

01 Nov 2022, 09:17

Salut. As dori modificarea pluginului astfel:
Atunci cand in say/say_team se foloseste comanda /skano, sa fie afisat un meniu cu jucatorii conectati pe server. Daca un player este selectat din meniu, sa fie transferat la spec si sa se afiseze mesajele din plugin.
Multumesc.

Code: Select all

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>

#define PLUGIN "Wargods"
#define VERSION "1.1.3"
#define AUTHOR "Dann"

#define TAG "WarGods"

#define MOTD_LOCATION "addons/amxmodx/configs/wargod.html"

new const REASON_BAN[] = "Deshtoj Verifikimi WG";

new bool:hascan[33], cvars[3]
new store_team

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)

    register_clcmd("say", "cmd_say")
    register_clcmd("say_team", "cmd_say")

    cvars[0] = register_cvar("wcd_disconnect_ban", "1")
    cvars[1] = register_cvar("wcd_minim_acces_flag", "d") // kick acces
    cvars[2] = register_cvar("wcd_time_for_ban", "2")

    register_dictionary("wargods.txt")
}

public client_connect(id)
{
    hascan[id] = false
}

public client_disconnect(id)
{
    if(hascan[id] && get_pcvar_num(cvars[0]) == 1)
    {
        new sName[32];
        get_user_name(id, sName, charsmax(sName));
    
        hascan[id] = false
        client_cmd(0, "spk ^"vox/bizwarn eliminated")
        server_cmd("amx_ban %i %s %s", get_pcvar_num(cvars[2]), sName, REASON_BAN)
    }
}


public cmd_say(id)
{
    new szSaid[192]
    read_args(szSaid, charsmax(szSaid))
    remove_quotes(szSaid)

    if(contain(szSaid, "/skano") != -1)
    {
        if(get_user_flags(id) & get_pcvar_flags(cvars[1]))
        {
            new target[32]
            copy(target, sizeof(target) -1, szSaid[6])
            new player = cmd_target(id, target, 2)

            if(player)
            {
                new pname[32], admin[32]
                get_user_name(player, pname, charsmax(pname))
                get_user_name(id, admin, charsmax(admin))

                if(hascan[player])
                {
                    ColorChat(id, "%L", LANG_SERVER, "ALREADY_HAVE", TAG)
                    return PLUGIN_HANDLED
                }
                else
                {
                    new timer[64]
                    get_time("%d/%m/%Y - %H:%M:%S", timer, charsmax(timer))
                    hascan[player] = true
                    store_team = get_user_team(player)
                    user_silentkill(player)
                    cs_set_user_team(player, CS_TEAM_SPECTATOR)

                    ColorChat(0, "%L", LANG_SERVER, "MAKE_WCD", TAG, admin, pname, timer)
                    ColorChat(0, "%L", LANG_SERVER, "DOWNLOAD_LINK", TAG)
                    ColorChat(0, "%L", LANG_SERVER, "INFO_WCD", TAG)
                    client_cmd(id, "snapshot")
                    return PLUGIN_CONTINUE
                }
            }
            else
            {
                ColorChat(id, "%L", LANG_SERVER, "INVALID_PLAYER", TAG)
                return PLUGIN_HANDLED
            }
        }
    }
    else if(contain(szSaid, "/paster") != -1)
    {
        if(get_user_flags(id) & get_pcvar_flags(cvars[1]))
        {
            new target[32]
            copy(target, charsmax(target), szSaid[7])
            new player = cmd_target(id, target, 2)

            if(player)
            {
                new pname[32]
                get_user_name(player, pname, charsmax(pname))
                cs_set_user_team(player, store_team)
                hascan[player] = false

                ColorChat(0, "%L", LANG_SERVER, "PLAYER_CLEAN", TAG, pname)
                return PLUGIN_CONTINUE
            }
            else
            {
                ColorChat(id, "%L", LANG_SERVER, "INVALID_PLAYER", TAG)
                return PLUGIN_HANDLED
            }
        }
    }
    else if(equal(szSaid, "/wg") || equal(szSaid, "/wargod"))
    {
        show_motd(id, MOTD_LOCATION)
    }

    return PLUGIN_CONTINUE
}

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");
    replace_all(Msg, 190, "!y", "^1");
    replace_all(Msg, 190, "!t", "^3");

    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();
            }
        }
    }
    return PLUGIN_HANDLED
}
RoyalServer
User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3844
Joined: 24 Aug 2011, 12:24
Detinator Steam: Da
CS Status:
Detinator server CS: ☯∴
SteamID: riseofevo
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 594 times
Contact:

01 Nov 2022, 13:13

Code: Select all

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>

#define PLUGIN "Wargods"
#define VERSION "1.1.3"
#define AUTHOR "Dann"

#define TAG "WarGods"

#define MOTD_LOCATION "addons/amxmodx/configs/wargod.html"

new const REASON_BAN[] = "Deshtoj Verifikimi WG";

new bool:hascan[33], cvars[3]
new store_team

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)

    register_clcmd("say", "cmd_say")
    register_clcmd("say_team", "cmd_say")

    cvars[0] = register_cvar("wcd_disconnect_ban", "1")
    cvars[1] = register_cvar("wcd_minim_acces_flag", "d") // kick acces
    cvars[2] = register_cvar("wcd_time_for_ban", "2")

    register_dictionary("wargods.txt")
}

public client_connect(id)
{
    hascan[id] = false
}

public client_disconnect(id)
{
    if(hascan[id] && get_pcvar_num(cvars[0]) == 1)
    {
        new sName[32];
        get_user_name(id, sName, charsmax(sName));
    
        hascan[id] = false
        client_cmd(0, "spk ^"vox/bizwarn eliminated")
        server_cmd("amx_ban %i %s %s", get_pcvar_num(cvars[2]), sName, REASON_BAN)
    }
}

public cmd_say(id)
{
    new szSaid[192]
    read_args(szSaid, charsmax(szSaid))
    remove_quotes(szSaid)

    if(contain(szSaid, "/skano") != -1)
    {
        if(get_user_flags(id) & get_pcvar_flags(cvars[1]))
        {
        	static players[32],num,nick[33],target,tid[32],menu
        	get_players(players, num, "ch")
        	menu=menu_create("Skano Players Menu", "_skano_pmh")
        	for(new i;i<num;i++)
        	{
        		target=players[i]
        		get_user_name(target, nick, charsmax(nick))
        		formatex(tid, charsmax(tid), "%d", get_user_userid(target))
        		menu_additem(menu, nick, tid)
        	}
        	menu_display(id, menu)
        }
    }
    else if(contain(szSaid, "/paster") != -1)
    {
        if(get_user_flags(id) & get_pcvar_flags(cvars[1]))
        {
            new target[32]
            copy(target, charsmax(target), szSaid[7])
            new player = cmd_target(id, target, 2)

            if(player)
            {
                new pname[32]
                get_user_name(player, pname, charsmax(pname))
                cs_set_user_team(player, store_team)
                hascan[player] = false

                ColorChat(0, "%L", LANG_SERVER, "PLAYER_CLEAN", TAG, pname)
                return PLUGIN_CONTINUE
            }
            else
            {
                ColorChat(id, "%L", LANG_SERVER, "INVALID_PLAYER", TAG)
                return PLUGIN_HANDLED
            }
        }
    }
    else if(equal(szSaid, "/wg") || equal(szSaid, "/wargod"))
    {
        show_motd(id, MOTD_LOCATION)
    }

    return PLUGIN_CONTINUE
}
public _skano_pmh(id, menu, item)
{
    if(item == MENU_EXIT)
    {
        menu_destroy(menu)
        return PLUGIN_HANDLED
    }

    static szData[6], szName[64], _access, item_callback, tid, target
    menu_item_getinfo(menu, item, _access, szData, charsmax(szData), szName, charsmax(szName), item_callback)

    tid = str_to_num(szData)

    target = find_player("k", tid)

    if(target)
    {
        if(hascan[target])
        {
            ColorChat(id, "%L", LANG_SERVER, "ALREADY_HAVE", TAG)
            return PLUGIN_HANDLED
        }
        else
        {
	        static pname[33], admin[33],timer[25]
	        get_user_name(target, pname, charsmax(pname))
	        get_user_name(id, admin, charsmax(admin))
            get_time("%d/%m/%Y - %H:%M:%S", timer, charsmax(timer))
            hascan[target] = true
            store_team = get_user_team(target)
            user_silentkill(target)
            cs_set_user_team(target, CS_TEAM_SPECTATOR)

            ColorChat(0, "%L", LANG_SERVER, "MAKE_WCD", TAG, admin, pname, timer)
            ColorChat(0, "%L", LANG_SERVER, "DOWNLOAD_LINK", TAG)
            ColorChat(0, "%L", LANG_SERVER, "INFO_WCD", TAG)
            client_cmd(id, "snapshot")
        }
    }
    else
    {
        ColorChat(id, "%L", LANG_SERVER, "INVALID_PLAYER", TAG)
        return PLUGIN_HANDLED
    }

    menu_destroy(menu)
    return PLUGIN_HANDLED
}

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");
    replace_all(Msg, 190, "!y", "^1");
    replace_all(Msg, 190, "!t", "^3");

    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();
            }
        }
    }
    return PLUGIN_HANDLED
}
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
Post Reply

Return to “Modificari pluginuri”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 14 guests