|
发表于 2010-12-20 16:18:21
|
显示全部楼层
来自 中国–吉林–长春
#include <amxmodx>
#include <cstrike>
//#include <hamsandwich>
#define NAME "show teammate's money"
#define VERSION "1.3"
#define AUTHOR "K.K.Lv"
new g_max_players
new g_teammate[33]
public plugin_init()
{
register_plugin(NAME, VERSION, AUTHOR) // 注册插件
// RegisterHam(Ham_Spawn, "player", "player_spawn", 1)
register_event("ResetHUD", "player_spawn", "be") // 注册用户事件,*重置玩家位置时会执行,例如一局开始或者用户重生时执行player_spawn函数
register_clcmd("say /money", "show_money") // 注册一个客户端命令,"say /money",执行show_money函数
register_event("StatusValue", "show_teammate_money", "be", "1=2", "2!0")
register_event("StatusValue", "set_team", "be", "1=1") // 玩家加入队伍时执行
g_max_players = get_maxplayers() // 获取服务器设置的最大玩家数
}
public player_spawn(client)
{
if (is_user_alive(client)) // 判断用户是否活着的状态
{
set_task(1.0, "show_money", client) // 设置一个TASK,延迟1.0秒后执行函授show_moeny,client为传递过去的用户ID,CS的用户ID为1-32,进入服务器时系统会自动将还没有用到的ID分配给你
}
}
public show_money(id)
{
new message[1024] // 定义一个1024字节的变量
new name[32] // 定义一个32字节的变量
new money // 定义一个为money的整型变量
new len = format(message, sizeof message - 1, "【本队玩家金钱】:^n") // 格式化一句字符进message变量内,format为格式化命令
for (new i = 1; i <= g_max_players; i++) // 循环1-最大玩家数
{
if (is_user_connected(i)) // 判断用户是否连接中
{
if (cs_get_user_team(i) == cs_get_user_team(id)) // 对比执行命令的用户及循环出来的用户ID的队伍是否一样,cs_get_user_team为获取玩家队伍,返回1为T,返回2是CT,返回0是未知,返回3为观察者
{
money = cs_get_user_money(i) // 获取玩家金钱
get_user_name(i, name, 31) // 获取玩家名字
len += format(message[len], sizeof message - 1 -len, "%-22.22s: %d^n", name, money)
}
}
}
set_hudmessage(100, 200, 0, 0.05, 0.35, 0, 0.02, 5.0, 0.1, 0.2, 2)
/*
set_hudmessage ( red=200, green=100, blue=0, Float:x=-1.0, Float:y=0.35, effects=0, Float:fxtime=6.0, Float:holdtime=12.0, Float:fadeintime=0.1, Float:fadeouttime=0.2, channel=4 )
*/
show_hudmessage(id, message) // 发送HUD文字
}
public set_team(id)
{
g_teammate[id] = read_data(2)
}
public show_teammate_money(id)
{
if(!is_user_bot(id) && is_user_connected(id))
{
new name[32]
new pid = read_data(2)
new red = 0, green = 0
if (get_user_team(pid) == 1)
red = 255
else
green = 255
get_user_name(pid, name, sizeof name - 1)
new money = cs_get_user_money(pid)
if (g_teammate[id] == 1)
{
set_hudmessage(red, 50, green, -1.0, 0.60, 1, 0.01, 0.6, 0.01, 0.01, 8)
show_hudmessage(id, "Name:%s -- Money:%d", name, money)
}
else {
set_hudmessage(red, 50, green, -1.0, 0.60, 1, 0.01, 0.6, 0.01, 0.01, 8)
show_hudmessage(id, "Name:%s", name)
}
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ ansicpg936\\ deff0{\\ fonttbl{\\ f0\\ fnil\\ fcharset134 Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang2052\\ f0\\ fs16 \n\\ par }
*/ |
|