zhouqundao 发表于 2023-4-4 20:00:41

求在规定的时间自动转向预定服插件

现用插件 测试达不到要求

代码如下

#include <amxmodx>
#include <amxmisc>
#include <string>

public plugin_init()
{
        set_task(59.0, "Get_Thetime", 987123, "", 0, "b")
}

public Get_Thetime()
{
        new TheTime
        get_time("%H:%M", TheTime, 8)
        if ( equal(TheTime, "19:15") )    规定时间
        {
                new playerList,pnum
                get_players(playerList, pnum)
                for ( new i=0; i<pnum; i++ )
                {
                           client_cmd(playerList, "connect 192.168.0.101:27111")
               }
        }
}


定时转服时间    测试能转服 但是只转在服内的人员才能转而且必须是 当时服务器刷新 或者换图才会激活转服指令   而且 有效时间还是在规定时间一分钟内过了规定时间后 任何连接的人都不会在转服



希望有懂的帮忙修改一下   

改成为   比如转服执行时间 开始时间为 20:00    到23:00   结束   这个时间内 不管服内人员 还是服外人员都转到特定服去    转服时间结束后保持正常通道就可以了


最好设置时间   参数可在 amxx.cfg 里设置    我因为手里只有这个这个源码只是作为参考   如果有效果比这更好的   请分享一下    没有的也可在此基础上修改只有能达到目的即可

Sea 发表于 2023-4-14 22:57:20

zhouqundao 发表于 2023-4-14 18:54
register_cvar

这个参数还是不会用




试试吧。没本地测试,可能有点问题~

Sea 发表于 2023-4-14 12:55:32

分钟的你自己那源码里有案例
get_time后面那个照着改就行

至于增加CVAR,你可以论坛找些插件源码案例看看,很简单的

Sea 发表于 2023-4-7 23:06:31

试试。。。

#include <amxmodx>
#include <amxmisc>
#include <string>

#define PLUGIN    "时间转服"
#define VERSION   "0.1"
#define AUTHOR    "Sea"

public plugin_init()
{
        register_plugin(PLUGIN,VERSION,AUTHOR)
}

public client_putinserver(id)
{
        set_task(10.0, "ChangeConnect", 987123, "", 0, "b")
}

public client_connect(id)
{
        new sTimeH
        get_time("%H",sTimeH,3)
        new TimeH = str_to_num(sTimeH)
        if (TimeH > 20 && TimeH <23)
        {
                client_cmd(id, "connect 192.168.0.101:27111")
        }
        return PLUGIN_CONTINUE;
}

public client_disconnected(id)
{
          remove_task(id)
}

public ChangeConnect()
{
        new sTimeH
        get_time("%H",sTimeH,3)
        new TimeH = str_to_num(sTimeH)
        if (TimeH > 20 && TimeH<23)
        {
                set_task(60.0, "Get_Thetime", 987123, "", 0, "b")
        }
}

public Get_Thetime()
{
        for (new i = 1; i <= get_maxplayers(); i++)
        {
        client_cmd(get_maxplayers(), "connect 192.168.0.101:27111")
        }
}

zhouqundao 发表于 2023-4-8 17:20:40

本帖最后由 zhouqundao 于 2023-4-8 17:21 编辑

Sea 发表于 2023-4-7 23:06
试试。。。

写到文本里 但是无法转成插件





zhouqundao 发表于 2023-4-8 18:07:57

不知道是我操作的问题还是   编码的问题   我在可转的源码sma文本里复制粘贴可转插件   但是 在游戏里没有任何反映在规定的时间内不管是在游戏里 还是 重进测试连接 都不会转服    如果你测试过请把你的编码的文本上传一下好吗   在有就是时间设置不一定非要在源码文本里写着   可以在 把时间设定 参数可在 amxx.cfg 里设置   是最好的了非常感谢

zhouqundao 发表于 2023-4-8 18:12:23

2150403846    方便的话 可以加我QQ2150403846    有偿

wangyang5008 发表于 2023-4-9 18:09:39

2013年就屏蔽了connect命令了,你这是活在2013年之前啊?

Sea 发表于 2023-4-9 22:06:55

本帖最后由 Sea 于 2023-4-9 22:10 编辑

zhouqundao 发表于 2023-4-8 17:20
写到文本里 但是无法转成插件

正版的控制台早已经屏蔽了非本地connect, bind等命令了~盗版的不清楚、、、




两个AMXMODX版本
一个1.8.2.0
一个1.9.0.5294


没本地测试过。。。。。

zhouqundao 发表于 2023-4-10 14:43:26

本帖最后由 zhouqundao 于 2023-4-10 14:56 编辑

Sea 发表于 2023-4-9 22:06
正版的控制台早已经屏蔽了非本地connect, bind等命令了~盗版的不清楚、、、




我在你给的源码种编译成插件了。本地测试可以用   说明一下我是cs1.5 测试的 也是要在1.5 服里用的   但是转服时间不知道 怎么回事   比如20点开始设置的   在服里 会延迟半个小时后才会转服结束时间 是正常结束时间不执行转服的!


源码里   if (TimeH > 20 && TimeH <23)


在本地测试的时候能用但是有点小问题   20点整不执行转服到 20:30   才会转服   有时候 到20:40才会转服这是什么情况?   



还有能不能在   amxx.cfg 里设置转服时间参数   


比如这样就方便多了







使用的是这个源码






编译成功的


zhouqundao 发表于 2023-4-11 15:13:03

Sea 发表于 2023-4-7 23:06
试试。。。

可以把源码 执行时间参数在amxx.cfg里面 设置吗   这样就可以方便很多   不用 在想做修改的时候要在源码里改而且这个源码里的 时间格式整点修改能看懂    分钟格式 是什么样的呢比如修改成 20:21该如何改动?   谢谢了
页: [1] 2
查看完整版本: 求在规定的时间自动转向预定服插件