搜索
楼主: qilei518

[AMXX 带源码] 关于服务器每进入一个玩家,服都会卡几秒的问题

[复制链接]
发表于 2009-4-10 18:29:02 | 显示全部楼层 来自 中国–四川–成都
不知道这里有没有你要的答案
http://blog.playclan.cn/read.php?15
回复

使用道具 举报

发表于 2009-4-10 18:32:48 | 显示全部楼层 来自 中国–安徽–合肥
Rulzy版主也来啦!??
帮我把这个搞下好不???

/*此插件和 li_geoip 模块和 点通签名插件以及 Statx 插件配套使用.
*如有问题请到点通论坛提问.*/

#include <amxmodx>
#include <csstats>
#include "li_geoip"
#include "signs"

#define PLUGIN_NAME "DT-EnterLeave"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "ahcat"

#define STATS_KILLS 0
#define STATS_DEATHS 1
#define STATS_HS 2
#define STATS_TKS 3
#define STATS_SHOTS 4
#define STATS_HITS 5
#define STATS_DAMAGE 6

new g_JoinedTeam[33]
new g_SpecMode[33]
new szName[32]
new g_msgid

new rank[8]
new iRankPos

public plugin_init(){

register_plugin( PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);

register_event( "TeamInfo", "EventJoinedTeam", "a", "2!UNASSIGNED");

register_event( "StatusValue", "DisplayInfo", "bd", "1=2");

register_event( "TextMsg", "SetSpecMode", "bd", "2&ec_Mod");

g_msgid = get_user_msgid("SayText");
}

public client_connect(id){
g_JoinedTeam[id] = 0;
}

public EventJoinedTeam(){

new id=read_data(1);
if( g_JoinedTeam[id] == 0){
g_JoinedTeam[id]=1;
get_user_name( id, szName, 31);

new szIP[16], szCountry[40], szArea[64];
get_user_ip( id, szIP, 15, 1);
get_ipinfo( szIP, szCountry, szArea, 39, 63);

new izStats[8], izBody[8];
new iRankMax;
new szMessage[192];
iRankPos = get_user_stats( id, izStats, izBody);
iRankMax = get_statsnum();

format( szMessage, 191, "^x01* 欢迎【^x04%s^x01】^x03%s^x01 -->>【排名】^x04%d^x01(共^x04%d^x01)【来自】^x04%s^x01 - ^x04%s",iRank(), szName, iRankPos, iRankMax, szCountry, szArea);
display_chat( szMessage);
new szSignature[96];

if( dt_getsign( szName, szSignature, 95)){
format( szMessage, 191, "^x01* 【^x04个性签名^x01】^x04%s", szSignature);
display_chat( szMessage);
}

}
}

public client_disconnect(id){
get_user_name( id, szName, 31);
new szMessage[128];
format( szMessage, 128,"^x01* 【^x04%s^x01】^x03%s^x01 离开了游戏", iRank(), szName);
display_chat( szMessage);
}

public SetSpecMode(id){
new arg[12];
read_data( 2, arg, 11);
g_SpecMode[id] = ( arg[10] == '4' );
}

public DisplayInfo(id){

if ( g_SpecMode[id]){

new player = read_data(2);
if ( is_user_connected( player)){

new szName[32];
get_user_name( player, szName, 31);

new szIP[16], szCountry[40], szArea[64];
get_user_ip( player, szIP, 15, 1);
get_ipinfo( szIP, szCountry, szArea, 39, 63);

new izStats[8], izBody[8];
new iRankMax;
iRankPos = get_user_stats( player, izStats, izBody);
iRankMax = get_statsnum();

new szSignature[96], HasSignature;
HasSignature = dt_getsign( szName, szSignature, 95);

new szMessage[256];
format( szMessage, 255, "【%s】%s 排名: %d/%d^n爆头(率): %d(%0.2f) 杀敌: %d 死亡: %d^n命中(率): %d(%0.2f)/子弹: %d^n来自: %s - %s^n【个性签名】%s",
iRank(),
szName,
iRankPos,
iRankMax,
izStats[STATS_HS],
100.0 * float( izStats[STATS_HS])/float( izStats[STATS_KILLS]),
izStats[STATS_KILLS],
izStats[STATS_DEATHS],
izStats[STATS_HITS],
100.0 * float( izStats[STATS_HITS])/float( izStats[STATS_SHOTS]),
izStats[STATS_SHOTS],
szCountry,
szArea,
(HasSignature == 0)?"无(say $***)":szSignature);

set_hudmessage( 0, 103, 0, -1.0, 0.64, 0, 6.0, 8.0, 0.5, 0.15, 1) ;
show_hudmessage( id, szMessage);

}
}
}

get_ipinfo( szIP[], szCountry[], szArea[], clen, alen){

//可能 li_geoip 模块将 192.168.*.* 网段固定为"内网用户", 这里提供修改的办法.
if( strfind( szIP, "192.168.") == 1){

/*修改成你自己的网吧的地区名*/
copy( szCountry, clen, "***本地***");

/*修改成你自己的网吧的名称*/
copy( szArea, alen, "“伊四”CS服务器");
}
else
geoip_info( szIP, szCountry, szArea, clen, alen);
}

display_chat( szMessage[]){

message_begin( MSG_ALL, g_msgid);
write_byte(1);
write_string( szMessage);
message_end();
}

//进出服务器级别定义开始
public iRank(){

if(iRankPos<=10)
rank = "上将"
else
{
if(iRankPos<=20)
rank = "中将"
else
{
  if(iRankPos<=40)
rank = "少将"
else
  {
if(iRankPos<=70)
rank = "大校"
else
{
if(iRankPos<=110)
rank = "上校"
else
{
if(iRankPos<=160)
rank = "中校"
else
{
if(iRankPos<=220)
rank = "少校"
else
{
if(iRankPos<=290)
rank = "上尉"
else
{
if(iRankPos<=370)
rank = "中尉"
else
{
if(iRankPos<=460)
rank = "少尉"
else
rank = "列兵"
} } } } } } } } }
return rank
}

在这里加上【在线总时间】
new szMessage[256];
format( szMessage, 255, "【%s】%s 排名: %d/%d^n爆头(率): %d(%0.2f) 杀敌: %d 死亡: %d^n命中(率): %d(%0.2f)/子弹: %d^n来自: %s - %s^n【个性签名】%s",
iRank(),
szName,
iRankPos,
iRankMax,
izStats[STATS_HS],
100.0 * float( izStats[STATS_HS])/float( izStats[STATS_KILLS]),
izStats[STATS_KILLS],
izStats[STATS_DEATHS],
izStats[STATS_HITS],
100.0 * float( izStats[STATS_HITS])/float( izStats[STATS_SHOTS]),
izStats[STATS_SHOTS],
szCountry,
szArea,
回复

使用道具 举报

发表于 2009-4-10 18:34:50 | 显示全部楼层 来自 中国–安徽–合肥
还有我把军衔改为4个字的但就是编译不成功
new rank[8]
改为
new rank[24]
都不行
回复

使用道具 举报

发表于 2009-4-11 14:25:13 | 显示全部楼层 来自 中国–台湾
如果你用DOS架設的話
會比較好知道是出什麼問題
因為有可能出現錯誤訊息
至少可以給我們看看錯誤訊息
這樣才好幫你解決問題
回复

使用道具 举报

 楼主| 发表于 2009-4-11 19:43:24 | 显示全部楼层 来自 中国–天津–天津
我用家里建服测试过了,就是http没开启的缘故,不过网吧的系统是2003要添加MIMI文件就稍微麻烦点了
回复

使用道具 举报

发表于 2010-7-28 09:34:50 | 显示全部楼层 来自 中国–河北–唐山
支持!   顶!
回复

使用道具 举报

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

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