求生之路2玩家复活、自杀插件 l4d2_fuhuo_zisha 插件源码 l4d2_fuhuo_zisha.sp l4d2_fuhuo_zisha.smx。求生之路2,l4d,l4d2,SourceMOD 插件源码。
之前服务器要用,自己写的一东西,现在把源码发出来,注释写的比较清楚,很简单,自己看看。
说明:
控制台变量:l4d2_fuhuo_zisha_enable
0:关闭复活功能 (默认)
1:开启复活功能
用法:
聊天框输入:
!fuhuo,复活自己,平时不允许使用,进行跳跃地图时启用。
!zisha,自杀,人物卡住或者其他情况时使用。
!jump,开关复活功能,输一次开启,再输一次关闭,聊天框有提示,仅插件管理员可用。
/* 求生之路2玩家复活、自杀插件 Time: 2011-9-10 19:33:16 By: Nuclear'Atk Url: https://lcx.cc/post/2138/ */ #include <sourcemod> //#include <sdktools> new Handle:l4d2_fuhuo_zisha_enable; //是否启用复活功能 public Plugin:myinfo = { name = "求生之路2玩家复活、自杀插件", author = "春哥", description = "求生之路2玩家复活、自杀插件,玩家可以自定义各种游戏存在的模型。", version = "1.0", url = "https://lcx.cc/" } public OnPluginStart() { //创建控制台变量:l4d2_fuhuo_zisha_enable l4d2_fuhuo_zisha_enable = CreateConVar("l4d2_fuhuo_zisha_enable", "0", "0:关闭复活功能 1:开启复活功能", FCVAR_PLUGIN); //注册控制台命令 RegConsoleCmd("sm_fuhuo", Set_FuHuo, "求生之路2玩家复活、自杀插件"); RegConsoleCmd("sm_zisha", Set_ZiSha, "求生之路2玩家复活、自杀插件"); RegConsoleCmd("sm_jump", Set_Jump, "开启、禁用复活功能"); //钩住玩家死亡事件 HookEvent("player_death", Player_Dead); } public Action:Set_FuHuo(client, args) //复活 { if (GetConVarInt(l4d2_fuhuo_zisha_enable)==1) //是否启用复活功能 { ServerCommand("sm_respawn \"%N\"", client); //执行服务器指令 PrintToChatAll("信春哥得永生,玩家 %N 已成功满血、满状态复活!", client); PrintHintText(client, "信春哥得永生,你已成功满血、满状态复活!"); } else { PrintHintText(client, "当前不允许使用复活功能!"); } return Plugin_Handled; //返回函数 } public Action:Set_ZiSha(client, args) //自杀 { ServerCommand("sm_slay \"%N\"", client); //执行服务器指令 PrintToChatAll("恭喜玩家 %N 成功自杀!", client); PrintHintText(client, "恭喜你,自杀成功!"); return Plugin_Handled; //返回函数 } public Action:Set_Jump(client, args) //开启、关闭复活功能 { if (GetUserFlagBits(client)!=0) //判断是否是管理 { if (GetConVarInt(l4d2_fuhuo_zisha_enable)==1) //如果启用了复活功能 { ServerCommand("l4d2_fuhuo_zisha_enable 0"); PrintToChat(client, "已禁用复活功能!"); } else { ServerCommand("l4d2_fuhuo_zisha_enable 1"); PrintToChat(client, "已启用复活功能!"); } } else { PrintToChat(client, "只有管理员可以使用本功能!"); } return Plugin_Handled; //返回函数 } public Action:Player_Dead(Handle:event, const String:name[], bool:dontBroadcast) //玩家死亡事件 { if (GetConVarInt(l4d2_fuhuo_zisha_enable)==1) //如果启用了复活功能 { new client = GetClientOfUserId(GetEventInt(event, "userid")); //获取玩家名字 if(client > 0) { if(!IsFakeClient(client)) //判断是否是电脑玩家 { PrintHintText(client, "按Y或U打开聊天框,输入:!fuhuo,复活自己!"); } } } }