Raised This Month: $ Target: $400
 0% 

Run time error 5: memory access


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Owyn
Veteran Member
Join Date: Nov 2007
Old 02-13-2009 , 17:09   Run time error 5: memory access
Reply With Quote #1

L 02/14/2009 - 00:29:20: [AMXX] Displaying debug trace (plugin "high_ping_kicker.amxx")
L 02/14/2009 - 00:29:20: [AMXX] Run time error 5: memory access
L 02/14/2009 - 00:29:20: [AMXX] [0] high_ping_kicker.sma::checkPing (line 75)
L 02/14/2009 - 00:29:21: [AMXX] Displaying debug trace (plugin "public_rules.amxx")
L 02/14/2009 - 00:29:21: [AMXX] Run time error 5: memory access
L 02/14/2009 - 00:29:21: [AMXX] [0] public_rules.sma::printrules (line 124)
L 02/14/2009 - 00:29:22: [AMXX] Displaying debug trace (plugin "public_rules.amxx")
L 02/14/2009 - 00:29:22: [AMXX] Run time error 5: memory access
L 02/14/2009 - 00:29:22: [AMXX] [0] public_rules.sma::showrules (line 102)

help me fix that errors plz ^_^

i think that is caused cuz of params[0] but i don't know how to fix it properly
here are both codes:
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 (Steam)","0.16.2","OLO/shadow")
  register_concmd("amx_hpk","cmdHpk",ADMIN_KICK,"- configures high_ping_kicker plugin")
  register_cvar("amx_hpk_ping","99")
  register_cvar("amx_hpk_check","10")
  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,"* Igroki s pingom bolwe %d budut udoleni s servera!", 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" )
}

kickPlayer( id ) 
{ 
  new name[32],authid[32]
  get_user_name(id,name,31)
  get_user_authid(id,authid,31)
  client_print(0,print_chat,"** %s bil udoljen s servera po pri4ine bolwogo pinga!",name)
  server_cmd("kick #%d ^"Sorry but you have too high ping, try later...^"",get_user_userid(id))
  log_amx("Highpingkick: ^"%s<%d><%s>^" kiknut za bolwoy ping! (sredniy 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_BAN ) 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    
}
Code:
/*
PUBLIC SERVER RULES 1.20 ( 2005-08-18 )

Plugin by Priski

Usage :
Put rules in rules.txt file in cstrike folder
and set rules_speed and rules_interval whatever you like

Commands :
rules_show     - shows rules listed in rules.txt
rules_enable     - set this to 0 to disable automatic rules display
say /rules     - displays rules to normal user

CVARS :
rules_interval        - interval between automatic rules display
rules_admin_only    - disables say /rules command from regular users
rules_join        - if set 1 displays rules after player have joined server
rules_hudmessage_time    - time how long hudmessage is displayed
rules_join_timeout    - delay to show rules when joining to the server

Changelog :

1.20 / 2005-08-18
- removed client chat rules
- fixed major bugs

1.11 / 2005-08-15
- fixed some bugs

1.10 / 2005-08-14
- new CVARs : rules_hudmessage, rules_hudmessage_time
rules_join_timeout
- Rules in hudmessage mode also

1.03 / 2005-08-12
- rules_enable command fix.
- new CVAR "rules_join" set 1 to show rules
to players when they join server

1.02 / 2005-08-11
- optimized code
- rules_enable is now a command    
- default interval is now 10 minutes

1.01 / 2005-08-11
- added rules_admin_only & say /rules command
- variables are global now

1.0 / 2005-08-11
- first release

*/

#include <amxmodx>
#include <amxmisc>

new base[] = "rules.txt"

new i, num, text[127], hudmsg[440] //max hudmessage length was 439 chars (?)

public plugin_init()
{
    
    register_plugin("AMXX Public server rules", "1.20", "Priski")
    
    // register command
    
    register_concmd("rules_show", "rules", ADMIN_KICK, "- show rules to everybody")
    register_concmd("rules_enable", "r_enable", ADMIN_KICK, "- <1|0> set automessagin on/off")
    register_cvar("rules_admin_only", "0")
    register_cvar("rules_join", "1")
    register_cvar("rules_join_timeout", "5")
    register_cvar("rules_hudmessage_time", "20")
    register_cvar("rules_interval", "600")
} 

public plugin_cfg() {
    
    if (!file_exists(base)) {
        write_file(base, "; This is the public rules file, put your rules below")
        write_file(base, "; Remember, max amount of characters is 439")
        console_print(0, "%s file not found. creating new ...", base)
    }
    
}

public client_authorized ( id ) {
    // on join display rules
    
    if (get_cvar_num("rules_join")) {
        new tmp[1]
        tmp[0] = id
        set_task(1.0, "showrules",id,tmp,1)
    }
    
    return PLUGIN_HANDLED
}


public showrules (pid[]) {
    new id = pid[0]
    
    if ( get_user_team(id) != 1 && get_user_team(id) != 2 ) {
        if (id) {
            new tmp[1]
            tmp[0] = id
            set_task(2.0, "showrules",id,tmp,1)  // not yet in server
        }
        return PLUGIN_HANDLED
    }
    
    new tmp[1]
    tmp[0] = id
    

    set_task(get_cvar_float("rules_join_timeout"), "printrules", id, tmp, 1)  // not yet in server
    
    return PLUGIN_HANDLED
}

public printrules(pid[])
{
    new id = pid[0]
    if (file_exists(base))
        {
        
        
        set_hudmessage ( 200, 150, 0, 0.02, 0.25, 2, 0.1, get_cvar_float("rules_hudmessage_time"), 0.005, 1.0, 1)
        format(hudmsg, 439, "")
        
        // read all the rules
        for(i=0; read_file(base, i, text, 127, num); i++) {
            if (num > 0 && text[0] != ';') {
                // display with predefined delay
                add(hudmsg,439,text)
                add(hudmsg,439,"^n")
            }
        }
        
        // show hudmessages
        show_hudmessage(id, hudmsg)

        
    }
    
    return PLUGIN_HANDLED
}


public r_enable(id, level, cid)
{
    if (!cmd_access(id, level, cid, 0)) {  // NOT ADMIN
        return PLUGIN_HANDLED
    }
    
    new arg[3]
    
    read_argv(1, arg, 2)
    new value = str_to_num(arg)
    
    if (!isalnum(arg[0]))
        value = -1
    
    if (value == 0) {
        
        if (task_exists(2)) // close task
            remove_task(2)    
        
        console_print(id, "You have disabled automatic messages")
        return PLUGIN_HANDLED
        
    }
    if (value == 1) {
        // activate task, reload if already exist
        if (task_exists(2)) {
            change_task(2, get_cvar_float("rules_interval"))
            } else {
            set_task(get_cvar_float("rules_interval"), "rules", 2, "", 0, "b")
        }    
        console_print(id, "You have enabled automatic messages")
        return PLUGIN_HANDLED        
    }
    if (task_exists(2)) {
        console_print(id, "automessages is ON.")
        } else {
        console_print(id, "automessages is OFF.")
    }
    console_print(id, "rules_enable <1|0> (1 = ON, 0 = OFF)")
    return PLUGIN_HANDLED        
    
}

public clientrules(id, level, cid) {
    new pID[1]
    pID[0] = id
    
    console_print(0,"[user %d]Print rules for me only",pID[0])
    printrules(pID[0])
}

public rules(id, level, cid)
{
    new pID[1]
    pID[0] = id
            
    if (!cmd_access(id, level, cid, 0)) {  // NOT ADMIN
        return PLUGIN_HANDLED
    }
    
    // read file to all users
    pID[0] = 0
    console_print(0,"[user %d]Print rules for all",id)
    printrules(pID[0])
    
    // Reset scheduled task after display
    if (get_cvar_float("rules_interval") > 0) {
        if (task_exists(2)) {
            change_task(2, get_cvar_float("rules_interval"))
            } else {
            set_task(get_cvar_float("rules_interval"), "rules", 200, "", 0, "b")
        }
    }
    
    return PLUGIN_HANDLED
}
Owyn is offline
Send a message via ICQ to Owyn
anakin_cstrike
Veteran Member
Join Date: Nov 2007
Location: Romania
Old 02-13-2009 , 19:51   Re: Run time error 5: memory access
Reply With Quote #2

Try this without arrays
PHP 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 (Steam)","0.16.2","OLO/shadow")
  
register_concmd("amx_hpk","cmdHpk",ADMIN_KICK,"- configures high_ping_kicker plugin")
  
register_cvar("amx_hpk_ping","99")
  
register_cvar("amx_hpk_check","10")
  
register_cvar("amx_hpk_tests","5")
  
register_cvar("amx_hpk_delay","60")

  
  if ( 
get_cvar_num"amx_hpk_check" ) < set_cvar_num"amx_hpk_check" )
  if ( 
get_cvar_num"amx_hpk_tests" ) < set_cvar_num"amx_hpk_tests" )
}

public 
client_disconnect(id
  
remove_taskid )

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

  
if ( !is_user_bot(id) ) 
  {
    
set_task10.0 "showWarn" id )
    
    if (
get_cvar_num("amx_hpk_tests") != 0) {
        
set_taskfloat(get_cvar_num("amx_hpk_delay")), "taskSetting"id)
    }
    else {        
        
set_taskfloat(get_cvar_num"amx_hpk_tests" )) , "checkPing" id __"b" )
    }
    
  }


public 
showWarn(id)
  
client_printid ,print_chat,"* Igroki s pingom bolwe %d budut udoleni s servera!"get_cvar_num"amx_hpk_ping" ) )

public 
taskSetting(id) {
    new 
name[32]
    
get_user_name(id,name,31)
    
set_taskfloat(get_cvar_num"amx_hpk_tests" )) , "checkPing" id ,__"b" )
}

kickPlayerid 

  new 
name[32],authid[32]
  
get_user_name(id,name,31)
  
get_user_authid(id,authid,31)
  
client_print(0,print_chat,"** %s bil udoljen s servera po pri4ine bolwogo pinga!",name)
  
server_cmd("kick #%d ^"Sorry but you have too high ping, try later...^"",get_user_userid(id))
  
log_amx("Highpingkick: ^"%s<%d><%s>^" kiknut za bolwoy ping! (sredniy Ping ^"%d^")"name,get_user_userid(id),authid,(g_Ping[id] / g_Samples[id]))
}

public 
checkPing(id


  if ( 
get_user_flags(id) & ADMIN_BAN ) return

  new 
p

  get_user_ping
id 

  
g_Pingid ] += p
  
++g_Samplesid ]

  if ( (
g_Samplesid ] > 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 check 5
  
if ( tests 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    

__________________

anakin_cstrike is offline
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 17:05.


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