求助: 关于领军人物插件的问题
领军人物插件(team_leader.amxx)由管理员特殊服装插件(amx_adminmodel.amxx)和双方排名第一的玩家身体发光插件(leader_glow.amxx)糅合而成,插件的功能如下:所谓领军人物,指的是交战双方中战绩最好,在各自阵营中排名第一的两个玩家,包括CT方的一个领军人物和T方的一个领军人物.既然身为领军人物,那么当然就有他们的过人之处!
1. 双方的领军人物均可获得一个特殊的皮肤模型.(CT变身vip模型,T变身rabbit[兔子]模型)
2. 每一局开始时可获得200生命值和200盔甲值.
3. 并且每一局开始时均能获得16000$的全额奖金.
这个插件可以在一定程度上削弱OP的权力,旨在鼓励玩家英勇杀敌,争当第一!只要能杀到第一位,任何玩家都可以获得上面的三大特权!呵呵~ 到时候估计连管理员都无法撼动你的地位,只能干瞪眼咯!那么,就让普通玩家也过一把OP瘾吧!
插件代码编完以后,编译成功,可以在服务器运行.不过还是发现了两个BUG:
A. 玩家一旦成为领军人物,将获得特殊的人物皮肤,这个皮肤一旦给予了玩家,那么他将一直保持着,就算你已经不再是领军人物了,却依然会穿着这身特殊的衣服!所以,我想问一下,当玩家不再是领军人物时,如何让他恢复正常的皮肤模型呢?
B. 同时,控制台也出现了一些debug信息:
L 12/28/2007 - 03:46:24: Player out of range (-1)
L 12/28/2007 - 03:46:24: Displaying debug trace (plugin "team_leader.amxx")
L 12/28/2007 - 03:46:24: Run time error 10: native error (native "set_user_health")
L 12/28/2007 - 03:46:24: team_leader.sma:: resetModel (line 94)
L 12/28/2007 - 03:46:25: Player out of range (-1)
L 12/28/2007 - 03:46:25: Displaying debug trace (plugin "team_leader.amxx")
L 12/28/2007 - 03:46:25: Run time error 10: native error (native "set_user_health")
L 12/28/2007 - 03:46:25: team_leader.sma:: resetModel (line 94)
对于问题B,我一点办法也没有;对于问题A,我试过在插件源代码的最下面添加以下代码:
{
else
{
cs_reset_user_model()
}
return PLUGIN_CONTINUE;
}
但添加上面的代码之后插件就编译不了了~ 希望高手能帮一下忙.
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
/* Keep Track of Player ID for Lead Player on each Team */
new g_Lead_CT = -1
new g_Lead_T = -1
/*
*********************************************************
* Find the lead player for each team and make them glow *
*********************************************************
*/
public plugin_init()
{
register_plugin("Team Leader", "1.0", "X-man");
register_event("ResetHUD", "resetModel", "b");
return PLUGIN_CONTINUE;
}
public plugin_precache() {
precache_model("models/player/vip/vip.mdl")
precache_model("models/player/rabbit/rabbit.mdl")
return PLUGIN_CONTINUE
}
public resetModel() {
/* Skip the glowing if there's only two people playing */
new i_numplayers = get_playersnum(0); /* get number of alive players */
if (i_numplayers < 2) return
i_numplayers = get_playersnum(1); /* get total number of players, including ones connecting */
/* Figure out who the Lead Player is for each team */
new i_Lead_CT_frags = -100
new i_Lead_T_frags = -100
new i_Lead_CT_deaths = -100
new i_Lead_T_deaths = -100
new s_team
new i_frags
new i_deaths
g_Lead_CT = -1
g_Lead_T = -1
for (new i_player = 0; i_player < i_numplayers; i_player++) {
i_frags = get_user_frags(i_player)
i_deaths = get_user_deaths(i_player)
get_user_team(i_player, s_team, 3)
/* is player Lead CT? */
if (equali(s_team,"CT",2))
if ((i_frags > i_Lead_CT_frags) ||
((i_frags == i_Lead_CT_frags) && (i_deaths < i_Lead_CT_deaths))) {
i_Lead_CT_frags = i_frags
i_Lead_CT_deaths = i_deaths
g_Lead_CT = i_player
}
/* is player Lead Terrorist? */
if (equali(s_team,"TE",2))
if ((i_frags > i_Lead_T_frags) ||
((i_frags == i_Lead_T_frags) && (i_deaths < i_Lead_T_deaths))) {
i_Lead_T_frags = i_frags
i_Lead_T_deaths = i_deaths
g_Lead_T = i_player
}
}
/* 分别给予双方的领军人物一个特殊的皮肤模型,200生命值和200盔甲值,并且每一局开始时自动获得16000$的全额资金 */
if (g_Lead_CT != -1)
cs_set_user_model(g_Lead_CT,"vip")
set_user_health(g_Lead_CT,200)
set_user_armor(g_Lead_CT,200)
cs_set_user_money(g_Lead_CT,16000)
if (g_Lead_T != -1)
cs_set_user_model(g_Lead_T,"rabbit")
set_user_health(g_Lead_T,200)
set_user_armor(g_Lead_T,200)
cs_set_user_money(g_Lead_T,16000)
}
回复: 关于领军人物插件的问题
再送大家一个搞笑的小矮人模型(antman)!:byebye: 莫见怪,非灌水!回复: 求助: 关于领军人物插件的问题
修改了下,不知道有没用.自己试下吧.回复: 求助: 关于领军人物插件的问题
可以在开局的时候判断谁是第一名,如果还是同一个人领先,那就不用管,如果是第二个人,那就把原来的MDL改为默认的MDL即可。回复: 求助: 关于领军人物插件的问题
如果刚开局时或刷新后,大家的战绩都为零的话,呵呵~ 那么插件会自动默认名字排在最前面的玩家为领军人物的.BUG报告:T方的第一名可以获得上面的三大特权;但CT方的第一名却得不到,倒是第二名的玩家得到了三大特权.怎么回事呢?
回复: 求助: 关于领军人物插件的问题
使用for循环+if条件判断谁是第一名就可以了,如果大家分数相同或者有人比分相同,则两个都不算是老大。回复: 求助: 关于领军人物插件的问题
如果大家分数相同或者有人比分相同,则两个都不算是老大。不会的,如果同一阵营的两人的最高比分一样,那么照样是名字排在前面的玩家为领军人物,这样倒也合理,排在最前,呵呵~ 理应是老大嘛!
使用for循环+if条件判断谁是第一名就可以了
apocalyptic楼主,麻烦把代码写一下.
回复: 求助: 关于领军人物插件的问题
加BOT测试没有出错提示,其他的自己测试下吧回复: 求助: 关于领军人物插件的问题
BUG报告:T方的第一名可以获得上面的三大特权;但CT方的第一名却得不到,倒是第二名的玩家得到了三大特权.怎么回事呢?还是没能解决这个问题.难道代码里面默认的是CT方的第二名才能拥有特权吗?
页:
[1]