cityhonghu 发表于 2005-11-21 15:38:02

【转贴】指定时间关闭服务器

此插件为在指定时间关闭服务器。

amx_limit_hours指定关闭的时间单位
amx_limit_minutes   指定关闭的分单位

比如
amx_limit_hours 22
amx_limit_minutes 45
为晚间10时25分关闭服务器。
在configs目录下建立一个quitmessage.txt文件,里面记录向用户发送的信息。
我在amxx1.6下无法编译通过,请知道的稍作修改使用。


#include <amxmod>
#include <amxmisc>
#define READ_FROM_FILE
#if defined READ_FROM_FILE
new g_motdFile
#endif

public plugin_init(){
    register_plugin("Server End Timer","1.0","+ARUKARI-")
    register_cvar("amx_limit_hours","0")
    register_cvar("amx_limit_minutes","00")
    register_cvar("amx_limit_check","1")
    if ( get_cvar_num( "amx_limit_check" ) <= 0 ) set_cvar_num( "amx_limit_check" , 1 )
    get_configsdir(g_motdFile, 63);
    format(g_motdFile, 63, "%s/quitmessage.txt", g_motdFile);
    set_task(float(get_cvar_num( "check" )), "limited")
    return PLUGIN_CONTINUE
}

public amx_limit_hours(id,level,cid){
    if (!cmd_access(id,level,cid,2))
      return PLUGIN_HANDLED
    new arg
    read_argv(1,arg,7)
    if (strtonum(arg) > 23){
      console_print(id,"/*phpInvalid parameter. Must be a number between 0 - 23")         
      return PLUGIN_HANDLED
    }
    set_cvar_string("amx_limit_hours",arg)
    return PLUGIN_HANDLED   
}

public amx_limit_minutes(id,level,cid){
    if (!cmd_access(id,level,cid,2))
      return PLUGIN_HANDLED
    new arg
    read_argv(1,arg,7)
    if (strtonum(arg) > 59){
      console_print(id,"/*phpInvalid parameter. Must be a number between 0 - 59")         
      return PLUGIN_HANDLED
    }
    set_cvar_string("amx_limit_minutes",arg)
    return PLUGIN_HANDLED   
}
   
public client_putinserver(id) {
    if (!is_user_bot(id)) {
      new param
      param = id
      set_task(30.0, "showEndTime", id, param, 1)
    }
    return PLUGIN_CONTINUE
}

TheEnd(id,level,cid) {
    if (!cmd_access(id,level,cid,1))
    client_cmd(0, "echo ^"                                                            ^"")
    client_cmd(0, "echo ^"                                                            ^"")
    client_cmd(0, "echo ^"                                                            ^"")
    client_cmd(0, "echo ^"                                                            ^"")
    client_cmd(0, "echo ^"                                                            ^"")
    client_cmd(0, "echo ^"                                                            ^"")
    client_cmd(0, "echo ^"                                                            ^"")
    client_cmd(0, "echo ^"                                                            ^"")
    client_cmd(0, "echo ^"                                                            ^"")
    client_cmd(0, "echo ^"                                                            ^"")
    client_cmd(0, "echo ^"                                                            ^"")
    client_cmd(0, "echo ^"                                                            ^"")
    client_cmd(0, "echo ^"                                                            ^"")
    client_cmd(0, "echo ^"                                                            ^"")
    client_cmd(0, "echo ^"                                                            ^"")
    client_cmd(0, "echo ^"                                                            ^"")
    client_cmd(0, "echo ^"                                                            ^"")
    client_cmd(0, "echo ^"                                                            ^"")
    client_cmd(0, "echo ^"                                                            ^"")
    client_cmd(0, "echo ^"                                                            ^"")
    client_cmd(0, "echo ^"                                                            ^"")
    client_cmd(0, "echo ^"                                                            ^"")
    client_cmd(0, "echo ^"                                                            ^"")
    client_cmd(0, "echo ^"                                                            ^"")
    client_cmd(0, "echo ^"                                                            ^"")
    client_cmd(0, "echo ^"                                                            ^"")
    client_cmd(0, "echo ^"==============================================================^"")
      #if defined READ_FROM_FILE
      if (file_exists(g_motdFile)) {
      new message, len, line = 0
      while(read_file(g_motdFile,line++,message,191,len))
      server_cmd("echo ^"%s^"",message)
      client_cmd(0,"echo ^"%s^"",message)
      }
      #endif
    client_cmd(0, "echo ^"==============================================================^"")
    client_cmd(0, "echo ^"                                                            ^"")    server_cmd("quit")
    return PLUGIN_CONTINUE
}

public limited(){
    new ster = get_cvar_num("amx_limit_hours")
    new minster = get_cvar_num("amx_limit_minutes")
    new THETIME
    get_time("%H",THETIME,5)
    new LIMITER
    LIMITER = str_to_num(THETIME)
    new THEMIN
    get_time("%M",THEMIN,5)
    new minutes
    minutes = str_to_num(THEMIN)
    new THESEC
    get_time("%S",THESEC,5)
    new seconds
    seconds = str_to_num(THESEC)
    if(LIMITER == ster && minutes == minster && seconds == 0){
      new id,level,cid
      TheEnd(id,level,cid)   
      return PLUGIN_HANDLED
    }else if((ster - LIMITER) == 1 && (minster - minutes) == 0 && seconds == 0){
      client_print(0, print_chat, "To the server end, the rest 1 hours 0 minutes.")
      client_cmd(0, "spk ^"fvox/vitalsigns_on communications_on time_remaining one hours^"")
      return PLUGIN_HANDLED
    }else if((ster - LIMITER) == 0 && (minster - minutes) == 3 && seconds == 0){
      client_print(0, print_chat, "To the server end, the rest 0 hours 3 minutes.")
      client_cmd(0, "spk ^"fvox/ time_remaining three minutes^"")
      return PLUGIN_HANDLED
    }else if((ster - LIMITER) == 0 && (minster - minutes) == 0 && (60 - seconds) == 10){
      client_print(0, print_chat, "*************************************10")
      client_cmd(0, "spk ^"fvox/ten^"")
      return PLUGIN_HANDLED
    }else if((ster - LIMITER) == 0 && (minster - minutes) == 0 && (60 - seconds) == 9){
      client_print(0, print_chat, "**************************************9")
      client_cmd(0, "spk ^"fvox/nine^"")   
      return PLUGIN_HANDLED
    }else if((ster - LIMITER) == 0 && (minster - minutes) == 0 && (60 - seconds) == 8 ){
      client_print(0, print_chat, "**************************************8")   
      client_cmd(0, "spk ^"fvox/eight^"")   
      return PLUGIN_HANDLED
    }else if((ster - LIMITER) == 0 && (minster - minutes) == 0 && (60 - seconds) == 7){
      client_print(0, print_chat, "**************************************7")
      client_cmd(0, "spk ^"fvox/seven^"")   
      return PLUGIN_HANDLED
    }else if((ster - LIMITER) == 0 && (minster - minutes) == 0 && (60 - seconds) == 6){
      client_print(0, print_chat, "**************************************6")
      client_cmd(0, "spk ^"fvox/six^"")   
      return PLUGIN_HANDLED
    }else if((ster - LIMITER) == 0 && (minster - minutes) == 0 && (60 - seconds) == 5){
      client_print(0, print_chat, "**************************************5")
      client_cmd(0, "spk ^"fvox/five^"")   
      return PLUGIN_HANDLED
    }else if((ster - LIMITER) == 0 && (minster - minutes) == 0 && (60 - seconds) == 4){
      client_print(0, print_chat, "**************************************4")
      client_cmd(0, "spk ^"fvox/four^"")   
      return PLUGIN_HANDLED
    }else if((ster - LIMITER) == 0 && (minster - minutes) == 0 && (60 - seconds) == 3){
      client_print(0, print_chat, "**************************************3")
      client_cmd(0, "spk ^"fvox/three^"")   
      return PLUGIN_HANDLED
    }else if((ster - LIMITER) == 0 && (minster - minutes) == 0 && (60 - seconds) == 2){
      client_print(0, print_chat, "**************************************2")
      client_cmd(0, "spk ^"fvox/two^"")   
      return PLUGIN_HANDLED
    }else if((ster - LIMITER) == 0 && (minster - minutes) == 0 && (60 - seconds) == 1){
      client_print(0, print_chat, "**************************************1")
      client_cmd(0, "spk ^"fvox/one^"")
      client_cmd(0, "toggleconsole")
      return PLUGIN_HANDLED
    }
    return PLUGIN_HANDLED
}

public showEndTime(param[]) {
    new ster = get_cvar_num("amx_limit_hours")
    new minster = get_cvar_num("amx_limit_minutes")
    new THETIME
    get_time("%H",THETIME,5)
    new LIMITER
    LIMITER = str_to_num(THETIME)
    new THEMIN
    get_time("%M",THEMIN,5)
    new minutes
    minutes = str_to_num(THEMIN)
    new nokori = (ster - LIMITER)
    new minnokori = (minster - minutes)
    if(nokori < 0 && minnokori < 0){
    nokori = (((ster - LIMITER) + 24) -1)
    minnokori = ((60 - minutes) + minster)
    }else if(nokori < 0 && minnokori >= 0){
    nokori = ((ster - LIMITER) + 24)
    }else if(nokori >= 0 && minnokori < 0){
    nokori = ((ster - LIMITER) -1)
    minnokori = ((60 - minutes) + minster)
    }
    client_print(param, print_chat, "This server is in the end at %d:%d o'clock.",ster,minster)
    client_print(param, print_chat, "It is the rest %d hours %d minutes.",nokori,minnokori)
    server_cmd("echo ^"This server is in the end at %d:%d o'clock.^"",ster,minster)
    server_cmd("echo ^"It is the rest %d hours %d minutes.^"",nokori,minnokori)
    set_task(float(get_cvar_num( "check" )), "limited", param, param, 1, "b")
    return PLUGIN_CONTINUE
}

stonelei 发表于 2005-11-23 20:46:42

回复: 【转贴】指定时间关闭服务器

在1.0下面可以使用吗?

我正需要这个插件呢. :p

stonelei 发表于 2005-12-1 08:46:45

回复: 【转贴】指定时间关闭服务器

:p

居然没人回复呀?

这个插件有人用过吗?

tzwcard 发表于 2005-12-2 20:50:19

回复: 【转贴】指定时间关闭服务器

For AMX...
#include <amxmod>
#include <amxmisc>
:sweat::sweat::sweat::sweat::sweat:

donne 发表于 2005-12-2 23:20:09

回复: 【转贴】指定时间关闭服务器

呵呵,期待小白测试 :embarrass

caigege 发表于 2005-12-10 23:04:47

回复: 【转贴】指定时间关闭服务器

这是个好插件啊,什么没人去研究一下,给我等提供下载啊,免得我每天早上为了让机子休息半小时都要去关一下服务器

life-rest 发表于 2005-12-17 09:32:22

回复: 【转贴】指定时间关闭服务器

:brick::brick: 我靠,这种贴居然快沉了,还好被我翻出来了~~~~~~~~~~这插件太好了,以后让服务器自动重启就不用怕CS服务器因强行断出而损坏文件了。


顶~~~~~~~~~~~~~~~ :sure:

sqdami 发表于 2005-12-17 10:23:09

回复: 【转贴】指定时间关闭服务器

Post by life-rest
:brick::brick: 我靠,这种贴居然快沉了,还好被我翻出来了~~~~~~~~~~这插件太好了,以后让服务器自动重启就不用怕CS服务器因强行断出而损坏文件了。


顶~~~~~~~~~~~~~~~ :sure:
看清楚题目没有,兄弟?《【转贴】指定时间关闭服务器》啊!

lhx890624 发表于 2005-12-19 10:19:02

回复: 【转贴】指定时间关闭服务器

偶顶~~~收下,就是暂时用不到

cs迷 发表于 2005-12-21 20:31:33

回复: 【转贴】指定时间关闭服务器

这插件好像用处不大吧?如果真是天天要关服务器的话,那还开来做什么?一般很少关的呀!
页: [1] 2
查看完整版本: 【转贴】指定时间关闭服务器