AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Anty-Retry plugin help (https://forums.alliedmods.net/showthread.php?t=326334)

Al3xandru27 07-27-2020 12:08

Anty-Retry plugin help
 
I want you to remove my hud message and put me in a chat message to say "[Anty-Retry] Player a dat retry degeaba :)"


PHP Code:

    /*    Copyright © 2008, ConnorMcLeod

    Reconnect Features is free software;
    you can redistribute it and/or modify it under the terms of the
    GNU General Public License as published by the Free Software Foundation.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with Reconnect Features; if not, write to the
    Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.
*/

#include <amxmodx>
#include <fakemeta>

/****** Customization Area ******/
// Flag to allow admin to reconnect without hudmessage
// This is usefull when you reconnect with another nick to watch a suspected cheater
// This will still set back your score/money/...
#define ADMIN_SILENT ADMIN_KICK

// Color for hud message
#define RED    0
#define GREEN    100
#define BLUE    200
/********************************/

#define PLUGIN "Reconnect Features"
#define AUTHOR "ConnorMcLeod"
#define VERSION "0.2.4 BETA"

#define MAX_PLAYERS    32
#define MAX_STORED     64

#define OFFSET_CSMONEY    115
#define OFFSET_CSDEATHS    444

#define TASK_KILL    1946573517
#define TASK_CLEAR    2946573517
#define TASK_PLAYER 3946573517


enum Storage {
    
StoreSteamId[20],
    
StoreFrags,
    
StoreDeaths,
    
StoreMoney,
    
StoreRound
}

new 
g_CurInfos[MAX_PLAYERS+1][Storage]
new 
g_StoredInfos[MAX_STORED][Storage]

new 
bool:g_bPlayerNonSpawnEvent[MAX_PLAYERS 1]
new 
g_iFwFmClientCommandPost

new g_iRoundNum

new g_pcvarTimeg_pcvarScoreg_pcvarMoneyg_pcvarSpawng_pcvarStartMoneyg_pcvarNotify
new mp_startmoney
new g_msgidDeathMsg
new g_iMaxPlayers

public plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
register_dictionary("reconnect.txt")

    
register_cvar("reconnect_features"VERSIONFCVAR_SERVER|FCVAR_EXTDLL|FCVAR_SPONLY)
    
g_pcvarTime register_cvar("amx_noreconnect_time""45")
    
g_pcvarScore register_cvar("amx_noreconnect_score""1")
    
g_pcvarMoney register_cvar("amx_noreconnect_money""1")
    
g_pcvarSpawn register_cvar("amx_noreconnect_spawn""1")
    
g_pcvarStartMoney register_cvar("amx_noreconnect_startmoney""0")
    
g_pcvarNotify register_cvar("amx_noreconnect_notify""1")

    
register_event("HLTV""eNewRound""a""1=0""2=0")

    
register_event("TextMsg""eRestart""a""2&#Game_C""2&#Game_w")

    
register_event("ResetHUD""Event_ResetHUD""b")
    
register_event("TextMsg""Event_TextMsg_GameWillRestartIn""a""2=#Game_will_restart_in")
    
register_clcmd("fullupdate""ClientCommand_fullupdate")

    
register_event("Money""eMoney""be")
    
register_event("ScoreInfo""eScoreInfo""a")
}

public 
plugin_cfg()
{
    
mp_startmoney get_cvar_pointer("mp_startmoney")
    
g_msgidDeathMsg get_user_msgid("DeathMsg")
    
g_iMaxPlayers global_get(glb_maxClients)
}

public 
Event_TextMsg_GameWillRestartIn()
{
    static 
id
    
for(id 1id <= g_iMaxPlayers; ++id)
        if( 
is_user_alive(id) )
            
g_bPlayerNonSpawnEvent[id] = true
}

public 
ClientCommand_fullupdate(id)
{
    
g_bPlayerNonSpawnEvent[id] = true
    
static const szClientCommandPost[] = "Forward_ClientCommand_Post"
    
g_iFwFmClientCommandPost register_forward(FM_ClientCommandszClientCommandPost1)
    return 
PLUGIN_CONTINUE
}

public 
Forward_ClientCommand_Post(id)
{
    
unregister_forward(FM_ClientCommandg_iFwFmClientCommandPost1)
    
g_bPlayerNonSpawnEvent[id] = false
    
return FMRES_HANDLED
}

public 
Event_ResetHUD(id)
{
    if (!
is_user_alive(id))
        return

    if (
g_bPlayerNonSpawnEvent[id])
    {
        
g_bPlayerNonSpawnEvent[id] = false
        
return
    }

    
Forward_PlayerSpawn(id)
}

Forward_PlayerSpawn(id)
{
    if(
g_CurInfos[id][StoreRound] == g_iRoundNum)
    {
        
g_CurInfos[id][StoreRound] = 0
        set_task
(0.1"task_delay_kill"id+TASK_KILL)
    }
}

public 
task_delay_kill(id)
{
    
id -= TASK_KILL

    
new Float:fFrags
    pev
(idpev_fragsfFrags)
    
set_pev(idpev_frags, ++fFrags)

    
set_pdata_int(idOFFSET_CSDEATHSget_pdata_int(idOFFSET_CSDEATHS) - 1)

    new 
msgblock get_msg_block(g_msgidDeathMsg)
    
set_msg_block(g_msgidDeathMsgBLOCK_ONCE)
    
dllfunc(DLLFunc_ClientKillid)
    
set_msg_block(g_msgidDeathMsgmsgblock)

    
client_print(idprint_chat"** [Anti-Retry] %L"id"RF_SPAWN")
}

public 
eMoney(id)
{
    
g_CurInfos[id][StoreMoney] = read_data(1)
}

public 
eScoreInfo()
{
    new 
id read_data(1)
    if(!(
1<= id <= g_iMaxPlayers))
        return

    
g_CurInfos[id][StoreFrags] = read_data(2)
    
g_CurInfos[id][StoreDeaths] = read_data(3)
}

public 
eRestart()
{
    for(new 
iMAX_STOREDi++)
    {
        
remove_task(i+TASK_CLEAR)
        
remove_task(i+TASK_PLAYER)
        
g_StoredInfos[i][StoreSteamId][0] = 0
    
}
}

public 
eNewRound()
{
    
g_iRoundNum++
}

public 
client_disconnect(id)
{
    if(
is_user_bot(id) || is_user_hltv(id))
    {
        return
    }

    new 
Float:fTaskTime get_pcvar_float(g_pcvarTime)
    if(!
fTaskTime)
        return

    static 
iFree
    
for(iFree 0iFree <= MAX_STOREDiFree++)
    {
        if(
iFree == MAX_STORED)
        {
            return
        }
        if(!
g_StoredInfos[iFree][StoreSteamId][0])
            break
    }

    
copy(g_StoredInfos[iFree][StoreSteamId], 19g_CurInfos[id][StoreSteamId])
    
g_StoredInfos[iFree][StoreFrags] = g_CurInfos[id][StoreFrags]
    
g_StoredInfos[iFree][StoreDeaths] = g_CurInfos[id][StoreDeaths]
    
g_StoredInfos[iFree][StoreMoney] = g_CurInfos[id][StoreMoney]
    
g_StoredInfos[iFree][StoreRound] = g_iRoundNum

    g_CurInfos
[id][StoreSteamId][0] = 0
    g_CurInfos
[id][StoreFrags] = 0
    g_CurInfos
[id][StoreDeaths] = 0
    g_CurInfos
[id][StoreMoney] = 0
    g_CurInfos
[id][StoreRound] = 0

    set_task
(fTaskTime"task_clear"iFree+TASK_CLEAR)
}

public 
task_clear(iTaskId)
{
    
iTaskId -= TASK_CLEAR
    g_StoredInfos
[iTaskId][StoreSteamId][0] = 0
}

public 
client_putinserver(id)
{
    if(
is_user_bot(id) || is_user_hltv(id))
        return

    
g_bPlayerNonSpawnEvent[id] = false

    
static szSteamId[20]
    
get_user_authid(idszSteamId19)
    
copy(g_CurInfos[id][StoreSteamId], 19szSteamId)

    for(new 
iMAX_STOREDi++)
    {
        if(!
g_StoredInfos[i][StoreSteamId][0])
            continue

        if( 
equal(g_StoredInfos[i][StoreSteamId], szSteamIdstrlen(szSteamId)) )
        {
            if(
get_pcvar_num(g_pcvarScore))
            {
                
set_pev(idpev_fragsfloat(g_StoredInfos[i][StoreFrags]))
                
set_pdata_int(idOFFSET_CSDEATHSg_StoredInfos[i][StoreDeaths])
                
g_CurInfos[id][StoreFrags] = g_StoredInfos[i][StoreFrags]
                
g_CurInfos[id][StoreDeaths] = g_StoredInfos[i][StoreDeaths]
            }
            if(
get_pcvar_num(g_pcvarMoney))
            {
                new 
iMoney g_StoredInfos[i][StoreMoney]
                new 
iStartMoney get_pcvar_num(mp_startmoney)
                if(
get_pcvar_num(g_pcvarStartMoney) && iMoney iStartMoney)
                {
                    
set_pdata_int(idOFFSET_CSMONEYiStartMoney)
                    
g_CurInfos[id][StoreMoney] = iStartMoney
                
}
                else
                {
                    
set_pdata_int(idOFFSET_CSMONEYiMoney)
                    
g_CurInfos[id][StoreMoney] = iMoney
                
}
            }
            if(
get_pcvar_num(g_pcvarSpawn))
            {
                
g_CurInfos[id][StoreRound] = g_StoredInfos[i][StoreRound]
            }

            
remove_task(id+TASK_PLAYER)
            
set_task(10.0"task_print_player"id+TASK_PLAYER)

            
g_StoredInfos[i][StoreSteamId][0] = 0

            
new iNotifyType get_pcvar_num(g_pcvarNotify)
            if(
iNotifyType && !(get_user_flags(id)&ADMIN_SILENT) )
            {
                static 
szName[32]
                
get_user_name(idszName31)
                if( 
iNotifyType == )
                {
                    
set_hudmessage(REDGREENBLUE, -1.00.3523.010.00.10.2, -1)
                    
show_hudmessage(0"%L"LANG_PLAYER"RF_ALL"szName)
                }
                else
                {
                    
client_print(0print_chat"** [Anti-Retry] %L"LANG_PLAYER"RF_ALL"szName)
                }
            }
            return
        }
    }
    
g_CurInfos[id][StoreRound] = -1
}

public 
task_print_player(id)
{
    if(
is_user_connected(id -= TASK_PLAYER))
    {
        static 
szText[128]
        new 
formatex(szText127"** [Anti-Retry] %L"id"RF_PLAYER_PRINT")
        if(
get_pcvar_num(g_pcvarScore))
            
+= formatex(szText[n], 127 n" %L"id"RF_SCORE")
        if(
get_pcvar_num(g_pcvarMoney))
            
+= formatex(szText[n], 127 n" %L"id"RF_MONEY")
        
client_print(idprint_chatszText)
    }



OciXCrom 07-27-2020 13:55

Re: Anty-Retry plugin help
 
Probably for the 26th time - this is not the "do it for me" section.

If you don't know how to script, use the plugin requests section.

If you know or are willing to learn, try and do it yourself, then post the code if you're having issues. For such a basic thing, I believe everyone with minimal experience can manage to do it.

Al3xandru27 07-27-2020 15:20

Re: Anty-Retry plugin help
 
I never put a message instead of a hud ..
can you help me please

OciXCrom 07-27-2020 16:18

Re: Anty-Retry plugin help
 
And you never will put if you don't try. It's funny how there's a chat message two lines below the HUD message and you just need to replace it. But of course posting a thread is much easier.

This is the code you need to change along with the example below it:

Code:
if( iNotifyType == 1 ) {     set_hudmessage(RED, GREEN, BLUE, -1.0, 0.35, 2, 3.0, 10.0, 0.1, 0.2, -1)     show_hudmessage(0, "%L", LANG_PLAYER, "RF_ALL", szName) } else {     client_print(0, print_chat, "** [Anti-Retry] %L", LANG_PLAYER, "RF_ALL", szName) }

Let's see if you can manage to pull out this simple task. It doesn't take a genius to figure it out.

Al3xandru27 07-27-2020 17:03

Re: Anty-Retry plugin help
 
PHP Code:

static szName[32]
                
get_user_name(idszName31)
                if( 
iNotifyType == )
                {
                    
client_print(0print_chat"** [Anti-Retry] %L a dat retry degeaba :)"LANG_PLAYER"RF_ALL"szName)
                }
                else
                {
                    
client_print(0print_chat"** [Anti-Retry] %L"LANG_PLAYER"RF_ALL"szName)
                }
            }
            return 


Al3xandru27 07-27-2020 17:04

Re: Anty-Retry plugin help
 
I think I succeeded :))
I'll test now

ZaX 07-27-2020 17:28

Re: Anty-Retry plugin help
 
You dont need the iNotifyType check then, youre sending the same message which is pointless.
remove if() and else statement
im pretty sure you wont understand so heres the code :facepalm:

PHP Code:

new szName[32];
get_user_name(idszNamecharsmax(szName));

client_print(0print_chat"** [Anti-Retry] %L"LANG_PLAYER"RF_ALL"szName); 


Al3xandru27 07-28-2020 07:58

Re: Anty-Retry plugin help
 
PHP Code:

new szName[32];
get_user_name(idszNamecharsmax(szName));

client_print(0print_chat"** [Anti-Retry] %L a dat retry degeaba :)"LANG_PLAYER"RF_ALL"szName)                                                             
client_print(0print_chat"** [Anti-Retry] %L"LANG_PLAYER"RF_ALL"szName


OciXCrom 07-28-2020 08:56

Re: Anty-Retry plugin help
 
Awesome. Now you'll have 2 messages.

Al3xandru27 07-28-2020 09:12

Re: Anty-Retry plugin help
 
This message will be when a player retry, right?


All times are GMT -4. The time now is 13:54.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.