引用 | 編輯
T.o.n..y
2015-04-11 12:37 |
樓主
▼ |
||
x0
如題~~這個CSQ士氣~ 是依照一個特定的範圍內, 每一個同樣陣營(人類),給予5%士氣? 小的想請問,這種要如何寫? 小的不知怎下手... 感謝各位數位大大 x0
|
引用 | 編輯
弒血
2015-04-18 14:46 |
3樓
▲ ▼ |
下面是引用 T.o.n..y 於 2015-04-14 18:26 發表的 : 下面我幫你寫了一個 回傳範圍同隊的數據 ,剩下的應該知道了吧 stock check_range_team(id) { new victim = -1, Float:end[3], radius = 150, num; pev(id,pev_origin, end); while ((victim = engfunc(EngFunc_FindEntityInSphere, victim, end, float(radius))) != 0) { if (!is_user_connected(victim) || !is_user_alive(victim)) continue; if (cs_get_user_team(victim) == cs_get_user_team(id)) num ++; } client_print(id, print_center, "range num [%d]", num); return num; } x0 |
引用 | 編輯
T.o.n..y
2015-04-20 17:57 |
4樓
▲ ▼ |
下面是引用 s8720419 於 2015-04-18 14:46 發表的 : 那請問一下~ 像是擊殺的部分是放在fw_killed 這個部分 那麼這stock是要放在哪判斷?是要放在提升的地方還是.... x0 |
引用 | 編輯
T.o.n..y
2015-04-20 21:50 |
6樓
▲ ▼ |
下面是引用 s8720419 於 2015-04-20 20:35 發表的 : public fw_takedamage(victim, inflictor, attacker, Float:damage, damage_type) { new user_shiqi user_shiqi = g_shiqi[attacker] switch (user_shiqi) { case 1: damage *= 1.1 case 2: damage *= 1.2 . . . . . . 以下略 } SetHamParamFloat(4, damage) check_range_team(attacker) return HAM_IGNORED; } 這樣? 另外提升5% 最多60%..請問要如何限制最大提升值(60%那個)?? x0 |
引用 | 編輯
弒血
2015-04-21 18:40 |
10樓
▲ ▼ |
下面是引用 T.o.n..y 於 2015-04-21 15:41 發表的 : //把原先的傷害 X 1.0倍在加上取得的士氣人數 0.05倍 所以是 1.05倍 Damage = (Damage * 1.0 + (check_range_team(attacker) * 0.05)) //直接套用傷害.. HamSetParamFloat(4, Damage) stock check_range_team(id) { new victim = -1, Float:end[3], radius = 150, num; pev(id,pev_origin, end); while ((victim = engfunc(EngFunc_FindEntityInSphere, victim, end, float(radius))) != 0) { if (!is_user_connected(victim) || !is_user_alive(victim)) continue; if (cs_get_user_team(victim) == cs_get_user_team(id)) num ++; } //這個地方限制回傳數量.如果大於12人數就設定為12人 如果沒有就返回當前人數 return (num > 12) ? 12 : num; } x0 |
引用 | 編輯
T.o.n..y
2015-04-22 18:07 |
11樓
▲ ▼ |
那如果要顯現在人類士氣進度調上呢?
例如有一人的時候+5% ======================================== if(g_shiqi[id] == 0 這裡要加些什麼?) { set_hudmessage(0, 255, 0, -1.0, 0.8, 0, 0.1, 0.8, 0.1, 0.1, 1) show_hudmessage(id, "目前攻擊力為:100%% + 5") } ======================================== 請問大大您呢~ x0 |
引用 | 編輯
弒血
2015-04-22 19:06 |
12樓
▲ ▼ |
下面是引用 T.o.n..y 於 2015-04-22 18:07 發表的 : // 我不曉得它的效果是啥..先放著 g_shiqi[id] = 0 // 使用當前hud顏色通到位置座標顯示. set_hudmessage(0, 255, 0, -1.0, 0.8, 0, 0.1, 0.8, 0.1, 0.1, 1) //顯示 當前人數 換算 100%+當前人數 如果為1人 * 5% 也就是 100 + 5% = 105% 換算顯示 show_hudmessage(id, "目前攻擊力為:%d", (100+(check_range_team(id)*5))) x0 |
引用 | 編輯
T.o.n..y
2015-04-23 21:46 |
13樓
▲ ▼ |
下面是引用 s8720419 於 2015-04-22 19:06 發表的 : 這樣打似乎跑不出效果? 附一張圖 show_hudmessage(id, "目前攻擊力為:%d", (100+(check_range_team(id)*5)))用大大的寫法~~ stock 也附上 stock check_range_team(id) { new victim = -1, Float:end[3], radius = 150, num; while ((victim = engfunc(EngFunc_FindEntityInSphere, victim, end, float(radius))) != 0) { if (!is_user_connected(victim) || !is_user_alive(victim)) continue; if (cs_get_user_team(victim) == cs_get_user_team(id)) num ++; } client_print(id, print_center, "range num [%d]", num); return (num > 12) ? 12 : num; } x0 |
引用 | 編輯
T.o.n..y
2015-04-23 21:47 |
14樓
▲ ▼ |
圖 1. 下面是引用 s8720419 於 2015-04-22 19:06 發表的 : 這樣打似乎跑不出效果? show_hudmessage(id, "目前攻擊力為:%d", (100+(check_range_team(id)*5)))用大大的寫法~~ stock 也附上 stock check_range_team(id) { new victim = -1, Float:end[3], radius = 150, num; while ((victim = engfunc(EngFunc_FindEntityInSphere, victim, end, float(radius))) != 0) { if (!is_user_connected(victim) || !is_user_alive(victim)) continue; if (cs_get_user_team(victim) == cs_get_user_team(id)) num ++; } client_print(id, print_center, "range num [%d]", num); return (num > 12) ? 12 : num; } x0 |
引用 | 編輯
弒血
2015-04-23 23:20 |
15樓
▲ ▼ |
下面是引用 T.o.n..y 於 2015-04-23 21:47 發表的 : //這個我有改過..用這個就OK了..radius = 150 是自身範圍 stock check_range_team(id) { new victim = -1, Float:end[3], radius = 150, num; pev(id,pev_origin, end); while ((victim = engfunc(EngFunc_FindEntityInSphere, victim, end, float(radius))) != 0) { if (!is_user_connected(victim) || !is_user_alive(victim)) continue; if (cs_get_user_team(victim) == cs_get_user_team(id)) num ++; } //這個地方限制回傳數量.如果大於12人數就設定為12人 如果沒有就返回當前人數 return (num > 12) ? 12 : num; } x0 |
引用 | 編輯
T.o.n..y
2015-04-24 18:09 |
16樓
▲ ▼ |
圖 1. 下面是引用 s8720419 於 2015-04-23 23:20 發表的 : 成功了~~感謝大大~不過我想要那5%士氣中多設定 隊友不包含自己~ 要多加些什麼?煩請大大您解答 x0 |
引用 | 編輯
弒血
2015-04-24 22:04 |
17樓
▲ ▼ |
//這個我有改過..用這個就OK了..radius = 150 是自身範圍,不包含自己
stock check_range_team(id) { new victim = -1, Float:end[3], radius = 150, num; pev(id,pev_origin, end); while ((victim = engfunc(EngFunc_FindEntityInSphere, victim, end, float(radius))) != 0) { if (!is_user_connected(victim) || !is_user_alive(victim) || victim == id) continue; if (cs_get_user_team(victim) == cs_get_user_team(id)) num ++; } //這個地方限制回傳數量.如果大於12人數就設定為12人 如果沒有就返回當前人數 return (num > 12) ? 12 : num; } x0 |