廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 3297 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為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.057386 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言