s1lentq / reapi

AMX Mod X module, using API regamedll & rehlds
GNU General Public License v3.0
160 stars 103 forks source link

Implement `RH_SV_SendResources` hook #308

Closed ShadowsAdi closed 4 months ago

ShadowsAdi commented 6 months ago

Useful to create a custom resource list when requested by a client or to allow multiple download url setup.

Example:

/* Sublime AMXX Editor v4.2 */

#include <amxmodx>
#include <reapi>
#include <geoip>

new g_pCvar
new g_szCvar[64]

public plugin_init()
{
    RegisterHookChain(RH_SV_SendResources, "RH_SV_SendResources_Pre")
    RegisterHookChain(RH_SV_SendResources, "RH_SV_SendResources_Post", 1)
}

public plugin_precache()
{
    server_cmd("exec server.cfg")
    server_exec()

    g_pCvar = get_cvar_pointer("sv_downloadurl")
    get_pcvar_string(g_pCvar, g_szCvar, charsmax(g_szCvar))
}

public RH_SV_SendResources_Post()
{
    RequestFrame("SV_SendResFrame")
}

public SV_SendResFrame()
{
    new szCvar[64]
    set_pcvar_string(g_pCvar, g_szCvar)
    get_pcvar_string(g_pCvar, szCvar, charsmax(szCvar))
}

public RH_SV_SendResources_Pre()
{
    new szIP[18], szRez[3], szCvar[64]
    rh_get_net_from(szIP, charsmax(szIP))

    geoip_code2_ex(szIP, szRez)

    if(equali(szRez, "RO"))
    {
        set_pcvar_string(g_pCvar, "test.com")
        get_pcvar_string(g_pCvar, szCvar, charsmax(szCvar))
    }
}