弑血
|
分享:
▼
x2
|
[插件] 插件简易流程教学2
这次拿一些插件编写基础教学好了
//开头这个是第一步,没有这个什么都不用做了,简单的注册需要的inc脚本名称 #include <amxmodx>
#include <fakemeta> #include <hamsandwich>
// 自定义 3种数据名
#define PLUGIN "Print_Damage" #define VERSION "1.0" #define AUTHOR "MyChat: 弑血"
//宣告一个浮点阵列空间33 new Float:g_damage[33];
//控制台注入
public plugin_init() { // 注册插件 "名称" "版本" "创作者" register_plugin(PLUGIN, VERSION, AUTHOR); // Events(事件) 回合开局 & freezetime 期间内执行的内容 register_event("HLTV", "event_round_start", "ae", "1=0", "2=0"); // all hamsandwich.inc 内语法 & 伤害事件 & 伤害类型 "player" & 执行的function(函数内容) & 1 = post 伤害结束后 RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage_Post", 1); }
// 回合开局 & freezetime 期间内执行的内容 public event_round_start() { //以回圈给予1~32玩家id内的伤害叠加设定0.0 (初始化) for (new i=1; i<33; i++) g_damage[ i ]= 0.0; }
/*================================================================================ [Clien Public] =================================================================================*/
//客户端进入人物选单后的function执行内容 // Client joins the game public client_putinserver(id) { //宣告一个静态布林名称 static bool:g_hamczbots; //确认注册者是否为bot(机器人),如果是的话就执行 & 确认布林名称是否为false(假),如果是执行以下内容 // Reg Ham Zbot if (is_user_bot(id) && !g_hamczbots) { // 使用语法 set_task 0.1 秒后 执行自定义名 "register_ham_czbots" 的内容 & 传递数据为 id set_task(0.1, "register_ham_czbots", id); // 直接把布林给予真的值 & 以阻断下次重复注册类型id进入此判断内容 // Ham forwards for CZ bots succesfully registered g_hamczbots = true; } }
// Register Ham Forwards for CZ bots public register_ham_czbots(id) { // Make sure it's a CZ bot and it's still connected // 检查 0.1秒后bot是否还在连线&游戏内 如果不是在游戏&连线内 返回中断以下执行 if (!is_user_connected(id) return; //给予bot执行 伤害事件 & 伤害类型 id & 执行的function(函数内容) & 1 = post 伤害结束后 RegisterHamFromEntity(Ham_TakeDamage, id, "fw_TakeDamage_Post", 1); }
// Ham Take Damage Post Forward public fw_TakeDamage_Post(victim, inflictor, attacker, Float:damage, damage_type) { //判断 受害者 如果是攻击者 就返回不执行以下内容 // Non-player damage or self damage if (victim == attacker) return HAM_IGNORED; //攻击者 如果不是 1~32范围内就返回 & 因为以下给予id 一定要确认是否为客户段持有 if (32 > attacker < 1) return HAM_IGNORED; //纪录攻击者id 伤害值叠加导入g_damage内 g_damage[attacker] += damage //给予客户端攻击者的id & 并使用显示在左下角 & 当前伤害 跟 储存每次攻击者伤害 floatround = 浮点数转整数 %d = 整数显示类型 client_print(attacker, print_chat "damage [%d] | damage all[%d]", floatround(damage), floatround(g_damage[attacker])); return HAM_IGNORED; }
以上 是给予 C$O那种 可以在 每次伤害后 显示当前造成多少伤害 跟 累计多少伤害 的 print 内容 希望 一些新手不要再觉得语法很难...&程式这种东西 可以把他想要的东西拿来组合就有了 拼图概念构造
[ 此文章被弑血在2019-06-16 13:23重新编辑 ]
此文章被评分,最近评分记录财富:500 (by amore12) | 理由: 赞..^^ | |
|
|
|