引用 | 編輯
tony987852
2010-08-15 12:20 |
樓主
▼ |
||
x0
這段源碼是我從ZP的主插件出來的...在活著的時候可以看到自己的狀態,可是死掉以後不能看其他人的狀態 所以,希望有人能告訴我哪裡出錯... 順便問一下....sma中有哪參數可以防止被人打停(就是在走的時候,如果有人向我開槍,我不會停下來)謝謝了... 複製程式 const PEV_SPEC_TARGET = pev_iuser2 public ShowHUD(taskid) { static id id = taskid - 1337 // Player died? if (!is_user_alive(id)) { // Get spectating target id = pev(id, PEV_SPEC_TARGET) // Target not alive if (!is_user_alive(id)) return; } new Float:hud_time = get_pcvar_float(g_pcvar_healthtime); // Spectating someone else? if (id != taskid - 1337) { set_hudmessage(0, 255, 0, 0.6, 0.8, 0, hud_time, hud_time, 0.1, 0.2, 4); show_hudmessage(id, "%L", LANG_SERVER, "PLAYER_HEALTH", get_user_health(id), g_Point[id], combo[id], g_level[id], g_xp[id], g_next_lv[id]); } else { set_hudmessage(0, 255, 0, 0.6, 0.9, 0, hud_time, hud_time, 0.1, 0.2, 4); show_hudmessage(id, "%L", LANG_SERVER, "PLAYER_HEALTH", get_user_health(taskid - 1337), g_Point[taskid - 1337], combo[taskid - 1337], g_level[taskid - 1337], g_xp[taskid - 1337], g_next_lv[taskid - 1337]); } } x0
|
引用 | 編輯
chuchung712
2010-08-15 12:25 |
1樓
▲ ▼ |
你就這樣拿著31行存成SMA檔去轉檔嗎…… Orz
x0 |
引用 | 編輯
tony987852
2010-08-15 13:07 |
2樓
▲ ▼ |
當然不是...我把這段源碼加進去Base Builder...
這31行的就是主要的內容... 因為我不小心把BB插件的內容加了40KB...所以不方便放出... x0 |
引用 | 編輯
chuchung712
2010-08-15 13:09 |
3樓
▲ ▼ |
沒SMA檔怎修改
至少也說有什麼錯誤 x0 |
引用 | 編輯
tony987852
2010-08-15 13:13 |
4樓
▲ ▼ |
就是沒有說錯誤阿...上面已經說了...
生存時可以看到自己的狀態,可是死掉後不能看到別人的狀態 就是這個問題... x0 |
引用 | 編輯
chuchung712
2010-08-15 13:20 |
5樓
▲ ▼ |
你有說過嗎……?
====================== 試試不要這段 // Player died? if (!is_user_alive(id)) { // Get spectating target id = pev(id, PEV_SPEC_TARGET) // Target not alive if (!is_user_alive(id)) return; } x0 |
引用 | 編輯
tony987852
2010-08-15 13:57 |
6樓
▲ ▼ |
剛試過了...死後是可以看到自己的狀態.........可是..我要的是別人的狀態...
x0 |
引用 | 編輯
chuchung712
2010-08-15 14:04 |
7樓
▲ ▼ |
無能為力
另請高明吧 =V= 插件我都不太懂 x1 |
引用 | 編輯
a7811311622
2010-08-15 22:46 |
8樓
▲ ▼ |
下面是引用 tony987852 於 2010-08-15 12:20 發表的 sma的問題,|有人能幫我看看這段源碼有什麼問題嗎...?: 為何覺得你好像搞混了"id"和"taskid - 1337"使用的時間點呢… 你要不要重新複製原本的內容後再把ZP原本的「ID_SHOWHUD」全部取代成「taskid - 1337」 後在比較看看你原本寫的內容…至於「防止被人打停」… 用ZP的指令"zp_zombie_painfree"應該就能追查到寫法了吧… x0 |
引用 | 編輯
tony987852
2010-08-15 23:12 |
9樓
▲ ▼ |
下面是引用 a7811311622 於 2010-08-15 22:46 發表的 :沒有搞混呀... 複製程式 enum (+= 100) { TASK_SHOWHUD } #define ID_SHOWHUD (taskid - TASK_SHOWHUD) 上面用法不是跟taskid - 1337一樣嗎? 假定TASK_SHOWHUD是100 ID_SHOEHUD不就 = taskid - 100 = taskid - 1337 嗎? 複製程式 public ShowHUD(taskid) { static id id = taskid - 1337 // Player died? if (!is_user_alive(id)) { // Get spectating target id = pev(id, PEV_SPEC_TARGET) // Target not alive if (!is_user_alive(id)) return; } new Float:hud_time = get_pcvar_float(g_pcvar_healthtime); // Spectating someone else? if (id != taskid - 1337) { set_hudmessage(0, 255, 0, 0.6, 0.8, 0, hud_time, hud_time, 0.1, 0.2, 4); show_hudmessage(id, "%L", LANG_SERVER, "PLAYER_HEALTH", get_user_health(id), g_Point[id], combo[id], g_level[id], g_xp[id], g_next_lv[id]); } else { set_hudmessage(0, 255, 0, 0.6, 0.9, 0, hud_time, hud_time, 0.1, 0.2, 4); show_hudmessage(id, "%L", LANG_SERVER, "PLAYER_HEALTH", get_user_health(taskid - 1337), g_Point[taskid - 1337], combo[taskid - 1337], g_level[taskid - 1337], g_xp[taskid - 1337], g_next_lv[taskid - 1337]); } } x0 |
引用 | 編輯
a7811311622
2010-08-15 23:41 |
10樓
▲ ▼ |
下面是引用 tony987852 於 2010-08-15 23:12 發表的 : 呃…問題不在這裡…問題在於…請善用「Ctrl+H」的取代功能… 光是一個地方就看出問題了…試問…既然「id = taskid - 1337」… 那這段 複製程式 // Spectating someone else? if (id != taskid - 1337) { show_hudmessage(id, …) } x1 |
引用 | 編輯
tony987852
2010-08-16 08:18 |
11樓
▲ ▼ |
下面是引用 a7811311622 於 2010-08-15 23:41 發表的 :所以...問題就在這...然後,我剛才就把show_hudmessage(id, …)那個id改成taskid - 1337 測試完後...結果: 還是這樣... 所以,問題應該不在這裡? 另外... 複製程式 RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage_Post", 1) public fw_TakeDamage_Post(victim) { if(cs_get_user_team(victim) != CS_TEAM_T) return; set_pdata_float(victim, OFFSET_PAINSHOCK, 1.0, OFFSET_LINUX) } 上面的可以加入attacker嗎...? 因為我想要只有特定的武器可以打停 x0 |
引用 | 編輯
a7811311622
2010-08-16 10:20 |
12樓
▲ ▼ |
下面是引用 tony987852 於 2010-08-16 08:18 發表的 : 錯誤不只那邊…我上面只是舉其中一個錯誤而已…所以才說善用「Ctrl+H」的取代功能… 話說ZP 4.3 有關「fw_TakeDamage_Post」的寫法還真節省啊… 你只要把「fw_TakeDamage_Post(victim)」改成「fw_TakeDamage_Post(victim, inflictor, attacker)」 就能用attacker了… x1 |
引用 | 編輯
tony987852
2010-08-16 11:51 |
13樓
▲ ▼ |