搜索
查看: 1868|回复: 1

【建议】使用TimeProjector插件的朋友进来看看

[复制链接]
发表于 2005-4-14 11:10:31 | 显示全部楼层 |阅读模式 来自 中国–广东–深圳–南山区
昨天没事,想修改一个插件代码,无意中发现TimeProjector代码有个问题,代码需要优化。

原码:
#include <amxmodx>
new bool:g_PlayerStatus[33]
public dis_delay(id){
g_PlayerStatus[id] = true
}
public show_timer(){
new MONTHS[12][] = {"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"}
new WEEK[7][] = {"一","二","三","四","五","六","日"}
new DAY[31][] = {"一","二","三","四","五","六","七","八","九","十","十一","十二","十三","十四","十五","十六","十七","十八","十九","二十","廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","三十","三十一"}
new nextmap[32]
new cumap[32]
new timel = get_timeleft()
new ns_Hour[3], ns_Minutes[3],ns_Month[3],ns_Day[3],ns_Year[5],ns_second[3],ns_week[5]
get_cvar_string("amx_nextmap",nextmap,31)
get_mapname(cumap,31)
get_time("%H", ns_Hour, 2)
get_time("%M", ns_Minutes, 2)
get_time("%m", ns_Month, 2)
get_time("%d", ns_Day, 2)
get_time("%Y", ns_Year, 4)
get_time("%S", ns_second, 2)
get_time("%w", ns_week, 4)
set_hudmessage(0,255,0,0.75,0.18,0, 1.0, 1.0, 0.1, 0.2, 12)
for (new id=1; id<33; id++){
if (g_PlayerStatus[id]){
if((str_to_num(ns_week)) ==0){
show_hudmessage(id,"%s年%s%s日星期%s^n北京时间: %s:%s:%s^n当前地图: %s^n下个地图: %s^n剩余时间: %d:%02d",ns_Year,MONTHS[str_to_num(ns_Month) -1],DAY[str_to_num(ns_Day) -1],WEEK[str_to_num(ns_week) +6],ns_Hour,ns_Minutes,ns_second,cumap,nextmap,timel / 60, timel % 60)
}else{
show_hudmessage(id,"%s年%s%s日星期%s^n北京时间: %s:%s:%s^n当前地图: %s^n下个地图: %s^n剩余时间: %d:%02d",ns_Year,MONTHS[str_to_num(ns_Month) -1],DAY[str_to_num(ns_Day) -1],WEEK[str_to_num(ns_week) -1],ns_Hour,ns_Minutes,ns_second,cumap,nextmap,timel / 60, timel % 60)
}
}
}

return PLUGIN_CONTINUE
}
public client_death(killer,victim,wpnindex,hitplace,TK)
set_task(5.0, "dis_delay",victim)
public statusReset(){
for (new i=0; i<33; i++)
g_PlayerStatus = false
}
public plugin_init(){
register_plugin("TimeProjector","0.11","olol & nwb13")
register_event( "ResetHUD", "statusReset", "be" )
//register_clcmd("say nowtime","show_timer")
set_task(1.0, "show_timer",0,"",0,"b")
return PLUGIN_CONTINUE
}


如果把“ new WEEK[7][] = {"一","二","三","四","五","六","日"}”改为
new WEEK[7][] = {"","一","二","三","四","五","六"}

那就根本不用“if((str_to_num(ns_week)) ==0){......else.....}”这段IF代码了。只需以下代码即可:
show_hudmessage(id,"%s年%s%s日星期%s^n北京时间: %s:%s:%s^n当前地图: %s^n下个地图: %s^n剩余时间: %d:%02d",ns_Year,MONTHS[str_to_num(ns_Month) -1],DAY[str_to_num(ns_Day) -1],WEEK[str_to_num(ns_week)],ns_Hour,ns_Minutes,ns_second,cumap,nextmap,timel / 60, timel % 60)

经过以上修正也可以达到同样效果。并且可以简化代码,增强代码的执行效率。

我说的是否正确?请指正!
发表于 2005-4-14 21:44:09 | 显示全部楼层 来自 中国–福建–泉州
我有用这个插件,但是里面的内容我不太会~ :burn:
回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 注个册吧

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