Цитата:
I have only .amxx file.
.sma sources were lost.
And there are a little bug. When you type "notready", all players will see a digit in chat. It is a debug info.
But I can't fix this without source.
i Decompile your amxx can you make the other one and fix your bug
USB Flach
Код:
H:\FlashBackUP\AMXX_Studio\arena_afk.sma file
Код:
Data: HamFilter
#include <amxmodx>
#include <float>
#include <hamsandwich>
g_Cheak[33]
g_afkrounds[33]
_:g_afkrounds array 33 fill 0x0
_:g_pcvar_time variable ( 0x0 )
_:g_pcvar_rounds variable ( 0x0 )
_:g_pcvar_minplayers variable ( 0x0 )
_:g_pcvar_kick variable ( 0x0 )
str_001 string "Arena AFK"
str_002 string "1.5"
str_003 string "LetiletiLepestok"
str_004 string "player"
str_005 string "Spawn"
str_006 string "arena_afktime"
str_007 string "5"
str_008 string "arena_afkrounds"
str_009 string "2"
str_010 string "arena_afkminplayers"
str_011 string "3"
str_012 string "arena_afkkick"
str_013 string "0"
str_014 string "notready"
str_015 string "check"
var_000 variable ( 0x0 )
str_016 string "sv_ag_gamemode"
str_017 string "arena"
str_018 string "lts"
str_019 string "lms"
str_020 string "a"
var_001 variable ( 0x0 )
var_002 variable ( 0x0 )
str_021 string "%d"
str_022 string "%d"
str_023 string "afk_check"
var_003 variable ( 0x0 )
var_004 variable ( 0x0 )
str_024 string "afk_check"
str_025 string "b"
Float:old_vangle array 33 fill 0x0
Float:new_vangle array 3 fill 0x0
str_026 string "h"
var_005 variable ( 0x0 )
str_027 string "kick #%d [Arena AFK] kicked because of AFK"
str_028 string "[Arena AFK] Player %s kicked because of AFK for %d rounds."
str_029 string "notready"
var_006 variable ( 0x0 )
var_007 variable ( 0x0 )
str_030 string "[Arena AFK] Player %s moved to NOTREADY because of AFK for %d rounds."
str_031 string "notready"
str_032 string "ready"
str_033 string "[Arena AFK] Player %s moved to spectators because of AFK for %d seconds."
.CODE
halt 0x0
PROC operator!=(Float:,Float:)
break
break
push.s 0x10
push.s 0xC
push.c 0x8
sysreq.c floatcmp
stack 0xC
zero.alt
neq
retn
ENDP
PROC __fatal_ham_error
break
break
stack -0x4
push.c -0x1
push.c 0x0
push.c 0x8
sysreq.c get_func_id
stack 0xC
stor.s.pri -0x4
break
push.c 0x1
break
load.s.pri -0x4
const.alt -0x1
jeq jump_0000
push.c -0x1
push.s -0x4
push.c 0x8
sysreq.c callfunc_begin_i
stack 0xC
eq.c.pri 0x1
jzer jump_0000
const.pri 0x1
jump jump_0002
jump_0000:
zero.pri
jump_0002:
jzer jump_0003
break
push.s 0xC
push.c 0x4
sysreq.c callfunc_push_int
stack 0x8
break
push.s 0x10
push.c 0x4
sysreq.c callfunc_push_int
stack 0x8
break
push.c 0x0
push.s 0x14
push.c 0x8
sysreq.c callfunc_push_str
stack 0xC
break
push.c 0x0
sysreq.c callfunc_end
stack 0x4
eq.c.pri 0x1
jzer jump_0003
break
zero.s -0x8
jump_0003:
break
load.s.pri -0x8
jzer jump_0005
break
push.s 0x14
push.c 0x4
sysreq.c set_fail_state
stack 0x8
jump_0005:
stack 0x8
zero.pri
retn
ENDP
PROC plugin_init
break
break
push.c str_003 ; ref to String
push.c str_002 ; ref to String
push.c str_001 ; ref to String
push.c 0xC
sysreq.c register_plugin
stack 0x10
break
push.c 0x1
push.c str_005 ; ref to String
push.c str_004 ; ref to String
push.c 0x0
push.c 0x10
sysreq.c RegisterHam
stack 0x14
break
push.c 0x0
push.c 0x0
push.c str_007 ; ref to String
push.c str_006 ; ref to String
push.c 0x10
sysreq.c register_cvar
stack 0x14
stor.pri 0x130
break
push.c 0x0
push.c 0x0
push.c str_009 ; ref to String
push.c str_008 ; ref to String
push.c 0x10
sysreq.c register_cvar
stack 0x14
stor.pri 0x134
break
push.c 0x0
push.c 0x0
push.c str_011 ; ref to String
push.c str_010 ; ref to String
push.c 0x10
sysreq.c register_cvar
stack 0x14
stor.pri 0x138
break
push.c 0x0
push.c 0x0
push.c str_013 ; ref to String
push.c str_012 ; ref to String
push.c 0x10
sysreq.c register_cvar
stack 0x14
stor.pri 0x13C
break
push.c -0x1
push.c var_000 ; ref to Variable
push.c -0x1
push.c str_015 ; ref to String
push.c str_014 ; ref to String
push.c 0x14
sysreq.c register_clcmd
stack 0x18
break
stack -0x80
zero.pri
addr.alt -0x80
fill 0x80
break
push.c 0x1F
pushaddr -0x80
push.c str_016 ; ref to String
push.c 0xC
sysreq.c get_cvar_string
stack 0x10
break
push.c 0x0
push.c str_017 ; ref to String
pushaddr -0x80
push.c 0xC
sysreq.c equal
stack 0x10
not
jzer jump_0006
push.c 0x0
push.c str_018 ; ref to String
pushaddr -0x80
push.c 0xC
sysreq.c equal
stack 0x10
not
jzer jump_0006
push.c 0x0
push.c str_019 ; ref to String
pushaddr -0x80
push.c 0xC
sysreq.c equal
stack 0x10
not
jzer jump_0006
const.pri 0x1
jump jump_0009
jump_0006:
zero.pri
jump_0009:
jzer jump_0010
break
push.c var_002 ; ref to Variable
push.c var_001 ; ref to Variable
push.c str_020 ; ref to String
push.c 0xC
sysreq.c pause
stack 0x10
jump_0010:
stack 0x80
zero.pri
retn
ENDP
PROC client_connect
break
break
const.alt g_afkrounds ; ref to Array
load.s.pri 0xC
bounds 0x20
idxaddr
move.alt
zero.pri
stor.i
zero.pri
retn
ENDP
PROC check
break
break
pushaddr 0xC
push.c str_021 ; ref to String
push.c 0x3
push.c 0x0
push.c 0x10
sysreq.c client_print
stack 0x14
break
pushaddr 0xC
push.c str_022 ; ref to String
push.c 0x2
push.s 0xC
push.c 0x10
sysreq.c client_print
stack 0x14
zero.pri
retn
ENDP
PROC Spawn
break
break
const.alt g_check ; ref to Array
load.s.pri 0xC
bounds 0x20
idxaddr
move.alt
const.pri -0x1
stor.i
break
push.c 0x0
load.s.pri 0xC
add.c 0x9C39
push.pri
push.c 0x8
sysreq.c task_exists
stack 0xC
jzer jump_0011
break
push.c 0x0
load.s.pri 0xC
add.c 0x9C39
push.pri
push.c 0x8
sysreq.c remove_task
stack 0xC
jump_0011:
break
push.c 0x0
push.c var_004 ; ref to Variable
push.c 0x0
push.c var_003 ; ref to Variable
load.s.pri 0xC
add.c 0x9C39
push.pri
push.c str_023 ; ref to String
push.c 0x3E4CCCCD
push.c 0x1C
sysreq.c set_task
stack 0x20
break
push.c 0x0
push.c str_025 ; ref to String
push.c 0x0
push.c var_003 ; ref to Variable
load.s.pri 0xC
add.c 0x9C39
push.pri
push.c str_024 ; ref to String
push.c 0x3F800000
push.c 0x1C
sysreq.c set_task
stack 0x20
zero.pri
retn
ENDP
PROC afk_check
break
break
load.s.pri 0xC
add.c -0x9C39
stor.s.pri 0xC
break
break
break
push.c 0x0
stack -0x80
zero.pri
addr.alt -0x84
fill 0x80
break
push.c var_005 ; ref to Variable
push.c str_026 ; ref to String
pushaddr -0x4
pushaddr -0x84
push.c 0x10
sysreq.c get_players
stack 0x14
break
push.s 0xC
push.c 0x4
sysreq.c is_user_alive
stack 0x8
not
jnz jump_0012
load.s.pri -0x4
push.pri
push g_pcvar_minplayers ; ref to Variable
push.c 0x4
sysreq.c get_pcvar_num
stack 0x8
pop.alt
xchg
sless
jnz jump_0012
zero.pri
jump jump_0014
jump_0012:
const.pri 0x1
jump_0014:
jzer jump_0015
break
push.c 0x0
load.s.pri 0xC
add.c 0x9C39
push.pri
push.c 0x8
sysreq.c remove_task
stack 0xC
break
zero.pri
stack 0x84
retn
jump_0015:
break
stack -0x4
push.c 0x1E
push.c 0x2
push g_pcvar_time ; ref to Variable
push.c 0x4
sysreq.c get_pcvar_num
stack 0x8
push.pri
push.c 0xC
sysreq.c clamp
stack 0x10
stor.s.pri -0x88
break
stack -0x4
push.c 0xA
push.c 0x1
push g_pcvar_rounds ; ref to Variable
push.c 0x4
sysreq.c get_pcvar_num
stack 0x8
push.pri
push.c 0xC
sysreq.c clamp
stack 0x10
stor.s.pri -0x8C
break
push.c new_vangle ; ref to Array
push.c 0x7E
push.s 0xC
push.c 0xC
sysreq.c pev
stack 0x10
break
const.alt g_check ; ref to Array
load.s.pri 0xC
bounds 0x20
lidx
move.alt
zero.pri
jsleq jump_0016
break
const.alt old_vangle ; ref to Array
load.s.pri 0xC
bounds 0x20
idxaddr
push.pri
const.pri new_vangle ; ref to Array
load.i
pop.alt
stor.i
break
const.alt g_check ; ref to Array
load.s.pri 0xC
bounds 0x20
idxaddr
move.alt
zero.pri
stor.i
break
zero.pri
stack 0x8C
retn
jump_0016:
break
const.pri new_vangle ; ref to Array
load.i
push.pri
const.alt old_vangle ; ref to Array
load.s.pri 0xC
bounds 0x20
lidx
pop.alt
push.pri
push.alt
push.c 0x8
call operator!=(Float:,Float:)
jzer jump_0017
break
push.c 0x0
load.s.pri 0xC
add.c 0x9C39
push.pri
push.c 0x8
sysreq.c remove_task
stack 0xC
break
const.alt g_afkrounds ; ref to Array
load.s.pri 0xC
bounds 0x20
idxaddr
move.alt
zero.pri
stor.i
break
zero.pri
stack 0x8C
retn
jump_0017:
break
const.alt g_check ; ref to Array
load.s.pri 0xC
bounds 0x20
idxaddr
inc.i
load.i
move.alt
load.s.pri -0x88
jneq jump_0018
break
push.c 0x0
load.s.pri 0xC
add.c 0x9C39
push.pri
push.c 0x8
sysreq.c remove_task
stack 0xC
break
stack -0x80
zero.pri
addr.alt -0x10C
fill 0x80
break
push.c 0x1F
pushaddr -0x10C
push.s 0xC
push.c 0xC
sysreq.c get_user_name
stack 0x10
break
const.alt g_afkrounds ; ref to Array
load.s.pri 0xC
bounds 0x20
idxaddr
inc.i
load.i
move.alt
load.s.pri -0x8C
jneq jump_0019
break
push g_pcvar_kick ; ref to Variable
push.c 0x4
sysreq.c get_pcvar_num
stack 0x8
jzer jump_0020
break
push.s 0xC
push.c 0x4
sysreq.c get_user_userid
stack 0x8
heap 0x4
stor.i
push.alt
push.c str_027 ; ref to String
push.c 0x8
sysreq.c server_cmd
stack 0xC
heap -0x4
break
pushaddr -0x8C
pushaddr -0x10C
push.c str_028 ; ref to String
push.c 0x3
push.c 0x0
push.c 0x14
sysreq.c client_print
stack 0x18
jump jump_0021
jump_0020:
break
push.c var_007 ; ref to Variable
push.c var_006 ; ref to Variable
push.c str_029 ; ref to String
push.s 0xC
push.c 0x10
sysreq.c engclient_cmd
stack 0x14
break
pushaddr -0x8C
pushaddr -0x10C
push.c str_030 ; ref to String
push.c 0x3
push.c 0x0
push.c 0x14
sysreq.c client_print
stack 0x18
jump_0021:
break
zero.pri
stack 0x10C
retn
jump_0019:
break
push.c var_007 ; ref to Variable
push.c var_006 ; ref to Variable
push.c str_031 ; ref to String
push.s 0xC
push.c 0x10
sysreq.c engclient_cmd
stack 0x14
break
push.c var_007 ; ref to Variable
push.c var_006 ; ref to Variable
push.c str_032 ; ref to String
push.s 0xC
push.c 0x10
sysreq.c engclient_cmd
stack 0x14
break
pushaddr -0x88
pushaddr -0x10C
push.c str_033 ; ref to String
push.c 0x3
push.c 0x0
push.c 0x14
sysreq.c client_print
stack 0x18
break
push.c 0x0
load.s.pri 0xC
add.c 0x9C39
push.pri
push.c 0x8
sysreq.c remove_task
stack 0xC
break
zero.pri
stack 0x10C
retn
jump_0018:
stack 0x8C
zero.pri
retn
ENDP