caihanzi 发表于 2006-10-14 22:59:58

【求助】如何读取保存玩家姓名和在线时间?


#include <amxmodx>
#include <amxmisc>

new Float:op_on_time,op_on_time1
new op_time_config
new op_name
new textmsg
new text_name
new text_time

public plugin_init()
{
register_plugin( Show Admin Ontime, 0.1, caihanzi )
get_configsdir(op_time_config, 63);
format(op_time_config, 63, "%s/optime.ini", op_time_config);
loadSettings();
}

public client_disconnect(id)
{
new text, len ,pos = 0
if (get_user_flags(id) & ADMIN_IMMUNITY){
op_on_time = get_user_time(id)/60
get_user_info(id,"name",op_name,31)
if(file_exists(op_time_config)){
while (read_file(op_time_config,pos++,textmsg,255,len)){
strtok(textmsg,text_name,63,text_time,63,'*',1)
if (equal(op_name,text_time)){
op_on_time1=str_to_num(text_time)+op_on_time
format(text,255,"%s *%d",op_name,op_on_time1)
}
else{
format(text,255,^"%s *%d",op_name,op_on_time)
}
}
}
}
write_file(op_time_config,text)
return 1
}

loadSettings() {
if (!file_exists(op_time_config)) return 0
new len, pos = 0
while (read_file(op_time_config,pos++,textmsg,255,len)){
strtok(textmsg,text_name,63,text_time,63,'*',1)
if(textmsg="")
return 0
else {
client_print(0,print_chat,"OP %s (总)在线时间 %d 分",text_name,str_to_num(text_time))
}
}
return 1
}


请各位高手看看,如何才能实现OP多次登陆在线时间垒加.并保存在optime.ini文件里(一个名字一行).:byebye:

现在此插件效果,如:op是CAiNiao
CAiNiao登陆后,退出即会保存在optime.ini中一个名字( *号为名字与在线时间的分隔符)
CAiNiao *12
(现在是一行)
12表示在线时间(单位:分钟).
但CAiNiao第2次登陆后又退出后,在optime.ini中
又保存了一个名字:
CAiNiao *12
CAiNiao *16
(现在是两行)
请问如何让此插件一个OP名字只保存一个,并实现时间垒加.
就像这样:
CAiNiao *28
(一行)

高手们帮忙看看,谢谢了!
页: [1]
查看完整版本: 【求助】如何读取保存玩家姓名和在线时间?