Yougmula
|
分享:
▲
▼
下面是引用 弑血 于 2023-02-19 23:00 发表的 :
首先先用回圈检查玩家距离,在设定多少距离离内的人数
在来使用阵列字串纪录1-10等的能量变化,再来把人数放进对应的能量字串阵列显示出来即可
例如
new human_power[33][10][16] = {"I", "II", "III"} //以此类推 & 33 = 玩家编号顺序 & 10 = 能量顺序 & 16 = 能量字串显示长度
再来把对应的hud显示字串放入对应的顺序即可 human_power[玩家ID][目前周围几人] 我在别的地方找到了别的士气怒气插件,里面的hud效果就符合我说的。但是我看不懂他的写法,我把hud那段代码发出来,你能说一下他的代码是什么意思吗? 【代码】 Show_RageHud(id) { if(!is_user_alive(id)) return new szBar[64] for(new i = 0; i < (floatround(float(g_iRagePercent[id]) / 4.0, floatround_floor)); i++) formatex(szBar, sizeof(szBar), "%s|", szBar) for(new i = 0; i < (25 - (floatround(float(g_iRagePercent[id]) / 4.0, floatround_floor))); i++) formatex(szBar, sizeof(szBar), "%s ", szBar) set_dhudmessage(250, 250 - g_iRagePercent[id] * 2 , 0, -1.0, 0.8, 0, 1.0, 1.0, 0.0, 0.0) show_dhudmessage(id, "[%s]", szBar) } Show_MoraleHud(id) { if(!is_user_alive(id)) return new szNotice[32], iMoarleBar = min(g_iMoraleLevel + g_iMoraleAdd[id] + g_iMoraleNear[id], 13) formatex(szNotice, sizeof(szNotice), "攻击力 : %i%", (g_iMoraleLevel + g_iMoraleAdd[id]) * 10 + 100) if(g_iMoraleNear[id]) format(szNotice, sizeof(szNotice), "%s% + %i%", szNotice, g_iMoraleNear[id] * 10) set_hudmessage(COLOR_MORALE[iMoarleBar][0], COLOR_MORALE[iMoarleBar][1], COLOR_MORALE[iMoarleBar][2], -1.0, 0.8 - 0.02, 0, 1.25, 1.25, 0.0, 0.0) ShowSyncHudMsg(id, CreateHudSyncObj(2), szNotice) new szBar[42] for(new i = 0; i < iMoarleBar * 2; i++) formatex(szBar, sizeof(szBar), "%s|", szBar) for(new i = 0; i < (20 - iMoarleBar * 2); i++) formatex(szBar, sizeof(szBar), "%s ", szBar) set_dhudmessage(COLOR_MORALE[iMoarleBar][0], COLOR_MORALE[iMoarleBar][1], COLOR_MORALE[iMoarleBar][2], -1.0, 0.8, 0, 1.0, 1.0, 0.0, 0.0) show_dhudmessage(id, "[%s]", szBar) }
|
|
x0
[2 樓]
From:IANA保留地址 | Posted:2023-02-20 01:44 |
|
|
Yougmula
|
分享:
▲
▼
下面是引用 弑血 于 2023-02-19 23:00 发表的 :
首先先用回圈检查玩家距离,在设定多少距离离内的人数
在来使用阵列字串纪录1-10等的能量变化,再来把人数放进对应的能量字串阵列显示出来即可
例如
new human_power[33][10][16] = {"I", "II", "III"} //以此类推 & 33 = 玩家编号顺序 & 10 = 能量顺序 & 16 = 能量字串显示长度
再来把对应的hud显示字串放入对应的顺序即可 human_power[玩家ID][目前周围几人] 【我把贴上来的代码重新排版了一下】 Show_RageHud(id) ///僵尸怒气HUD代码 { if(!is_user_alive(id)) return new szBar[64] for(new i = 0; i < (floatround(float(g_iRagePercent[id]) / 4.0, floatround_floor)); i++) formatex(szBar, sizeof(szBar), "%s|", szBar) for(new i = 0; i < (25 - (floatround(float(g_iRagePercent[id]) / 4.0, floatround_floor))); i++) formatex(szBar, sizeof(szBar), "%s ", szBar) set_dhudmessage(250, 250 - g_iRagePercent[id] * 2 , 0, -1.0, 0.8, 0, 1.0, 1.0, 0.0, 0.0) show_dhudmessage(id, "[%s]", szBar) } Show_MoraleHud(id) ///人类士气HUD代码 { if(!is_user_alive(id)) return new szNotice[32], iMoarleBar = min(g_iMoraleLevel + g_iMoraleAdd[id] + g_iMoraleNear[id], 13) formatex(szNotice, sizeof(szNotice), "攻击力 : %i%", (g_iMoraleLevel + g_iMoraleAdd[id]) * 10 + 100) if(g_iMoraleNear[id]) format(szNotice, sizeof(szNotice), "%s% + %i%", szNotice, g_iMoraleNear[id] * 10) set_hudmessage(COLOR_MORALE[iMoarleBar][0], COLOR_MORALE[iMoarleBar][1], COLOR_MORALE[iMoarleBar][2], -1.0, 0.8 - 0.02, 0, 1.25, 1.25, 0.0, 0.0) ShowSyncHudMsg(id, CreateHudSyncObj(2), szNotice) new szBar[42] for(new i = 0; i < iMoarleBar * 2; i++) formatex(szBar, sizeof(szBar), "%s|", szBar) for(new i = 0; i < (20 - iMoarleBar * 2); i++) formatex(szBar, sizeof(szBar), "%s ", szBar) set_dhudmessage(COLOR_MORALE[iMoarleBar][0], COLOR_MORALE[iMoarleBar][1], COLOR_MORALE[iMoarleBar][2], -1.0, 0.8, 0, 1.0, 1.0, 0.0, 0.0) show_dhudmessage(id, "[%s]", szBar) }
|
|
x0
[3 樓]
From:IANA保留地址 | Posted:2023-02-20 01:49 |
|
|
弒血
|
分享:
▲
下面是引用 Yougmula 於 2023-02-20 01:49 發表的 :
【我把贴上来的代码重新排版了一下】
....... 雖然都是先研究再改良,不過還是建議自己寫會比較好。只幫解說一次 Show_RageHud(id) ///僵屍怒氣HUD代碼 { if(!is_user_alive(id)) return //是否活著 new szBar[64] //字串空間 for(new i = 0; i < (floatround(float(g_iRagePercent[id]) / 4.0, floatround_floor)); i++) //怒氣運算 formatex(szBar, sizeof(szBar), "%s|", szBar) //怒氣條 for(new i = 0; i < (25 - (floatround(float(g_iRagePercent[id]) / 4.0, floatround_floor))); i++) //怒氣運算 formatex(szBar, sizeof(szBar), "%s ", szBar) //怒氣條 set_dhudmessage(250, 250 - g_iRagePercent[id] * 2 , 0, -1.0, 0.8, 0, 1.0, 1.0, 0.0, 0.0) //怒氣改變顏色 show_dhudmessage(id, "[%s]", szBar) //怒氣條顯示 } Show_MoraleHud(id) ///人類士氣HUD代碼 { if(!is_user_alive(id)) return //是否活著 new szNotice[32], iMoarleBar = min(g_iMoraleLevel + g_iMoraleAdd[id] + g_iMoraleNear[id], 13) //士氣運算+上限設定13 formatex(szNotice, sizeof(szNotice), "攻擊力 : %i%", (g_iMoraleLevel + g_iMoraleAdd[id]) * 10 + 100) //士氣運算 if(g_iMoraleNear[id]) format(szNotice, sizeof(szNotice), "%s% + %i%", szNotice, g_iMoraleNear[id] * 10) //士氣條運算 set_hudmessage(COLOR_MORALE[iMoarleBar][0], COLOR_MORALE[iMoarleBar][1], COLOR_MORALE[iMoarleBar][2], -1.0, 0.8 - 0.02, 0, 1.25, 1.25, 0.0, 0.0) //設定士氣條顏色 ShowSyncHudMsg(id, CreateHudSyncObj(2), szNotice) //顯示士氣條 new szBar[42] // 字串空間 for(new i = 0; i < iMoarleBar * 2; i++) formatex(szBar, sizeof(szBar), "%s|", szBar) //士氣條運算 for(new i = 0; i < (20 - iMoarleBar * 2); i++) formatex(szBar, sizeof(szBar), "%s ", szBar) //士氣條運算 set_dhudmessage(COLOR_MORALE[iMoarleBar][0], COLOR_MORALE[iMoarleBar][1], COLOR_MORALE[iMoarleBar][2], -1.0, 0.8, 0, 1.0, 1.0, 0.0, 0.0) //設定士氣條 show_dhudmessage(id, "[%s]", szBar) //顯示士氣條 } 以上可以改良空間很大,畢竟用太多迴圈會很消耗遊戲內存,久了可能會不穩,基本上迴圈少用點會比較好。
|
|
x0
[5 樓]
From:臺灣中華電信股份有限公司 | Posted:2023-02-20 02:23 |
|
|
|