广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 3302 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
timmy3a
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x1 鲜花 x11
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
[1.6][插件] SMA编写 询问[实体侦测被攻击]
早前 发问过手雷拖尾 大家反应都不错~~

今次有个新的问题 请教大家怎么写

----------SMA-----------  [ ] = 问:需要的码怎写?

[玩家-attacker] :[攻击]: [实体-entity]
Set _ [实体无伤害]/不减血/减0血
------------------------------
PS:不需提供 实体血量写法


有可能写到吗??


构思来源: gmsentryguns.amxx 
AS: https://forums.alliedmods.net/show...96478?p=696478
队友经常恶意破坏队伍的炮台; 想编写解决此问题的方法
----------SMA-----------  [ ] = 问:需要的码怎写?
简单点来说: 就是相反的~
如何编写 [实体 侦测 打击者是哪个队伍]?


在ham_const 里面有这个似乎可以用; 但我还是不懂写 

/**
* Description: Usually called whenever an entity takes any kind of damage.
* Inflictor is the entity that caused the damage (such as a gun).
* Attacker is the entity that tirggered the damage (such as the gun's owner).
* Forward params: function(this, idinflictor, idattacker, Float:damage, damagebits);
* Return type: Integer.
* Execute params: ExecuteHam(Ham_TakeDamage, this, idinflictor, idattacker, Float:damage, damagebits);
*/
Ham_TakeDamage,


[ 此文章被timmy3a在2014-06-29 10:12重新编辑 ]



献花 x0 回到顶端 [楼 主] From:香港特别行政区 | Posted:2014-06-28 22:56 |
op47 0
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x54 鲜花 x129
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

RegisterHamFromEntity(Ham_TakeDamage, 物件ID, "fw_takedamage")
在创造物体时只注册一次好了, 否则就会出现多个fw_takedamage.


献花 x0 回到顶端 [1 楼] From:香港特别行政区 | Posted:2014-06-29 11:38 |
弑血
个人头像
个人文章 个人相簿 个人日记 个人地图
社区建设奖 特殊贡献奖 创作大师奖
小有名气
级别: 小有名气 该用户目前不上站
推文 x108 鲜花 x240
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 timmy3a 于 2014-06-28 22:56 发表的 SMA编写 询问[实体侦测被攻击]: 到引言文
早前 发问过手雷拖尾 大家反应都不错~~
今次有个新的问题 请教大家怎么写

----------SMA-----------  [ ] = 问:需要的码怎写?
[玩家-attacker] :[攻击]: [实体-entity]
Set _ [实体无伤害]/不减血/减0血
.......



如同一楼所说

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

// 自订攻击对象..info_target 只是个例子..可以修改.
#define ENITIY_TYPE "info_target"


public plugin_init()
RegisterHamFromEntity(Ham_TakeDamage, ENITIY_TYPE, "fw_takedamage");

public fw_takedamage(victim, inflictor, attacker, Float:damage, damage_type)
{
//判断 受害者如果是攻击者对象的团队 or 受害者的持有者不是攻击者的话 伤害就会无效返回..
if (pev(victim, pev_team) == pev(attacker, pev_team) || pev(victim pev_owner) != attacker) 
return HAM_SUPERCEDE;

//这边放你要的...伤害

return HAM_IGNORED;
}




目前传授教学&有兴趣者可以问我
BOT瞄准攻击NPC&模仿事件触发计算出场&新增地图重生位置等等
已修复entity的attachment错误问题,开始尝试写出各种npc_boss成品
按这里检视影片,登入论坛可以直接观看
按这里检视影片,登入论坛可以直接观看
按这里检视影片,登入论坛可以直接观看
按这里检视影片,登入论坛可以直接观看
献花 x0 回到顶端 [2 楼] From:台湾中华电信股份有限公司 | Posted:2014-06-29 17:30 |
op47 0
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x54 鲜花 x129
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 s8720419 于 2014-06-29 17:30 发表的 : 到引言文


如同一楼所说
#include <amxmodx>
#include <fakemeta>
.......

Nope. RegisterHamFromEntity 不可以在 plugin_init 注册, 因为你不能够获得物件的id, 要获得 id 就必须在物件存在的时候注册, 例如一般情况下, 大部份scripter 会在 client_putinserver 对 zbot 注册, 而物件就会在创造的时候注册. 如果要在 plugin_init 里注册 , 就要用到 RegisterHam(Ham_TakeDamage,"yyy","xxx"), 其中 yyy 不是物件的 id 而是 classname.


献花 x0 回到顶端 [3 楼] From:香港特别行政区 | Posted:2014-06-30 17:17 |
弑血
个人头像
个人文章 个人相簿 个人日记 个人地图
社区建设奖 特殊贡献奖 创作大师奖
小有名气
级别: 小有名气 该用户目前不上站
推文 x108 鲜花 x240
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 op47 于 2014-06-30 17:17 发表的 : 到引言文


Nope. RegisterHamFromEntity 不可以在 plugin_init 注册, 因为你不能够获得物件的id, 要获得 id 就必须在物件存在的时候注册, 例如一般情况下, 大部份scripter 会在 client_putinserver 对 zbot 注册, 而物件就会在创造的时候注册. 如果要在 plugin_init 里注册 , 就要用到 RegisterHam(Ham_TakeDamage,"yyy","xxx"), 其中 yyy 不是物件的 id 而是 classname.






看来是我搞错了


RegisterHamFromEntity 只有在取得物件id时才可以使用表情


RegisterHam 然而这个 则是在注册时 选择对象类型表情



目前传授教学&有兴趣者可以问我
BOT瞄准攻击NPC&模仿事件触发计算出场&新增地图重生位置等等
已修复entity的attachment错误问题,开始尝试写出各种npc_boss成品
按这里检视影片,登入论坛可以直接观看
按这里检视影片,登入论坛可以直接观看
按这里检视影片,登入论坛可以直接观看
按这里检视影片,登入论坛可以直接观看
献花 x0 回到顶端 [4 楼] From:台湾中华电信股份有限公司 | Posted:2014-06-30 19:23 |
timmy3a
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x1 鲜花 x11
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 s8720419 于 2014-06-30 19:23 发表的 : 到引言文







看来是我搞错了


RegisterHamFromEntity 只有在取得物件id时才可以使用表情


RegisterHam 然而这个 则是在注册时 选择对象类型表情



那请问 类型 包含哪几种? 由注册开始我都不太懂啊~
你们说的classname 又是 怎判断 炮台?[ENTITY]?


献花 x0 回到顶端 [5 楼] From:香港特别行政区 | Posted:2014-07-09 21:31 |
弑血
个人头像
个人文章 个人相簿 个人日记 个人地图
社区建设奖 特殊贡献奖 创作大师奖
小有名气
级别: 小有名气 该用户目前不上站
推文 x108 鲜花 x240
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 timmy3a 于 2014-07-09 21:31 发表的 : 到引言文




那请问 类型 包含哪几种? 由注册开始我都不太懂啊~
你们说的classname 又是 怎判断 炮台?[ENTITY]?



你可以把它想成 每个物件都有他的classname..的名称


然而 玩家 属于..player


炮台的 群组 通常 要看..创立他的人 是用哪个类型 通常 都是用info_target 居多..



目前传授教学&有兴趣者可以问我
BOT瞄准攻击NPC&模仿事件触发计算出场&新增地图重生位置等等
已修复entity的attachment错误问题,开始尝试写出各种npc_boss成品
按这里检视影片,登入论坛可以直接观看
按这里检视影片,登入论坛可以直接观看
按这里检视影片,登入论坛可以直接观看
按这里检视影片,登入论坛可以直接观看
献花 x0 回到顶端 [6 楼] From:台湾中华电信股份有限公司 | Posted:2014-07-09 21:47 |
timmy3a
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x1 鲜花 x11
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 s8720419 于 2014-07-09 21:47 发表的 : 到引言文




你可以把它想成 每个物件都有他的classname..的名称


然而 玩家 属于..player


炮台的 群组 通常 要看..创立他的人 是用哪个类型 通常 都是用info_target 居多..



炮台的插件 由建立到 破坏 由3大部份组成
1.1 new entbase = create_entity("func_breakable") // func_wall || 可破坏的ENTITY [炮架]
1.2 new ent = create_entity("func_breakable") || 可破坏的ENTITY [炮身]
2. new const Float:g_HEALTHS[3] = {600.0, 500.0, 400.0}  || 设置ENTITY 的血量
3.  if (entity_get_float(g_sentries, EV_FL_health) <= 0.0) || 如ENTITY 血量归0 就破坏了


问题就是由这3点出发
由头到尾 设定的码是[可破坏的ENTITY]
当中没设定队伍~
--------
队伍设定== (在开火模式才设定)
--------
文章回覆的资料 暂时 只有以下能用上
## 伤害就会无效返回 == return HAM_SUPERCEDE;

那请问我要如何设定详细的 ??
1.RegisterHam 或者 RegisterHamFromEntity  呢?~

~~~~~我是善长用插件 创造游戏的人~ 但插件上一定要有配合 才能协调游戏吧
1个人的脑子是不够的


请大大继续帮忙一下~ = ] 
~~~~~~
以后是 暂时能构思到的解决[ SMA码 ] 未完整 , 请修补~~


// Set team[设定炮台者的TEAM CT/TR]
entity_set_int(ent, SENTRY_INT_TEAM, get_user_team(creator))
那条件可改为
如 创造者 不等于 TARGET TEAM = [[ TEAMMATE && 炮台血量 大于0 ]]
if (get_user_team(creator) != get_user_team(target) && (entity_get_float(g_sentries, EV_FL_health) > 0.0))
伤害无效??((return HAM_SUPERCEDE;))....


所以就是要问HAM的东西怎么写了..... 求细心解答 



~~~~~~如不明白 我在讨论什么 请下载SMA 打开看看, 再空头白话没有结果~~~~~~~~~~~
构思来源: gmsentryguns.amxx 
AS: https://forums.alliedmods.net/show...96478?p=696478




[ 此文章被timmy3a在2014-07-10 00:05重新编辑 ]


献花 x0 回到顶端 [7 楼] From:香港特别行政区 | Posted:2014-07-10 00:00 |
弑血
个人头像
个人文章 个人相簿 个人日记 个人地图
社区建设奖 特殊贡献奖 创作大师奖
小有名气
级别: 小有名气 该用户目前不上站
推文 x108 鲜花 x240
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 timmy3a 于 2014-07-10 00:00 发表的 : 到引言文


炮台的插件 由建立到 破坏 由3大部份组成
1.1 new entbase = create_entity("func_breakable") // func_wall || 可破坏的ENTITY [炮架]
1.2 new ent = create_entity("func_breakable") || 可破坏的ENTITY [炮身]
.......



如果只是想要单纯的破坏同队伤害的效果 

先在炮台建立那边新增队伍判断,把炮台设定成同队伍 // set_pev(ent, pev_team, id); ent = 物件, id = 玩家

再来...再伤害那边使用判断, 判断攻击者队伍如果跟受害者队伍,
是一样时就取消伤害... // if (pev(attacker, pev_team) == pev(victim, pev_team)) return HAM_SUPERCEDE;

另外 如果 想对物件造成伤害 直接在 物件创立时..加上 RegisterHamFromEntity(Ham_TakeDamage, ent, "fw_TakeDamage")

然而 fw_TakeDamage 就是..伤害的function...



目前传授教学&有兴趣者可以问我
BOT瞄准攻击NPC&模仿事件触发计算出场&新增地图重生位置等等
已修复entity的attachment错误问题,开始尝试写出各种npc_boss成品
按这里检视影片,登入论坛可以直接观看
按这里检视影片,登入论坛可以直接观看
按这里检视影片,登入论坛可以直接观看
按这里检视影片,登入论坛可以直接观看
献花 x0 回到顶端 [8 楼] From:台湾中华电信股份有限公司 | Posted:2014-07-14 14:09 |

首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.077025 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言