找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: wwww23

请Simen.newbie老大帮忙,谢谢。

[复制链接]

该用户从未签到

 楼主| 发表于 2008-3-29 00:46:12 | 显示全部楼层
测试了一下,修改之后的转换就又成了CS程序假死,请问是不是人数太多了,32人的服,谢谢你一天来的修改。

[ 本帖最后由 wwww23 于 2008-3-29 00:47 编辑 ]

该用户从未签到

发表于 2008-3-29 01:02:15 | 显示全部楼层
没记录错误信息?
试一下把人数上限设置成31

该用户从未签到

 楼主| 发表于 2008-3-29 01:41:06 | 显示全部楼层
弹出这样的窗口,请问是什么原因?英文不是很懂,好像和CPU有关,我的是双核CPU。谢谢。
找了相当资料:http://translate.google.com/translate?u=http%3A%2F%2Fforums.alliedmods.net%2Farchive%2Findex.php%2Ft-4028.html&langpair=en%7Czh-CN&hl=zh-CN&ie=UTF-8
翻译出来好像是CPU前端总线什么的不懂。原文在:http://forums.alliedmods.net/archive/index.php/t-4028.html
错误日志里有:


L 03/29/2008 - 03:53:50: [CSTRIKE] Invalid player 29
L 03/29/2008 - 03:53:50: [AMXX] Run time error 10 (plugin "adminswap_teams.amxx") (native "cs_get_user_team") - debug not enabled!
L 03/29/2008 - 03:53:50: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).

[ 本帖最后由 wwww23 于 2008-3-29 04:07 编辑 ]
1.jpg

该用户从未签到

发表于 2008-3-29 11:06:14 | 显示全部楼层
高手哇 我是菜鸟

该用户从未签到

发表于 2008-3-29 11:13:07 | 显示全部楼层
我什么都没看懂

该用户从未签到

发表于 2008-3-29 13:50:51 | 显示全部楼层
cstrike模块的问题...
再换另一个函数

该用户从未签到

 楼主| 发表于 2008-3-29 20:50:43 | 显示全部楼层
{
new pcount, i
client_print(0,print_chat,"上半场比赛结束,交换队伍")
pcount = get_playersnum()
for (i = 1; i <= pcount; i++)
{
switch (cs_get_user_team(i))
{
case CS_TEAM_T:
{
cs_set_user_team(i, CS_TEAM_CT)
}
case CS_TEAM_CT:
{
cs_set_user_team(i, CS_TEAM_T)
}

}
}
}
只能换个别,出现
L 03/29/2008 - 03:53:50: [CSTRIKE] Invalid player 29
L 03/29/2008 - 03:53:50: [AMXX] Run time error 10 (plugin "adminswap_teams.amxx") (native "cs_get_user_team") - debug not enabled!
L 03/29/2008 - 03:53:50: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
的错误日志,用老大的后面那个就会出现弹出窗口,就是上面的截图,晕乎乎,还是谢谢老大一直来的热心帮助。

该用户从未签到

发表于 2008-3-29 21:59:23 | 显示全部楼层
用get_user_team()代替cs_get_user_team()看看

该用户从未签到

 楼主| 发表于 2008-3-29 23:59:53 | 显示全部楼层

{
new pcount, i
client_print(0,print_chat,"上半场比赛结束,交换队伍")
pcount = get_playersnum()
for (i = 1; i <= pcount; i++)
{
switch (cs_get_user_team(i))
{
case CS_TEAM_T:
{
cs_set_user_team(i, CS_TEAM_CT)
}
case CS_TEAM_CT:
{
cs_set_user_team(i, CS_TEAM_T)
}

}
}
}

把cs_get_user_team(i)改成get_user_team(i)就会挂服,今天在点通看到
代码:#include
#include
#include
#define PLUGIN "Test"
#define AUTHOR "Jim"
#define VERSION "1.0"
new g_maxplayers
new g_round
new g_pcvar_tcl
new g_limitteams
new g_autobalance
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("TextMsg", "round_restart", "a", "2=#Game_Commencing", "2=#Game_will_restart_in")
register_logevent("round_end", 2, "1=Round_End")
g_pcvar_tcl = register_cvar("teamchange_level", "3")
g_maxplayers = get_maxplayers()
}
public round_restart()
{
g_round = 0
}
public round_end()
{
g_round++
if(g_round % get_pcvar_num(g_pcvar_tcl))
{
g_limitteams = get_cvar_num("mp_limitteams")
g_autobalance = get_cvar_num("mp_autoteambalance")
set_cvar_num("mp_limitteams", 0)
set_cvar_num("mp_autoteambalance", 0)
change_team()
}
}
public change_team()
{
new CsTeams:team
for(new id = 1; id <= g_maxplayers; id++)
{
if(is_user_connected(id))
{
team = cs_get_user_team(id)
if(team == CS_TEAM_T)
cs_set_user_team(id, CS_TEAM_CT)
else if(team == CS_TEAM_CT)
cs_set_user_team(id, CS_TEAM_T)

if(is_user_alive(id))
user_silentkill(id)
}

}
set_cvar_num("mp_limitteams", g_limitteams)
set_cvar_num("mp_autoteambalance", g_autobalance)
}

多少局换场的,测试时人少一切正常,人数多就挂服,就是上面截图的,是不是处理数据太多CPU负核太大才这样?我有这样个想法,不知行不行得通,如果在10局换场,第九局时死一个玩家就换成对方,这一局不准按M换边,那样新开局的时候应该不会出现挂服了,这段代码一直没找到,希望老大能帮忙,十分谢谢。

该用户从未签到

发表于 2008-3-30 01:11:06 | 显示全部楼层
我才进来又是一排的代码..........看着眼晕  还米解决么这问题?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表