AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   High ping kicker - delayed kick with motd (https://forums.alliedmods.net/showthread.php?t=183009)

zerbbi 04-16-2012 04:04

High ping kicker - delayed kick with motd
 
Hello, i would like some coding help. I want to add motd in high ping kicker plugin. In original plugin, player is kicked with message in console. So i would like to first display motd for 10 second and then kick player. I made public function called by set_task, but i probably did something wrong. Motd is shown but player is not kicked. Can you help me please? Thanks

I edited this:
Code:

public kickem(id)
{
       
        client_cmd(id,"echo ^"** Prepac ale lagujes, zriad si lepsi net...^"; disconnect")
}

kickPlayer( id )
{
        new name[32],authid[32]
        get_user_name(id,name,31)
        get_user_authid(id,authid,31)
       
        show_motd(id, "http://cs-server.tvojazona.net/motd/ping.htm", "Lagujes!")
          client_print(0,print_chat,"** Hrac %s bude automaticky vyhodeny koli vysokej latency",name)
        set_task(10.0, "kickem", id)
               
        remove_task(id)
        log_amx("Highpingkick: ^"%s<%d><%s>^" was kicked due highping (Average Ping ^"%d^")",
    name,get_user_userid(id),authid,(g_Ping[id] / g_Samples[id]))

}

The whole code:

Code:

/* AMX Mod script.
*
* (c) 2002-2003, OLO
* modified by shadow
* This file is provided as is (no warranties).
*
* Players with immunity won't be checked
*/

#include <amxmodx>
#include <amxmisc>

new g_Ping[33]
new g_Samples[33]

public plugin_init()
{
  register_plugin("High Ping Kicker","0.16.2","OLO/shadow")
  register_concmd("amx_hpk","cmdHpk",ADMIN_KICK,"- configures high_ping_kicker plugin")
  register_cvar("amx_hpk_ping","150")
  register_cvar("amx_hpk_check","12")
  register_cvar("amx_hpk_tests","5")
  register_cvar("amx_hpk_delay","60")
 
  if ( get_cvar_num( "amx_hpk_check" ) < 5 ) set_cvar_num( "amx_hpk_check" , 5 )
  if ( get_cvar_num( "amx_hpk_tests" ) < 3 ) set_cvar_num( "amx_hpk_tests" , 3 )

}

public client_disconnect(id)
  remove_task( id )

public client_putinserver(id)
{   
  g_Ping[id] = 0
  g_Samples[id] = 0

  if ( !is_user_bot(id) )
  {
    new param[1]
    param[0] = id
    set_task( 10.0 , "showWarn" , id , param , 1 )
   
    if (get_cvar_num("amx_hpk_tests") != 0) {
            set_task( float(get_cvar_num("amx_hpk_delay")), "taskSetting", id, param , 1)
    }
    else {           
            set_task( float(get_cvar_num( "amx_hpk_tests" )) , "checkPing" , id , param , 1 , "b" )
        }
       
  }
}

public showWarn(param[])
  client_print( param[0] ,print_chat,"* Hraci s latency vyssou ako %d budu automaticky vyhodeni!", get_cvar_num( "amx_hpk_ping" ) )

public taskSetting(param[]) {
        new name[32]
        get_user_name(param[0],name,31)
        set_task( float(get_cvar_num( "amx_hpk_tests" )) , "checkPing" , param[0] , param , 1 , "b" )
}

public kickem(id)
{
       
        client_cmd(id,"echo ^"** Prepac ale lagujes, zriad si lepsi net...^"; disconnect")
}

kickPlayer( id )
{
        new name[32],authid[32]
        get_user_name(id,name,31)
        get_user_authid(id,authid,31)
       
        show_motd(id, "http://cs-server.tvojazona.net/motd/ping.htm", "Lagujes!")
          client_print(0,print_chat,"** Hrac %s bude automaticky vyhodeny koli vysokej latency",name)
        set_task(10.0, "kickem", id)
               
        remove_task(id)
        log_amx("Highpingkick: ^"%s<%d><%s>^" was kicked due highping (Average Ping ^"%d^")",
    name,get_user_userid(id),authid,(g_Ping[id] / g_Samples[id]))

}


public checkPing(param[])
{
  new id = param[ 0 ]

  if ( get_user_flags(id) & ADMIN_LEVEL_H ) return

  new p, l

  get_user_ping( id , p , l )

  g_Ping[ id ] += p
  ++g_Samples[ id ]

  if ( (g_Samples[ id ] > get_cvar_num( "amx_hpk_tests" )) && (g_Ping[id] / g_Samples[id] > get_cvar_num( "amx_hpk_ping" ))  )   
    kickPlayer(id)
}

 
public cmdHpk(id,level,cid){
  if (!cmd_access(id,level,cid,1))
    return PLUGIN_HANDLED
   
  new ping[5]
  new check_arr[5]
  new tests_arr[5]
  new delay_arr[5]
  read_argv(1,ping,4)
  read_argv(2,check_arr,4)
  read_argv(3,tests_arr,4)
  read_argv(4,delay_arr,4)
 
  new check = str_to_num(check_arr)
  new tests = str_to_num(tests_arr)
  new delay = str_to_num(delay_arr)
 
 
  if ( check < 5 ) check = 5
  if ( tests < 3 ) tests = 3
 

  if (read_argc() > 1){
    set_cvar_string("amx_hpk_ping",ping)
  }
  if (read_argc() > 2) {
        set_cvar_num("amx_hpk_check",check)
  }
  if (read_argc() > 3) {
        set_cvar_num("amx_hpk_tests",tests)
  }
  if (read_argc() > 4) {
          set_cvar_num("amx_hpk_delay",delay)
 }

  console_print(id,"Syntax: amx_hpk <ping to get kicked> <checks before kicks> <time between checks> <delay before first check in sec.>")
  console_print(id,"Current High_Ping_Kicker Settings:")
  console_print(id,"Maxping: %d  Time between checks: %d Checkcount: %d Delay: %d",get_cvar_num("amx_hpk_ping"),get_cvar_num("amx_hpk_check"),get_cvar_num("amx_hpk_tests"),get_cvar_num("amx_hpk_delay"))
  return PLUGIN_HANDLED   
}


zerbbi 05-01-2012 12:37

Re: High ping kicker - delayed kick with motd
 
Will someone help me? Only set_task is not working, everything works except set_task, public function called by set task is not called. I can not fix it myself. Please

EpicMonkey 05-01-2012 14:51

Re: High ping kicker - delayed kick with motd
 
is it your set_task or your way of kicking?

zerbbi 05-01-2012 15:02

Re: High ping kicker - delayed kick with motd
 
original was:
Code:

kickPlayer( id )
{
        new name[32],authid[32]
        get_user_name(id,name,31)
        get_user_authid(id,authid,31)
        client_print(0,print_chat,"** Hrac %s bude automaticky vyhodeny koli vysokej latency",name)
        client_cmd(id,"echo ^"** Prepac ale lagujes, zriad si lepsi net...^"; disconnect")

        remove_task(id)
        log_amx("Highpingkick: ^"%s<%d><%s>^" was kicked due highping (Average Ping ^"%d^")",
    name,get_user_userid(id),authid,(g_Ping[id] / g_Samples[id]))

}

so i added motd_show to notify player why he is going to be kicked and then i added set_task to delay kick for 10 seconds

mottzi 05-01-2012 19:46

Re: High ping kicker - delayed kick with motd
 
Try setting the Task before showing the motd. Also check whether kickem() actually is called (With client_print, log_amx...).

zerbbi 05-02-2012 12:29

Re: High ping kicker - delayed kick with motd
 
i put set_task before motd, still not working. Also i founf that kickem function is not called by set_task

mottzi 05-04-2012 01:51

Re: High ping kicker - delayed kick with motd
 
The problem is that you delete the task right after youve setted it. (remOve_task)

fysiks 05-04-2012 04:18

Re: High ping kicker - delayed kick with motd
 
Quote:

Originally Posted by simple_user (Post 1701459)
what happens if you change this:

PHP Code:

client_cmd(id,"echo ^"** Prepac ale lagujeszriad si lepsi net...^"; disconnect"

to:

PHP Code:

client_cmd(id, echo "Prepac ale lagujes, zriad si lepsi net""disconnect"

or even:

PHP Code:

client_cmd(id"disconnect"

?

It simply won't work since it's incorrect code.

Please refrain from offering advice when you have no clue what you are talking about.

simple_user 05-04-2012 08:18

Re: High ping kicker - delayed kick with motd
 
No more inconsiderate posts from me. Deleted.


All times are GMT -4. The time now is 07:51.

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