引用 | 編輯
mnbmnb5266
2014-12-15 01:41 |
樓主
▼ |
||||||||||||
x0
插件介紹:這是一個被打就會減慢速度的插件無論是在空中還是地上都有效BUG介紹:正常的狀態是挨打之後以極為緩慢的速度移動但是在對戰平台上加入服務器的玩家中會有10%可以在挨打之後以比較緩慢而不是極為緩慢的速度移動,如果先用沙盤建立一個遊戲再用正常的系統加入進去的話也會出現這個問題,我覺得這應該是疏漏了一些設定造成的,希望大大能幫我看看是哪裡出的問題為我指點迷津多謝您了 BUG視頻:?firsttime=47.096
x0
|
引用 | 編輯
mnbmnb5266
2014-12-17 00:28 |
1樓
▲ ▼ |
zp_nvg_give 0 //自动给予夜视仪 [0-禁用 // 1-开启并自动打开 // 2-开启则不打开]
zp_nvg_custom 0 //开启自定义夜视仪 zp_nvg_size 0 //夜视仪的可视范围 zp_nvg_color_R 0 //僵尸的自定义夜视仪颜色 (红) zp_nvg_color_G 0 //僵尸的自定义夜视仪颜色 (绿) zp_nvg_color_B 0 //僵尸的自定义夜视仪颜色 (蓝) zp_nvg_hum_color_R 0 //人类的自定义夜视仪颜色 (红) zp_nvg_hum_color_G 0 //人类的自定义夜视仪颜色 (绿) zp_nvg_hum_color_B 0 //人类的自定义夜视仪颜色 (蓝) zp_nvg_nem_color_R 255 //复仇之神的自定义夜视仪颜色 (红) zp_nvg_nem_color_G 100 //复仇之神的自定义夜视仪颜色 (绿) zp_nvg_nem_color_B 200 //复仇之神的自定义夜视仪颜色 (蓝) zp_flash_custom 1 //开启自定义手电筒 zp_flash_size 0.1 //手电筒照亮区域大小 (半径) zp_flash_drain 0 //自定义手电筒电量流失 [0-无限的电量] zp_flash_charge 0 //自定义手电筒充电速率 [0-无法充电] zp_flash_distance 0.1 //自定义手电筒的最大距离 zp_flash_color_R 0 //自定义手电筒颜色 (红) zp_flash_color_G 0 //自定义手电筒颜色 (绿) zp_flash_color_B 0 //自定义手电筒颜色 (蓝) zp_flash_show_all 0 //让玩家看到彼此的手电筒 我還發現了一個類似的BUG就是ZP主插件的夜視儀和手電設置,如果像上面那樣就不會看到自己和別人的手電但是卻有少數人可以無視這個規則他開啟的手電別人都能看到 x0 |
引用 | 編輯
i-c0112
2014-12-18 06:15 |
2樓
▲ ▼ |
第一個BUG改好了,基本上是重寫了,原本的方法會讓玩家停在空中(在空中受到傷害的話),感覺很不科學 :P
至於BUG原因有待測試,根據描述和原碼比對,很有可能是因為 未正確註冊BOT的Ham hook x0 |
引用 | 編輯
mnbmnb5266
2014-12-18 08:32 |
3樓
▲ ▼ |
引用 | 編輯
i-c0112
2014-12-21 15:08 |
4樓
▲ ▼ |
不支援小數點大概是因為
CS內建系統 在玩家受到傷害後 回復到最大速度的間隔解決辦法: 在插件設定的時間一到就設回最大速即可(雖然目前是設為0.8) 至於BOT的BUG依然存在 是因為個人失誤 sorry 複製程式 public task_RegisterCzBot(id) { // ... /* bugfix: At this time, the bot entity data is initialized and thus the classname is now "player". * So, checking classname here is a bad idea. static classname[16] pev(id, pev_classname, classname, charsmax(classname)) if (equal(classname, "player")) return */ // ... } x0 |
引用 | 編輯
i-c0112
2014-12-21 15:11 |
5樓
▲ ▼ |
至於擊退 似乎也是CS 內建系統
再加上 空中被擊中停止的要求 在受到攻擊後 把 XY 的 速度向量都設為 0.0 勉強算是符合條件吧.......試試看囉 x0 |
引用 | 編輯
mnbmnb5266
2014-12-21 18:04 |
6樓
▲ ▼ |
引用 | 編輯
mnbmnb5266
2014-12-22 00:33 |
7樓
▲ ▼ |
引用 | 編輯
i-c0112
2014-12-23 10:48 |
8樓
▲ ▼ |
[FIX]
原本是在 TraceAttack 時設定玩家的 pev_velocity 結果依然有 [CS內建的擊退]。改在 TakeDamage 就OK了 現在殭屍跳起的話也不會受到[垂直方向(Z軸)的擊退]了 x0 |
引用 | 編輯
mnbmnb5266
2014-12-26 22:15 |
9樓
▲ ▼ |
引用 | 編輯
mnbmnb5266
2014-12-31 11:59 |
11樓
▲ ▼ |
下面是引用 i-c0112 於 2014-12-30 22:02 發表的 : 最近思考了很多關於這個插件的製作流程其實只需要三步一點也不複雜 1:保留被擊中后減速和取消擊退效果的設定,2:創建并設定被打之人為特殊凌空狀態(無論空中挨打還是地上挨打都會進入此狀態,特殊凌空狀態的持續時間需要支持小數點,如果設定為普通凌空狀態那麼就會執行sv_airaccelerate這樣一旦修改此參數所有玩家都會受到影響),3:創建并設定特殊凌空狀態的專用移動參數zp_airaccelerate(只作用於挨打之人對沒有受傷的玩家沒有影響,無需支持小數點) 還請大大解決BUG后再費些心做出定在空中與不定在空中兩個版本的插件,多謝您了 x0 |
引用 | 編輯
i-c0112
2015-01-12 20:10 |
12樓
▲ ▼ |
||||||||||
目前先奉上使用 "pev_maxspeed" 的版本讓人完全停止的方案
使用滯空的方法正在嘗試
x0 |
引用 | 編輯
mnbmnb5266
2015-01-13 02:30 |
13樓
▲ ▼ |
引用 | 編輯
mnbmnb5266
2015-01-16 11:16 |
15樓
▲ ▼ |
引用 | 編輯
岳岳
2015-02-07 22:11 |
17樓
▲ ▼ |
下面是引用 i-c0112 於 2015-01-18 08:00 發表的 : 想問一下喔...假如弒定在空中而已的話是不是可以只用TakeDamage就好了? 為何要使用兩個變數來判斷g_isalive跟g_connected?我記得內件好像已經有這兩種的判斷了 (is_user_alive(id)、is_user_connected(id)) 在來是 client_putinserver 裡的 is_user_bot(id) 好像是多餘的,已經有equal(classname, "player")作玩家的判斷就不用在特意去禎測是否為BOT了 ( 因為玩家好像都在player群組,BOT也只會跑到另一個群組,所以只要判斷不是在玩家群組裡的使用者(id)並取得當前使用者(BOT)的群組名稱就會一次套用進去了) 在TakeDamage取得victim的動能以後在直接把x,y規零是否就能得到定身的效果了? 而且有讀取ZP的inc怎會需要fm_cs_get_user_team的stock來判斷隊伍? 然後我也搞不太懂為何會需要用到TraceAttack 和 PlayerPreThink ( 好像用TakeDamage就夠了? ) 不過假如是用set_pev給maxspeed的話那就真的需要PlayerPreThink... 給把洞能規0的話應該就能達到定身的目的才對... ※以上純屬各種疑問,無其他之意,只想知道各自使用的用意而已 x0 |
引用 | 編輯
i-c0112
2015-02-10 00:01 |
18樓
▲ |
下面是引用 岳岳 於 2015-02-07 22:11 發表的 : 想問一下喔...假如弒定在空中而已的話是不是可以只用TakeDamage就好了? [以變數存取而不呼叫native] 是因為 [效率] 問題 詳見下列文章: https://forums.alliedmods.net/showthread.php?t=88792 https://forums.alliedmods.net/showpost.php?p=784091&postcount=1?p=784091&postcount=1 https://wiki.alliedmods.net/Optimizing_Plugins_(AMX_Mod_X_Scripting)#Always_Save_Results zp 也是這樣用的喔 在來是 client_putinserver 裡的 is_user_bot(id) 好像是多餘的,已經有equal(classname, "player")作玩家的判斷就不用在特意去禎測是否為BOT了 ( 因為玩家好像都在player群組,BOT也只會跑到另一個群組,所以只要判斷不是在玩家群組裡的使用者(id)並取得當前使用者(BOT)的群組名稱就會一次套用進去了) [client_putinserver] 裡的 [is_user_bot] 以及 [pev_classname 是否為 "player"] 嘛...聽說(对就是听说) podbot 家族的都是 跟玩家一樣 pev_classname 都是 player 在TakeDamage取得victim的動能以後在直接把x,y規零是否就能得到定身的效果了?是的 爹麼捏 題目要求的是要持續一段時間的 (人家想要持久的) 而且有讀取ZP的inc怎會需要fm_cs_get_user_team的stock來判斷隊伍?以防有 CS_TEAM_UNASSIGNED 的情況 這應該是很少見啦,就像是 「前面紅燈,看了看是沒有車,闖過去吧!!」 (突然不知道那裡冒出來一台車) 「靠北,這下衰小了」 (==跑馬燈==) 有點像是這種感覺 多一分小心,總是有保障的吧 (吧? 為何會需要用到TraceAttack 和 PlayerPreThink ( 好像用TakeDamage就夠了? )PlayerPreThink 如您所說 同第二個問題的回答 持久de-su 至於 TraceAttack 之必要性... 這我也不知道(什么鬼) 當初忘了留下 comment 了 (低級失誤!?) 不過可以從 code 的邏輯推測 CS 內建的擊退是發生於 TraceAttack 和 TakeDamage 之間的 所以 你說的 "應該" 也對喔 用 TakeDamage 和 TakeDamage (post) 這兩個 "應該" 也是可以的 (但是我記得當初也是龜毛的測試過了,但是忘了結果XD 等下可以再試試) x0 |