|
发表于 2010-11-6 23:03:39
|
显示全部楼层
个性化的自定义伤害显示系统(可耻的我把它改了)
魔兽版本: 1.24
1.20版本删掉 英雄及野怪复活的触发 和哈希表的变量可测试......
说明:
本演示系统方便移植,具有强大的自定义的个性化设置,满足各种作者的需要
本演示为jass演示,支持多人玩家,设置简单易行,即使你不回jass依旧可以畅通无阻的实用本系统
伤害显示系统放在自定义脚本......
个性化设置内容包括:
受到伤害文字颜色,为伤害来源的玩家颜色,
同时看不到敌人对敌人 或友军对敌人 非本玩家单位造成或受到的伤害值
造成伤害的漂浮文字: 漂浮速度, 漂浮角度范围, 存在时间以及淡化时间可自由调整
[jass] call CreateTextTagUnit(I2S(R2I(GetEventDamage())),GetTriggerUnit(),GetOwningPlayer(GetEventDamageSource()),12,255,180,60,150,1,1) [/jass]
前面3个分别是 伤害值,触发单位,伤害来源的玩家【I2S(R2I(GetEventDamage())),GetTriggerUnit(),GetOwningPlayer(GetEventDamageSource())】
12为字体大小可调整 可修改
255为文字透明度 0-255 0为不可见 可修改
180为文字移动速率 可修改
60和150 为文字漂浮方向(角度)90为正北 60-150取随机值 可修改
最后俩个1 分别是生命周期和消逝时间 可修改
PS: 本图唯一哈希表变量是为复活单位刷怪而创建......
同时修正 无法召唤,不会腐化 类型单位无法被刷怪创建的问题..........
[jass]
function SetTextTag takes texttag tt, integer i, integer tra returns nothing
if i==0 then
call SetTextTagColor(tt,255,3,3,tra)
elseif i==1 then
call SetTextTagColor(tt,0,66,255,tra)
elseif i==2 then
call SetTextTagColor(tt,48,130,185,tra)
elseif i==3 then
call SetTextTagColor(tt,50,0,129,tra)
elseif i==4 then
call SetTextTagColor(tt,255,252,1,tra)
elseif i==5 then
call SetTextTagColor(tt,255,50,0,tra)
elseif i==6 then
call SetTextTagColor(tt,32,192,0,tra)
elseif i==7 then
call SetTextTagColor(tt,220,50,50,tra)
elseif i==8 then
call SetTextTagColor(tt,50,50,50,tra)
elseif i==9 then
call SetTextTagColor(tt,75,150,190,tra)
elseif i==10 then
call SetTextTagColor(tt,16,60,18,tra)
elseif i==11 then
call SetTextTagColor(tt,68,42,4,tra)
elseif i==12 then
call SetTextTagColor(tt,0,0,0,tra)
endif
endfunction
function CreateTextTagUnit takes string s,unit u,player p1,real size,integer tra,real x,real smin,real smax,real Time,real Fade returns nothing
local texttag tt = CreateTextTag()
local player p=GetOwningPlayer(u)
call SetTextTagText(tt, s, size * 0.023 / 10)
call SetTextTagPosUnit(tt, u, 0)
call SetTextTag(tt,GetPlayerId(p1),tra)
call SetTextTagPermanent(tt, false)
call SetTextTagVelocityBJ(tt, x, GetRandomReal(smin,smax))
call SetTextTagLifespan(tt, Time)
call SetTextTagFadepoint(tt, Fade)
if GetLocalPlayer()==p or GetLocalPlayer()==p1 then
call SetTextTagVisibility(tt, true)
else
call SetTextTagVisibility(tt,false)
endif
set tt=null
set p=null
endfunction
[/jass]
我太卑鄙太无耻了竟然干这样的事情...... |
|