本帖最后由 潛龍勿用 于 2012-1-30 14:17 编辑
原版的戰鬥中要查看地方狀態不是很方便,中毒和內傷這兩個重要的東東沒有顯示,而且恩屁稀中毒內傷以後也和沒事人一樣,導致毒滿以後還繼續下毒,因此改了這個函數,增加了恩屁稀內傷、中毒、封穴、流血四項的數值,另外整理了一下函數,看起來沒那麼累... 龍人和至尊都有各自的顯示效果,可以無視。diy版直接複製粘貼進去,源碼版直接找到同名函數覆蓋就好了。這個東西寫得很簡單,抛磚引玉吧。附武松靚照一張:
- function WarShowHead(id) --显示战斗人头像
- --申明变量
- id=id or WAR.CurID
- if id<0 then return end
- local pid=WAR.Person[id]["人物编号"];
- local p=JY.Person[pid];
- local h=18;
- local width=160+2*CC.MenuBorderPixel;
- local height=250+2*CC.MenuBorderPixel+4*h;
- local x1,y1,i;
- local headw,headh=lib.PicGetXY(1,p["头像代号"]*2);
- local headx=(160-headw)/2;
- local heady=(100-headh)/2;
- local pcolor,hcolor,color;
- local hp=math.modf(JY.Person[pid]["生命"]*160/JY.Person[pid]["生命最大值"])
- local mp=math.modf(JY.Person[pid]["内力"]*160/JY.Person[pid]["内力最大值"])
- local tp=math.modf(JY.Person[pid]["体力"]*160/100)
- local lq;
- if WAR.LQZ[pid] ~= nil then lq =WAR.LQZ[pid] else lq = 0 end;
- local shengming=JY.Person[WAR.Person[id]["人物编号"]]["生命"];
- local neili=JY.Person[WAR.Person[id]["人物编号"]]["内力"];
- local tili=JY.Person[WAR.Person[id]["人物编号"]]["体力"];
- local neishang=JY.Person[WAR.Person[id]["人物编号"]]["受伤程度"];
- local zhongdu=JY.Person[WAR.Person[id]["人物编号"]]["中毒程度"];
- -------------------------------------------
- if WAR.Person[id]["我方"]==true then--定义敌我方框的位置
- x1=CC.ScreenW-width-10;
- y1=CC.ScreenH-height-10;
- else
- x1=10;
- y1=10;
- end
-
- ------------------------------
- --设置名字与状态点数的颜色
- if p["中毒程度"]==0 then
- pcolor =RGB(252,148,16);
- elseif p["中毒程度"]<50 then
- pcolor=RGB(120,208,88);
- else
- pcolor=RGB(56,136,36);
- end
-
- if p["受伤程度"]<33 then
- hcolor =RGB(244,128,32);
- elseif p["受伤程度"]<66 then
- hcolor=RGB(244,60,37);
- else
- hcolor=RGB(253,32,44);
- end
-
- if p["受伤程度"]<p["中毒程度"] then
- color = pcolor;
- else
- color = hcolor;
- end
- ------------------
- DrawBox(x1,y1,x1+width,y1+height,C_WHITE);--画人物的头像框框
- if pid==0 then --画人物头像
- if GetS(4,5,5,5)<8 then
- lib.PicLoadCache(1,(280+GetS(4,5,5,5))*2,x1+5+headx,y1+5+heady,1);
- else
- lib.PicLoadCache(1,(287+GetS(4,5,5,4))*2,x1+5+headx,y1+5+heady,1);
- end
- else
- lib.PicLoadCache(1,p["头像代号"]*2,x1+5+headx,y1+5+heady,1);
- end
-
- --------------
- x1=x1+5
- y1=y1+5+100;
- MyDrawString(x1,x1+160,y1+5,p["姓名"],color,32);
-
- --
- y1=y1+42
- --------------
- if WAR.Person[id]["我方"]==false then--and JY.WGLVXS==1 then 敌方的物品框框
- DrawBox(x1-5,y1+185,x1+width-5,y1+310,C_WHITE);
- local hl=1;
- for i=1,4 do
- local wp=JY.Person[WAR.Person[id]["人物编号"]]["携带物品"..i]
- local wps=JY.Person[WAR.Person[id]["人物编号"]]["携带物品数量"..i]
- if wp>=0 then
- local wpm=JY.Thing[wp]["名称"]
- DrawString(x1,y1+100+hl*30+60,wpm..wps,C_WHITE,25);
- hl=hl+1;
- end
- end
- end
- -------------------
- --显示状态颜色条
- lib.PicLoadCache(1,275*2,x1,y1,1);
- lib.PicLoadCache(1,275*2,x1,y1+30,1);
- lib.PicLoadCache(1,275*2,x1,y1+60,1);
- lib.PicLoadCache(1,275*2,x1,y1+90,1);
- lib.SetClip(x1,y1,x1+hp,y1+24)
- lib.PicLoadCache(1,274*2,x1,y1,1);
- lib.SetClip(x1,y1+30,x1+mp,y1+54)
- lib.PicLoadCache(1,273*2,x1,y1+30,1);
- lib.SetClip(x1,y1+30,x1+tp,y1+84)
- lib.PicLoadCache(1,276*2,x1,y1+60,1);
- lib.SetClip(x1,y1+30,x1+lq*1.6,y1+114)
- lib.PicLoadCache(1,274*2,x1,y1+90,1);
- lib.SetClip(0,0,0,0)
- -------显示状态文字
- DrawString(x1+10,y1+5,"命",C_WHITE,16);
- DrawString(x1+10,y1+35,"内",C_WHITE,16);
- DrawString(x1+10,y1+65,"体",C_WHITE,16);
- DrawString(x1+10,y1+95,"怒",C_WHITE,16);
- DrawString(x1+10,y1+125,"伤",C_WHITE,16);
- DrawString(x1+10,y1+155,"毒",C_WHITE,16);
- DrawString(x1+80,y1+125,"血",C_WHITE,16);
- DrawString(x1+80,y1+155,"封",C_WHITE,16);
- -------显示状态数字
- DrawString(x1+10+18,y1+5,shengming,C_WHITE,16);
- DrawString(x1+10+18,y1+35,neili,C_WHITE,16);
- DrawString(x1+10+18,y1+65,tili,C_WHITE,16);
- DrawString(x1+10+18,y1+95,lq,C_WHITE,16);
- DrawString(x1+10+20,y1+125,neishang,hcolor,16);
- DrawString(x1+10+20,y1+155,zhongdu,pcolor,16);
- if JY.Status==GAME_WMAP and WAR.FXDS[id]~=nil then
- DrawString(x1+80+20,y1+155,WAR.FXDS[id],C_WHITE,16);
- else
- DrawString(x1+80+20,y1+155,0,C_WHITE,16);
- end
- if JY.Status==GAME_WMAP and WAR.LXZT[id]~=nil then
- DrawString(x1+80+20,y1+125,WAR.LXZT[id],C_RED,16);
- else
- DrawString(x1+80+20,y1+125,0,C_RED,16);
- end
- -------------------------------
-
- end
复制代码
|