引用 | 编辑
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 |