[TTT] TK Punish Ayuda
#1
Ultizo el plugin de ttt_warning_system.amxx y por mas que haga FreeKill o que tenga karma menor a 300 no me banea, tengo las cvars así

Código PHP:
ttt_warnings_special             2        // ttt_warning_system.amxx          // Max warnings for killing Traitor or Detective wrongly, for example, Detective kills Detective. (Default: 2)
ttt_warnings_innocent            3        // ttt_warning_system.amxx          // Max warnings for killing Innocent wrongly. (Default: 3)
ttt_warnings_continued           3        // ttt_warning_system.amxx          // Max continued warnings for killing wrongly, for example, kill wrongly Innocent, Detective, Innocent. (Default: 3)
ttt_warnings_punishment          g      // ttt_warning_system.amxx          // Punishment types: a=kick, b=ban, c=remove karma, d=hp to 1, e=blind, f=bad aim, g=ban on low karma. (Default: cdf)
ttt_warnings_bantime             5       // ttt_warning_system.amxx          // Ban time if ttt_ar_warnings_punishment has B. (Default: 60)
ttt_warnings_players             3        // ttt_warning_system.amxx          // Minimum players to start warn them. (Default: 5)
ttt_warnings_blind_time          60       // ttt_warning_system.amxx          // Blind time in seconds. (Default: 60)
ttt_warnings_minkarma            300      // ttt_warning_system.amxx          // Ban if karma <= X. (Default: 300) 
Responder
#2
ttt_warnings_punishment bg
NO RESPONDO MP POR SOPORTE
Responder
#3
(01/06/2015, 08:22 PM)FloresMagon escribió: ttt_warnings_punishment bg

Lo puse así, probé y tampoco :S
Responder
#4
alguien sabe porque no funciona el sistema de ban por "FK" o "Bajo karma" ?
Responder
#5
Es porque cuando el servidor banea al player lo hace mal, osea por ejemplo tiene asi,
Código PHP:
server_cmd("amx_ban ^"%d^" ^"#%d^" ^"KARMA:%d^", timeban, userid, karma) 
Y esta mal puesto porque el amx ban es primero el userid y despues el tiempo y no banea a nadie..
Revisa cuando ejecuta el comando amx_ban en ese sma
Responder
#6
esta puesto asi el comando en el sma.
Código PHP:
            server_cmd("amx_banip %d #%d TK:%s"get_pcvar_num(cvar_warnings_bantime), get_user_userid(killer), reason);
            
g_iWarnings[killer][WARN_BANNED] = true
vos decis que solamente tiene que ir "amx_ban" solamente?
Responder
#7
(10/05/2016, 05:47 PM)Im what escribió: esta puesto asi el comando en el sma.
Código PHP:
            server_cmd("amx_banip %d #%d TK:%s"get_pcvar_num(cvar_warnings_bantime), get_user_userid(killer), reason);
            
g_iWarnings[killer][WARN_BANNED] = true
vos decis que solamente tiene que ir "amx_ban" solamente?

Fijate primero de poner cuando estes en el server amx_banip y deja lo que te dice aca y si no te dice nada pone amx_ban y deja lo que te diga aca, porque creo que primero iria el userid despues el time y despues el TK
Responder
#8
en el servidor no me aparece nada, puse tal cual me dijiste vos y no me aparecio nada. Puse amx_ban me aparecio esto "amx_ban <name or #userid> <minutes> [reason]" entonces en el sma, tendria que cambiarlo y dejarlo de esta manera?
Código PHP:
server_cmd("amx_ban %d #%d TK:%s"get_pcvar_num(cvar_warnings_bantime), get_user_userid(killer), reason);
            
g_iWarnings[killer][WARN_BANNED] = true
Responder
#9
(10/05/2016, 05:58 PM)Im what escribió: en el servidor no me aparece nada, puse tal cual me dijiste vos y no me aparecio nada. Puse amx_ban me aparecio esto "amx_ban <name or #userid> <minutes> [reason]" entonces en el sma, tendria que cambiarlo y dejarlo de esta manera?
Código PHP:
server_cmd("amx_ban %d #%d TK:%s"get_pcvar_num(cvar_warnings_bantime), get_user_userid(killer), reason);
            
g_iWarnings[killer][WARN_BANNED] = true

No esta mal asi, porque primero va el userid, proba asi..
Código PHP:
server_cmd("amx_ban #%d %d TK:%s"get_user_userid(killer), get_pcvar_num(cvar_warnings_bantime), reason); 
Responder
#10
Me tira error al copilarlo
Código PHP:
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <fun>
#include <ttt>

#define m_bitsDamageType     76

new g_iWarnings[33][TTT_WARNINGS], g_pCommandMenuID;
new 
cvar_warnings_innocentcvar_warnings_specialcvar_warnings_punishmentcvar_warnings_bantime,
    
cvar_warnings_continuedcvar_warnings_playerscvar_warnings_blind_timecvar_warnings_minkarma;

new 
g_pMsgScreeFade;

public 
plugin_init()
{
    
register_plugin("[TTT] Warning system"TTT_VERSIONTTT_AUTHOR);

    
cvar_warnings_special        my_register_cvar("ttt_warnings_special",        "2",    "Max warnings for killing Traitor or Detective wrongly, for example, Detective kills Detective. (Default: 2)");
    
cvar_warnings_innocent        my_register_cvar("ttt_warnings_innocent",        "3",    "Max warnings for killing Innocent wrongly. (Default: 3)");
    
cvar_warnings_continued        my_register_cvar("ttt_warnings_continued",    "3",    "Max continued warnings for killing wrongly, for example, kill wrongly Innocent, Detective, Innocent. (Default: 3)");
    
cvar_warnings_punishment    my_register_cvar("ttt_warnings_punishment",    "bg",    "Punishment types: a=kick, b=ban, c=remove karma, d=hp to 1, e=blind, f=bad aim, g=ban on low karma. (Default: cdf)");
    
cvar_warnings_bantime        my_register_cvar("ttt_warnings_bantime",        "1200",    "Ban time if ttt_ar_warnings_punishment has B. (Default: 60)");
    
cvar_warnings_players        my_register_cvar("ttt_warnings_players",        "5",    "Minimum players to start warn them. (Default: 5)");
    
cvar_warnings_blind_time    my_register_cvar("ttt_warnings_blind_time",    "60",    "Blind time in seconds. (Default: 60)");
    
cvar_warnings_minkarma        my_register_cvar("ttt_warnings_minkarma",        "400",    "Ban if karma <= X. (Default: 300)");

    
// register_clcmd("say /tttwarns", "check_warnings");
    // register_clcmd("say_team /tttwarns", "check_warnings");
    
g_pCommandMenuID ttt_command_add("Warnings");

    
RegisterHamPlayer(Ham_Killed"Ham_Killed_post"1);
    
RegisterHamPlayer(Ham_Spawn"Ham_Spawn_pre"0);
    
register_forward(FM_TraceLine"Forward_TraceLine_post"1);

    
g_pMsgScreeFade get_user_msgid("ScreenFade");
}

public 
plugin_natives()
{
    
register_library("ttt");
    
register_native("ttt_get_warnings""_get_warnings");
    
register_native("ttt_set_warnings""_set_warnings");
}

public 
ttt_command_selected(idmenuidname[])
{
    if(
g_pCommandMenuID == menuid)
        
check_warnings(id);
}

public 
client_putinserver(id)
{
    
reset_client(id);
}

public 
Ham_Spawn_pre(id)
{
    if(
g_iWarnings[id][WARN_PUNISH])
    {
        
ttt_set_playerdata(idPD_KARMA1);
        
ttt_set_playerdata(idPD_KARMATEMP1);
        
client_print_color(idprint_team_default"%s %L"TTT_TAGid"TTT_PUNISHMENT1");
        
reset_client(id);
    }
    else 
check_warnings(id);
}

public 
Ham_Killed_post(victimkillershouldgib)
{
    if(!
is_user_connected(killer))
        
killer ttt_find_valid_killer(victimkiller);

    if(!
is_user_connected(killer) || killer == victim || ttt_return_check(victim) || ttt_is_exception(victim))
        return;

    new 
state_killer ttt_get_playerstate(killer), state_victim ttt_get_playerdata(victimPD_KILLEDSTATE);
    if(
state_killer == PC_TRAITOR && state_victim == PC_TRAITOR)
        
add_warnings(killerstate_killerstate_victim0);
    else if((
state_killer == PC_DETECTIVE && state_victim == PC_DETECTIVE) || (state_killer == PC_INNOCENT && state_victim == PC_DETECTIVE))
        
add_warnings(killerstate_killerstate_victim0);
    else if((
state_killer == PC_INNOCENT && state_victim == PC_INNOCENT) || (state_killer == PC_DETECTIVE && state_victim == PC_INNOCENT))
        
add_warnings(killerstate_killerstate_victim1);
    else 
g_iWarnings[killer][WARN_CONTINUED] = 0;
}

public 
Forward_TraceLine_post(Float:origin1[3], Float:origin2[3], monsterid)
{
    if(!
is_user_alive(id) || !g_iWarnings[id][WARN_BADAIM])
        return 
FMRES_IGNORED;

    new 
target get_tr(TR_pHit);
    if(!
is_user_alive(target))
        return 
FMRES_IGNORED;

    new 
hitzone = (<< get_tr(TR_iHitgroup));
    if(
g_iWarnings[id][WARN_BADAIM] & hitzone)
    {
        
set_tr(TR_flFraction1.0);
        return 
FMRES_SUPERCEDE;
    }

    return 
FMRES_IGNORED;
}

public 
add_warnings(killerstate_killerstate_victimtype)
{
    new 
num;
    static 
players[32];
    
get_players(playersnum);
    
    if(
num-get_pcvar_num(cvar_warnings_players))
        return;

    if(
type)
        
g_iWarnings[killer][WARN_INNOCENT]++;
    else 
g_iWarnings[killer][WARN_SPECIAL]++;
    
g_iWarnings[killer][WARN_CONTINUED]++;

    new 
special get_pcvar_num(cvar_warnings_special), innocent get_pcvar_num(cvar_warnings_innocent), continued get_pcvar_num(cvar_warnings_continued);

    if(
g_iWarnings[killer][WARN_SPECIAL] >= special || g_iWarnings[killer][WARN_INNOCENT] >= innocent || g_iWarnings[killer][WARN_CONTINUED] >= continued)
        
punish_player(killer);
    else if(
type == 0)
    {
        
client_print_color(killerprint_team_default"%s %L"TTT_TAGkiller"TTT_WARNING1"killerspecial_names[state_killer], killerspecial_names[state_victim]);
        
check_warnings(killer);
    }
}

public 
check_warnings(id)
{
    if(
ttt_get_playerstate(id) != PC_INNOCENT)
    {
        new 
specialKill get_pcvar_num(cvar_warnings_special), innocentKill get_pcvar_num(cvar_warnings_innocent), continued get_pcvar_num(cvar_warnings_continued);
        
client_print_color(idprint_team_default"%s %L"TTT_TAGid"TTT_WARNING2"g_iWarnings[id][WARN_SPECIAL], specialKillidspecial_names[PC_SPECIAL], g_iWarnings[id][WARN_INNOCENT], innocentKillidspecial_names[PC_INNOCENT], g_iWarnings[id][WARN_CONTINUED], continued);
    }
}

public 
punish_player(id)
{
    if(!
is_user_connected(id))
        return;

    static 
cvar[10];
    
get_pcvar_string(cvar_warnings_punishmentcvarcharsmax(cvar));
    if(!
cvar[0])
        return;

    static const 
punishments[] =
    {
        (
1<<0),    // a = kick,
        
(1<<1),    // b = ban,
        
(1<<2),    // c = remove karma,
        
(1<<3),    // d = hp to 1,
        
(1<<4),    // e = blind,
        
(1<<5),    // f = bad aim
        
(1<<6)    // g = ban low karma
    
};

    new 
flags read_flags(cvar);
    static const 
size sizeof(punishments);
    for(new 
0sizei++)
    {
        if(
flags punishments[i])
            
pick_punishment(idi);
    }

    static 
name[32];
    
get_user_name(idnamecharsmax(name));
    
ttt_log_to_file(LOG_MISC"%s was punished for team kills"name);
}

stock pick_punishment(killerpunishment)
{
    switch(
punishment)
    {
        case 
0:    server_cmd("kick #%d ^"You have been kicked from server for killing teammates!^""get_user_userid(killer));
        case 
1:
        {
            static 
reason[20];
            if(
g_iWarnings[killer][WARN_SPECIAL] >= get_pcvar_num(cvar_warnings_special))
                
formatex(reasoncharsmax(reason), "PC_SPECIAL %d/%d"g_iWarnings[killer][WARN_SPECIAL], g_iWarnings[killer][WARN_SPECIAL]);
            else if(
g_iWarnings[killer][WARN_INNOCENT] >= get_pcvar_num(cvar_warnings_innocent))
                
formatex(reasoncharsmax(reason), "PC_INNOCENT %d/%d"g_iWarnings[killer][WARN_INNOCENT], g_iWarnings[killer][WARN_INNOCENT]);
            else if(
g_iWarnings[killer][WARN_CONTINUED] >= get_pcvar_num(cvar_warnings_continued))
                
formatex(reasoncharsmax(reason), "CONTINUED %d/%d"g_iWarnings[killer][WARN_CONTINUED], g_iWarnings[killer][WARN_CONTINUED]);

            
server_cmd("amx_ban #%d %d TK:%s"get_user_userid(killer), get_pcvar_num(cvar_warnings_bantime), reason); 
            
g_iWarnings[killer][WARN_BANNED] = true;
        }
        case 
2g_iWarnings[killer][WARN_PUNISH] = true;
        case 
3: if(is_user_alive(killer)) set_user_health(killer1);
        case 
4set_user_blind(killer);
        case 
5set_user_badaim(killer);
        case 
6ban_user_lowkarma(killer);
    }
}

stock set_user_badaim(id)
{
    if(
task_exists(id))
        
remove_task(id);

    
g_iWarnings[id][WARN_BADAIM] = false;
    
client_print_color(idprint_team_default"%s %L"TTT_TAGid"TTT_PUNISHMENT3");
    
set_task(10.0"randomize_hitzones"id__"b");
    
randomize_hitzones(id);
}

public 
randomize_hitzones(id)
{
    if(
is_user_alive(id))
    {
        for(new 
03i++)
            
g_iWarnings[id][WARN_BADAIM] |= (<< 0) | (<< random_num(17));
    }
    else if(
task_exists(id))
        
remove_task(id);
}

stock set_user_blind(id)
{
    if(
is_user_alive(id))
    {
        
message_begin(MSG_ONE_UNRELIABLEg_pMsgScreeFade_id);
        
write_short(get_pcvar_num(cvar_warnings_blind_time) * 1<<12);
        
write_short(4*1<<12);
        
write_short(0x0000);
        
write_byte(0);
        
write_byte(0);
        
write_byte(0);
        
write_byte(255);
        
message_end();
        
client_print_color(idprint_team_default"%s %L"TTT_TAGid"TTT_PUNISHMENT2");
    }
}

stock reset_client(id)
{
    for(new 
0TTT_WARNINGSi++)
        
g_iWarnings[id][i] = false;

    if(
task_exists(id))
        
remove_task(id);
}

stock ban_user_lowkarma(id)
{
    new 
karma ttt_get_playerdata(idPD_KARMATEMP);
    if(
karma <= get_pcvar_num(cvar_warnings_minkarma))
    {
            
server_cmd("amx_ban #%d %d TK:%s"get_user_userid(killer), get_pcvar_num(cvar_warnings_bantime), reason); 
        
g_iWarnings[id][WARN_BANNED] = true;
    }
}

//API
public _get_warnings(pluginparams)
{
    if(
params != 2)
        return 
ttt_log_api_error("ttt_get_warnings needs 2 params(p1: %d)"pluginparamsget_param(1));

    
set_array(2g_iWarnings[get_param(1)], TTT_WARNINGS);
    return 
1;
}

public 
_set_warnings(pluginparams)
{
    if(
params != 2)
        return 
ttt_log_api_error("ttt_set_warnings needs 2 params(p1: %d)"pluginparamsget_param(1));

    
get_array(2g_iWarnings[get_param(1)], TTT_WARNINGS);
    return 
1;

Responder
#11
En la funcion reset client fijate de cambiar el killer por id .-. Es medio obvio
Responder
#12
Hacelo vos :c pls u.u no entendi
Responder
#13
Código PHP:
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <fun>
#include <ttt>

#define m_bitsDamageType     76

new g_iWarnings[33][TTT_WARNINGS], g_pCommandMenuID;
new 
cvar_warnings_innocentcvar_warnings_specialcvar_warnings_punishmentcvar_warnings_bantime,
    
cvar_warnings_continuedcvar_warnings_playerscvar_warnings_blind_timecvar_warnings_minkarma;

new 
g_pMsgScreeFade;
new const 
reason[] = "Alcanzaste el maximo de random kill's";

public 
plugin_init()
{
    
register_plugin("[TTT] Warning system"TTT_VERSIONTTT_AUTHOR);

    
cvar_warnings_special        my_register_cvar("ttt_warnings_special",        "2",    "Max warnings for killing Traitor or Detective wrongly, for example, Detective kills Detective. (Default: 2)");
    
cvar_warnings_innocent        my_register_cvar("ttt_warnings_innocent",        "3",    "Max warnings for killing Innocent wrongly. (Default: 3)");
    
cvar_warnings_continued        my_register_cvar("ttt_warnings_continued",    "3",    "Max continued warnings for killing wrongly, for example, kill wrongly Innocent, Detective, Innocent. (Default: 3)");
    
cvar_warnings_punishment    my_register_cvar("ttt_warnings_punishment",    "bg",    "Punishment types: a=kick, b=ban, c=remove karma, d=hp to 1, e=blind, f=bad aim, g=ban on low karma. (Default: cdf)");
    
cvar_warnings_bantime        my_register_cvar("ttt_warnings_bantime",        "1200",    "Ban time if ttt_ar_warnings_punishment has B. (Default: 60)");
    
cvar_warnings_players        my_register_cvar("ttt_warnings_players",        "5",    "Minimum players to start warn them. (Default: 5)");
    
cvar_warnings_blind_time    my_register_cvar("ttt_warnings_blind_time",    "60",    "Blind time in seconds. (Default: 60)");
    
cvar_warnings_minkarma        my_register_cvar("ttt_warnings_minkarma",        "400",    "Ban if karma <= X. (Default: 300)");

    
// register_clcmd("say /tttwarns", "check_warnings");
    // register_clcmd("say_team /tttwarns", "check_warnings");
    
g_pCommandMenuID ttt_command_add("Warnings");

    
RegisterHamPlayer(Ham_Killed"Ham_Killed_post"1);
    
RegisterHamPlayer(Ham_Spawn"Ham_Spawn_pre"0);
    
register_forward(FM_TraceLine"Forward_TraceLine_post"1);

    
g_pMsgScreeFade get_user_msgid("ScreenFade");
}

public 
plugin_natives()
{
    
register_library("ttt");
    
register_native("ttt_get_warnings""_get_warnings");
    
register_native("ttt_set_warnings""_set_warnings");
}

public 
ttt_command_selected(idmenuidname[])
{
    if(
g_pCommandMenuID == menuid)
        
check_warnings(id);
}

public 
client_putinserver(id)
{
    
reset_client(id);
}

public 
Ham_Spawn_pre(id)
{
    if(
g_iWarnings[id][WARN_PUNISH])
    {
        
ttt_set_playerdata(idPD_KARMA1);
        
ttt_set_playerdata(idPD_KARMATEMP1);
        
client_print_color(idprint_team_default"%s %L"TTT_TAGid"TTT_PUNISHMENT1");
        
reset_client(id);
    }
    else 
check_warnings(id);
}

public 
Ham_Killed_post(victimkillershouldgib)
{
    if(!
is_user_connected(killer))
        
killer ttt_find_valid_killer(victimkiller);

    if(!
is_user_connected(killer) || killer == victim || ttt_return_check(victim) || ttt_is_exception(victim))
        return;

    new 
state_killer ttt_get_playerstate(killer), state_victim ttt_get_playerdata(victimPD_KILLEDSTATE);
    if(
state_killer == PC_TRAITOR && state_victim == PC_TRAITOR)
        
add_warnings(killerstate_killerstate_victim0);
    else if((
state_killer == PC_DETECTIVE && state_victim == PC_DETECTIVE) || (state_killer == PC_INNOCENT && state_victim == PC_DETECTIVE))
        
add_warnings(killerstate_killerstate_victim0);
    else if((
state_killer == PC_INNOCENT && state_victim == PC_INNOCENT) || (state_killer == PC_DETECTIVE && state_victim == PC_INNOCENT))
        
add_warnings(killerstate_killerstate_victim1);
    else 
g_iWarnings[killer][WARN_CONTINUED] = 0;
}

public 
Forward_TraceLine_post(Float:origin1[3], Float:origin2[3], monsterid)
{
    if(!
is_user_alive(id) || !g_iWarnings[id][WARN_BADAIM])
        return 
FMRES_IGNORED;

    new 
target get_tr(TR_pHit);
    if(!
is_user_alive(target))
        return 
FMRES_IGNORED;

    new 
hitzone = (<< get_tr(TR_iHitgroup));
    if(
g_iWarnings[id][WARN_BADAIM] & hitzone)
    {
        
set_tr(TR_flFraction1.0);
        return 
FMRES_SUPERCEDE;
    }

    return 
FMRES_IGNORED;
}

public 
add_warnings(killerstate_killerstate_victimtype)
{
    new 
num;
    static 
players[32];
    
get_players(playersnum);
    
    if(
num-get_pcvar_num(cvar_warnings_players))
        return;

    if(
type)
        
g_iWarnings[killer][WARN_INNOCENT]++;
    else 
g_iWarnings[killer][WARN_SPECIAL]++;
    
g_iWarnings[killer][WARN_CONTINUED]++;

    new 
special get_pcvar_num(cvar_warnings_special), innocent get_pcvar_num(cvar_warnings_innocent), continued get_pcvar_num(cvar_warnings_continued);

    if(
g_iWarnings[killer][WARN_SPECIAL] >= special || g_iWarnings[killer][WARN_INNOCENT] >= innocent || g_iWarnings[killer][WARN_CONTINUED] >= continued)
        
punish_player(killer);
    else if(
type == 0)
    {
        
client_print_color(killerprint_team_default"%s %L"TTT_TAGkiller"TTT_WARNING1"killerspecial_names[state_killer], killerspecial_names[state_victim]);
        
check_warnings(killer);
    }
}

public 
check_warnings(id)
{
    if(
ttt_get_playerstate(id) != PC_INNOCENT)
    {
        new 
specialKill get_pcvar_num(cvar_warnings_special), innocentKill get_pcvar_num(cvar_warnings_innocent), continued get_pcvar_num(cvar_warnings_continued);
        
client_print_color(idprint_team_default"%s %L"TTT_TAGid"TTT_WARNING2"g_iWarnings[id][WARN_SPECIAL], specialKillidspecial_names[PC_SPECIAL], g_iWarnings[id][WARN_INNOCENT], innocentKillidspecial_names[PC_INNOCENT], g_iWarnings[id][WARN_CONTINUED], continued);
    }
}

public 
punish_player(id)
{
    if(!
is_user_connected(id))
        return;

    static 
cvar[10];
    
get_pcvar_string(cvar_warnings_punishmentcvarcharsmax(cvar));
    if(!
cvar[0])
        return;

    static const 
punishments[] =
    {
        (
1<<0),    // a = kick,
        
(1<<1),    // b = ban,
        
(1<<2),    // c = remove karma,
        
(1<<3),    // d = hp to 1,
        
(1<<4),    // e = blind,
        
(1<<5),    // f = bad aim
        
(1<<6)    // g = ban low karma
    
};

    new 
flags read_flags(cvar);
    static const 
size sizeof(punishments);
    for(new 
0sizei++)
    {
        if(
flags punishments[i])
            
pick_punishment(idi);
    }

    static 
name[32];
    
get_user_name(idnamecharsmax(name));
    
ttt_log_to_file(LOG_MISC"%s was punished for team kills"name);
}

stock pick_punishment(killerpunishment)
{
    switch(
punishment)
    {
        case 
0:    server_cmd("kick #%d ^"You have been kicked from server for killing teammates!^""get_user_userid(killer));
        case 
1:
        {
            static 
reason[20];
            if(
g_iWarnings[killer][WARN_SPECIAL] >= get_pcvar_num(cvar_warnings_special))
                
formatex(reasoncharsmax(reason), "PC_SPECIAL %d/%d"g_iWarnings[killer][WARN_SPECIAL], g_iWarnings[killer][WARN_SPECIAL]);
            else if(
g_iWarnings[killer][WARN_INNOCENT] >= get_pcvar_num(cvar_warnings_innocent))
                
formatex(reasoncharsmax(reason), "PC_INNOCENT %d/%d"g_iWarnings[killer][WARN_INNOCENT], g_iWarnings[killer][WARN_INNOCENT]);
            else if(
g_iWarnings[killer][WARN_CONTINUED] >= get_pcvar_num(cvar_warnings_continued))
                
formatex(reasoncharsmax(reason), "CONTINUED %d/%d"g_iWarnings[killer][WARN_CONTINUED], g_iWarnings[killer][WARN_CONTINUED]);

            
server_cmd("amx_ban #%d %d TK:%s"get_user_userid(killer), get_pcvar_num(cvar_warnings_bantime), reason); 
            
g_iWarnings[killer][WARN_BANNED] = true;
        }
        case 
2g_iWarnings[killer][WARN_PUNISH] = true;
        case 
3: if(is_user_alive(killer)) set_user_health(killer1);
        case 
4set_user_blind(killer);
        case 
5set_user_badaim(killer);
        case 
6ban_user_lowkarma(killer);
    }
}

stock set_user_badaim(id)
{
    if(
task_exists(id))
        
remove_task(id);

    
g_iWarnings[id][WARN_BADAIM] = false;
    
client_print_color(idprint_team_default"%s %L"TTT_TAGid"TTT_PUNISHMENT3");
    
set_task(10.0"randomize_hitzones"id__"b");
    
randomize_hitzones(id);
}

public 
randomize_hitzones(id)
{
    if(
is_user_alive(id))
    {
        for(new 
03i++)
            
g_iWarnings[id][WARN_BADAIM] |= (<< 0) | (<< random_num(17));
    }
    else if(
task_exists(id))
        
remove_task(id);
}

stock set_user_blind(id)
{
    if(
is_user_alive(id))
    {
        
message_begin(MSG_ONE_UNRELIABLEg_pMsgScreeFade_id);
        
write_short(get_pcvar_num(cvar_warnings_blind_time) * 1<<12);
        
write_short(4*1<<12);
        
write_short(0x0000);
        
write_byte(0);
        
write_byte(0);
        
write_byte(0);
        
write_byte(255);
        
message_end();
        
client_print_color(idprint_team_default"%s %L"TTT_TAGid"TTT_PUNISHMENT2");
    }
}

stock reset_client(id)
{
    for(new 
0TTT_WARNINGSi++)
        
g_iWarnings[id][i] = false;

    if(
task_exists(id))
        
remove_task(id);
}

stock ban_user_lowkarma(id)
{
    new 
karma ttt_get_playerdata(idPD_KARMATEMP);
    if(
karma <= get_pcvar_num(cvar_warnings_minkarma))
    {
        
server_cmd("amx_ban #%d %d TK:^"%s^""get_user_userid(id), get_pcvar_num(cvar_warnings_bantime), reason); 
        
g_iWarnings[id][WARN_BANNED] = true;
    }
}

//API
public _get_warnings(pluginparams)
{
    if(
params != 2)
        return 
ttt_log_api_error("ttt_get_warnings needs 2 params(p1: %d)"pluginparamsget_param(1));

    
set_array(2g_iWarnings[get_param(1)], TTT_WARNINGS);
    return 
1;
}

public 
_set_warnings(pluginparams)
{
    if(
params != 2)
        return 
ttt_log_api_error("ttt_set_warnings needs 2 params(p1: %d)"pluginparamsget_param(1));

    
get_array(2g_iWarnings[get_param(1)], TTT_WARNINGS);
    return 
1;

Mis Aportes:

[ TTT ] Item: Target Gun

[ TTT ] Item: Skeleton Gun (New)
[ TTT ] Item: Pipe Bomb
[ TTT ] Item: Inverse Golden
[Imagen: 76561198074954930.png] [Imagen: venezuela.gif]
Pregúntate si lo que estás haciendo hoy te acerca a el lugar en el que quieres estar mañana. Corazón
Responder
#14
Muchas gracias sthoNy' Sonrisa
Responder
#15
No me anduvo tampoco de esta manera el warning_system. alguna solucion?
Responder
#16
Hola, tome ese plugin y no me funciona, cuando hacen fk, solo kickea, (en ttt_mod.cfg ya lo puse para que banee) pero aun asi no banea Confundido podrian ayudarme? gracias
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)