SHOW:
|
|
- or go back to the newest paste.
1 | #include <amxmodx> | |
2 | #include <amxmisc> | |
3 | #include <cstrike> | |
4 | #include <nvault> | |
5 | ||
6 | #pragma semicolon 1 | |
7 | ||
8 | #define TASKID 1337 | |
9 | ||
10 | new timeSeconds[ 33 ], timeMinute[ 33 ], timeHour[ 33 ]; | |
11 | new nVault; | |
12 | new pCvarAddTimeWay; | |
13 | ||
14 | public plugin_init() | |
15 | { | |
16 | register_plugin( "Total Time Connection" , "0.1" , "oMz'" ); | |
17 | ||
18 | register_clcmd( "say /time" , "cmdShowTotalTimeConnection" ); | |
19 | register_clcmd( "ttc_infos" , "cmdGetInfosPlayer" , ADMIN_KICK , "< authid >" ); | |
20 | ||
21 | pCvarAddTimeWay = register_cvar( "ttc_addtime" , "2" ); | |
22 | } | |
23 | ||
24 | public client_putinserver( id ) | |
25 | { | |
26 | LoadTime( id ); | |
27 | set_task( 1.0 , "addTime" , id+TASKID , .flags="b" ); | |
28 | } | |
29 | ||
30 | public client_disconnect( id ) | |
31 | { | |
32 | if( task_exists( id+TASKID ) ) | |
33 | { | |
34 | remove_task( id+TASKID ); | |
35 | } | |
36 | ||
37 | SaveTime( id ); | |
38 | } | |
39 | ||
40 | public plugin_cfg() | |
41 | { | |
42 | nVault = nvault_open( "TotalTimeConnection" ); | |
43 | ||
44 | if ( nVault == INVALID_HANDLE ) | |
45 | { | |
46 | set_fail_state("Error opening nVault"); | |
47 | } | |
48 | } | |
49 | ||
50 | public plugin_end() | |
51 | { | |
52 | nvault_close( nVault ); | |
53 | } | |
54 | ||
55 | public addTime( id ) | |
56 | { | |
57 | id -= TASKID; | |
58 | ||
59 | new CsTeams:team = cs_get_user_team( id ); | |
60 | ||
61 | if( is_user_connected( id ) ) | |
62 | { | |
63 | if( get_pcvar_num( pCvarAddTimeWay ) == 2 ) | |
64 | { | |
65 | if( team != CS_TEAM_T && team != CS_TEAM_CT ) | |
66 | { | |
67 | return PLUGIN_HANDLED; | |
68 | } | |
69 | } | |
70 | ||
71 | timeSeconds[ id ]++; | |
72 | ||
73 | if( timeSeconds[ id ] == 60 ) | |
74 | { | |
75 | timeMinute[ id ]++; | |
76 | timeSeconds[ id ] = 0; | |
77 | ||
78 | if( timeMinute[ id ] == 60 ) | |
79 | { | |
80 | timeHour[ id ] ++; | |
81 | timeMinute[ id ] = 0; | |
82 | } | |
83 | } | |
84 | } | |
85 | ||
86 | return PLUGIN_CONTINUE; | |
87 | } | |
88 | ||
89 | public SaveTime( id ) | |
90 | { | |
91 | new AuthID[ 35 ]; | |
92 | get_user_authid( id , AuthID , charsmax( AuthID ) ); | |
93 | ||
94 | new data[ 15 ]; | |
95 | ||
96 | formatex( data , charsmax( data ) , "%d %d %d" , timeSeconds[ id ] , timeMinute[ id ] , timeHour[ id ] ); | |
97 | ||
98 | nvault_set( nVault , AuthID , data ); | |
99 | } | |
100 | ||
101 | public LoadTime( id ) | |
102 | { | |
103 | new AuthID[ 35 ]; | |
104 | get_user_authid( id , AuthID , charsmax( AuthID ) ); | |
105 | ||
106 | new data[ 15 ]; | |
107 | ||
108 | if( nvault_get( nVault , AuthID , data , charsmax( data ) ) ) | |
109 | { | |
110 | new space = contain( data , " " ); | |
111 | ||
112 | if( space > -1 ) | |
113 | { | |
114 | new valTimeSeconds[ 4 ]; | |
115 | new valTimeMinute[ 4 ]; | |
116 | new valTimeHour[ 10 ]; | |
117 | ||
118 | formatex( valTimeSeconds , space , "%s" , data ); | |
119 | formatex( valTimeMinute , charsmax( valTimeMinute ) ,"%s" , data[ space + 1 ] ); | |
120 | formatex( valTimeHour , charsmax( valTimeHour ) , "%s" , data[ space + 2 ] ); | |
121 | ||
122 | timeSeconds[ id ] = str_to_num( valTimeSeconds ); | |
123 | timeMinute[ id ] = str_to_num( valTimeMinute ); | |
124 | timeHour[ id ] = str_to_num( valTimeHour ); | |
125 | } | |
126 | } | |
127 | ||
128 | else | |
129 | { | |
130 | timeSeconds[ id ] = 0; | |
131 | timeMinute[ id ] = 0; | |
132 | timeHour[ id ] = 0; | |
133 | } | |
134 | } | |
135 | ||
136 | public cmdShowTotalTimeConnection( id ) | |
137 | { | |
138 | client_print( id , print_chat , "Total Time Connection : %d hour%s, %d minute%s, %d second%s" , timeHour[ id ] , timeHour[ id ] > 1 ? "s" : "" , timeMinute[ id ] , timeMinute[ id ] > 1 ? "s" : "" , timeSeconds[ id ] , timeSeconds[ id ] > 1 ? "s" : "" ); | |
139 | } | |
140 | ||
141 | public cmdGetInfosPlayer( id , level , cid ) | |
142 | { | |
143 | if ( !cmd_access( id , level , cid , 1 ) ) | |
144 | { | |
145 | client_print( id , print_chat , "You have not access!" ); | |
146 | return PLUGIN_HANDLED; | |
147 | } | |
148 | ||
149 | new AuthID[ 35 ]; | |
150 | read_argv( 1 , AuthID , charsmax( AuthID ) ); | |
151 | ||
152 | if( !equal( AuthID ,"STEAM_" , 6 ) ) | |
153 | { | |
154 | client_print( id , print_console , "Error, it isn't an AuthID" ); | |
155 | return PLUGIN_HANDLED; | |
156 | } | |
157 | ||
158 | new data[ 15 ]; | |
159 | ||
160 | new players[ 32 ] , num , i ; | |
161 | get_players( players , num , "h" ); | |
162 | ||
163 | for( i = 0; i < num; i++ ) | |
164 | { | |
165 | SaveTime( players[ i ] ); | |
166 | } | |
167 | ||
168 | if( nvault_get( nVault , AuthID , data , charsmax( data ) ) ) | |
169 | { | |
170 | new space = contain( data , " " ); | |
171 | ||
172 | if( space > -1 ) | |
173 | { | |
174 | new valTimeSeconds[ 4 ]; | |
175 | new valTimeMinute[ 4 ]; | |
176 | new valTimeHour[ 10 ]; | |
177 | ||
178 | formatex( valTimeSeconds , space , "%s" , data ); | |
179 | formatex( valTimeMinute , charsmax( valTimeMinute ) ,"%s" , data[ space + 1 ] ); | |
180 | formatex( valTimeHour , charsmax( valTimeHour ) , "%s" , data[ space + 2 ] ); | |
181 | ||
182 | new iSeconds = str_to_num( valTimeSeconds ); | |
183 | new iMinute = str_to_num( valTimeMinute ); | |
184 | new iHour = str_to_num( valTimeHour ); | |
185 | ||
186 | client_print( id , print_chat , "Infos printed in console !" ); | |
187 | client_print( id , print_console , "Total Time Connection for AuthID %s : %d hour%s, %d minute%s, %d second%s" , AuthID , iHour , iHour > 1 ? "s" : "" , iMinute , iMinute > 1 ? "s" : "" , iSeconds , iSeconds > 1 ? "s" : "" ); | |
188 | } | |
189 | } | |
190 | ||
191 | return PLUGIN_HANDLED; | |
192 | } |