HMBSbige / SouceModPlugins

My L4D2 SouceMod plugins
48 stars 10 forks source link

反伤的有个bug #3

Closed Y-A-K-E closed 3 years ago

Y-A-K-E commented 3 years ago

fftlite_incap 设置为1的情况下

即使黑白了反伤也不会死.

那么就有了一个神奇的操作,

黑白了,如果血很少或者只有1点的情况下,只需要利用反伤倒地.队友扶起来又变成30血. 反复操作可以无限续命...

HMBSbige commented 3 years ago

我一直设为 0 的...

你会改的话欢迎 PR 我懒

Y-A-K-E commented 3 years ago

改我是不会改. 我游戏都才刚玩一百多小时.

不过我看到 类似这种黑白检查的插件里面有黑白判断. https://forums.alliedmods.net/showthread.php?t=317956

他单独写了一个函数看上去是取虚血.

float GetTemporaryHealth(int client)
{
    float fTempHP = GetEntPropFloat(client, Prop_Send, "m_healthBuffer");
    fTempHP -= (GetGameTime() - GetEntPropFloat(client, Prop_Send, "m_healthBufferTime")) * fPillsDecayRate;

    return (fTempHP >= 0.0) ? fTempHP : 0.0;
}

然后

if (GetEntProp(victim, Prop_Send, "m_iHealth") + RoundToCeil(GetTemporaryHealth(victim)) >= GetEntProp(victim, Prop_Send, "m_iMaxHealth") / 2)
{
  //正常的
}
else
{
  //黑白了
}
Y-A-K-E commented 3 years ago

另外window开服务器服务器名字. 不需要插件就可以支持中文.

我是之前开过AS:RD这个游戏的服务器,之前改过.

有两种办法.

1, 控制台启动服务器,

批处理启动(保存为unicode编码) 后面跟着服务器名字 srcds.exe -console -usegh -nomessagebox -nocrashdialog -game left4dead2 -tickrate 100 +map c1m2_streets +maxplayers 4 +hostport 27015 +hostname "楠趽電腦笨地測S"

然后装一个注册表补丁. 作用就是将服务器的控制台的编码强制修改为UNICODE.

https://www.yge.me/show/42.html

效果就是 QQ截图20201023233051

在游戏服务器列表中也是中文的了.

方法2就是

可以用notepad+ 这种工具,本地新建一个unicode编码的文件. 写入你要改成的服务器中文名字.

然后用notepad+的编码转换,转成简体中文GB2312编码,转换后,文字会变成乱码.没关系, 众所周知,乱乱得正.

无标题 QQ截图20201025015000

然后插入服务器名字.(在不打前面方法一说的注册表补丁的情况下.) 服务器名字这样也支持中文.

建议方法一.比较方便.一劳永逸. 好处就是,我可以开多个服务器,每个服务器名字都可以不一样.