關於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