关于CSQ新士气的写法?(已解决)

Home Home
引用 | 编辑 T.o.n..y
2015-04-11 12:37
楼主
推文 x0
如题~~


这个CSQ士气~ 是依照一个特定的范围内,
每一个同样阵营(人类),给予5%士气?


小的想请问,这种要如何写?


小的不知怎下手...


感谢各位数位大大表情

献花 x0
引用 | 编辑 弑血
2015-04-12 01:04
1楼
  
下面是引用 T.o.n..y 于 2015-04-11 12:37 发表的 关于CSQ新士气的写法?: 到引言文
如题~~


这个CSQ士气~ 是依照一个特定的范围内,
每一个同样阵营(人类),给予5%士气?


小的想请问,这种要如何写?


小的不知怎下手...


感谢各位数位大大表情



给你个建议~

以自身为范围,收寻同队人数做纪录

献花 x0
引用 | 编辑 T.o.n..y
2015-04-14 18:26
2楼
  
下面是引用 s8720419 于 2015-04-12 01:04 发表的 : 到引言文




给你个建议~

以自身为范围,收寻同队人数做纪录



不太了解= = ...


可以列出来吗? 做纪录? 是指?表情

献花 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 发表的 : 到引言文


下面我帮你写了一个 回传范围同队的数据 ,剩下的应该知道了吧表情


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;
}


那请问一下~ 像是击杀的部分是放在fw_killed 这个部分
那么这stock是要放在哪判断?是要放在提升的地方还是....表情

献花 x0
引用 | 编辑 弑血
2015-04-20 20:35
5楼
  
下面是引用 T.o.n..y 于 2015-04-20 17:57 发表的 : 到引言文



那请问一下~ 像是击杀的部分是放在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-20 22:33
7楼
  
下面是引用 T.o.n..y 于 2015-04-20 21:50 发表的 : 到引言文




public fw_takedamage(victim, inflictor, attacker, Float:damage, damage_type)
.......



5% 应该就是等于0.05的伤害,以此类推60% 等于 0.6%伤害

伤害 限制 回传人数 每个人数 X0.05倍 超过12人就不累加 

献花 x0
引用 | 编辑 弑血
2015-04-20 22:34
8楼
  
下面是引用 s8720419 于 2015-04-20 22:33 发表的 : 到引言文




5% 应该就是等于0.05的伤害,以此类推60% 等于 0.6%伤害

伤害 限制 回传人数 每个人数 X0.05倍 超过12人就不累加 



话说 这个好像是数学逻辑概念表情

献花 x0
引用 | 编辑 T.o.n..y
2015-04-21 15:41
9楼
  
下面是引用 s8720419 于 2015-04-20 22:34 发表的 : 到引言文




话说 这个好像是数学逻辑概念表情








= =抱歉 数学不太好-_-


不过句法是要怎么写?


话说我写法对吗?


所以是这样?


Damage = 当前士气 * 0.05


HamSetParamFloat(4, Damage)


这样对吗?


手机排版有点乱~抱歉

献花 x0
引用 | 编辑 弑血
2015-04-21 18:40
10楼
  
下面是引用 T.o.n..y 于 2015-04-21 15:41 发表的 : 到引言文









= =抱歉 数学不太好-_-


不过句法是要怎么写?


话说我写法对吗?


所以是这样?


Damage = 当前士气 * 0.05


HamSetParamFloat(4, Damage)


这样对吗?


手机排版有点乱~抱歉


//把原先的伤害 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 发表的 : 到引言文
那如果要显现在人类士气进度调上呢?

例如有一人的时候+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")
     }
========================================

请问大大您呢~ 表情



// 我不晓得它的效果是啥..先放着
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 发表的 : 到引言文




// 我不晓得它的效果是啥..先放着
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)))




这样打似乎跑不出效果?


附一张图






                  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 发表的 : 到引言文

附一张图



// 我不晓得它的效果是啥..先放着
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)))




这样打似乎跑不出效果?







                  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 发表的 : 到引言文




//这个我有改过..用这个就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;
}



成功了~~感谢大大~不过我想要那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
引用 | 编辑 T.o.n..y
2015-04-25 20:09
18楼
  
下面是引用 s8720419 于 2015-04-24 22:04 发表的 : 到引言文
//这个我有改过..用这个就OK了..radius = 150 是自身范围,不包含自己
stock check_range_team(id)
{
new victim = -1, Float:end[3], radius = 150, num;
pev(id,pev_origin, end);
.......



成功了~~感谢您~~


给予您500雅~已是酬劳

献花 x0