[进口教程]在文字提示中显示浮点数(GTAModding)
原帖地址 http://www.gtamodding.com/index.php?title=Display_float_in_text在文字提示中显示浮点数原帖作者/ 多位编辑者 @GTAModding 翻译/ kwanz @虚拟世界
未经许可 谢绝转载
当GXT条目中有符号~1~时,我们可以调opcode来显示数字。但它只能显示整型数,会把浮点数转化为整型。下面的代码可以把浮点数转化为带数字text类opcode能支持的小数显示,最多精确到两位。
首先要确保GXT条目至少支持两个数字位。你可以打上如下的条目:
条目名称 值
TEST ~1~.~1~
TEST0 ~1~.0~1~
TESTN -~1~.~1~
TESTN0 -~1~.0~1~
选择一个想要显示的浮点数,用下面的转化代码
//...
0007: 0@ = 90.4 // 显示的浮点数,如90.4
0092: 1@ = float 0@ to_integer// 转化为整型,90
0093: 3@ = integer 1@ to_float// 再转化为浮点型,90.0
0087: 2@ = 0@ // 保存初始值90.4
0063: 2@ -= 3@ // 减去整数部分, 90.4 - 90.0 = 0.4
0013: 2@ *= 100.0 // 乘以一百, 0.4 * 100.0 = 40.0
0092: 4@ = float 2@ to_integer// 转化为整型, 40
0095: make 4@ absolute_integer// 取绝对值
if and
// 若原数在 -1.0 和 0.0 之间
0.0 > 0@
0@ > -1.0
then
if
// 若十分位非零
4@ > 9
then
// 可以使用任意支持两个数字显示的opcode
// 显示数值
02FD: text_2numbers_lowpriority 'TESTN' 1@ 4@ 1000 ms 1
else
// 显示数值
02FD: text_2numbers_lowpriority 'TESTN0' 1@ 4@ 1000 ms 1
end
else
if
// 若十分位非零
4@ > 9
then
// 显示数值
02FD: text_2numbers_lowpriority 'TEST' 1@ 4@ 1000 ms 1
else
// 显示数值
02FD: text_2numbers_lowpriority 'TEST0' 1@ 4@ 1000 ms 1
end
end
//..
如果你要提高显示的精度,需要写上更长的代码,这里就当是抛砖引玉吧。。。
一个opcode最多可显示的数字是6个(0308),但创意是无限的。。。 咳咳,继续支持。。 = =我感觉kami简直就是神速……
支持下
手機看不了代碼…(手動揉臉) 前排支持 不愧是翻譯人肉飯
页:
[1]