Продолжаем обучение. Урок второй. Как добавить кровь на экран?
LScripts/Main/Game.lua
Game = { -- Splatdf=91, _Splats={}, _Splattimeouts={}, _Splatn=16, _Splatdist=5, -- } --============== function Game:Clear(doNotReloadTemplates) -- -- Hud:Loadsplats() collectgarbage(0) end
LScripts/HUD/HUD.lua
Hud = { -- -- _splat ={}, -- } --==================== function Hud:Loadsplats() for i = 1,6 do self._splat[i]={} self._splat[i][1] = MATERIAL.Create("HUD/splat/splat_red_0"..i, TextureFlags.NoLOD + TextureFlags.NoMipMaps) for y = 1,3 do self._splat[i][y+1]=MATERIAL.Create("HUD/splat/splat_red_0"..i.."_0"..y, TextureFlags.NoLOD + TextureFlags.NoMipMaps) end self._splat[i+6]={} self._splat[i+6][1] = MATERIAL.Create("HUD/splat/splat_purple_0"..i, TextureFlags.NoLOD + TextureFlags.NoMipMaps) for y = 1,3 do self._splat[i+6][y+1]=MATERIAL.Create("HUD/splat/splat_purple_0"..i.."_0"..y, TextureFlags.NoLOD + TextureFlags.NoMipMaps) end self._splat[i+12]={} self._splat[i+12][1] = MATERIAL.Create("HUD/splat/splat_green_0"..i, TextureFlags.NoLOD + TextureFlags.NoMipMaps) for y = 1,3 do self._splat[i+12][y+1]=MATERIAL.Create("HUD/splat/splat_green_0"..i.."_0"..y, TextureFlags.NoLOD + TextureFlags.NoMipMaps) end end
for r=1, Game._Splatn do Game._Splattimeouts [r]= 0 end end --===================== function Hud:LoadData()
self:Quad(self._matHealth,Cfg.HUDSize*17*w/1024,((768+Cfg.HUDSize*14)-Cfg.HUDSize*sizey)*h/768,Cfg.HUDSize,false) ----------------------------------------------------- local y=Game._Splatn for i=1, y do if Game._Splattimeouts [i]> 0 and Game._Splats [i]then Game._Splattimeouts [i]= Game._Splattimeouts [i]- 1 if Game._Splattimeouts [i]> 3*Game.Splatdf/4 then self:QuadTrans(self._splat[Game._Splats[i].Z][1],Game._Splats[i].X,Game._Splats[i].Y,Cfg.HUDSize,false) else if Game._Splattimeouts [i]> Game.Splatdf/2 then self:QuadTrans(self._splat[Game._Splats[i].Z][2],Game._Splats[i].X,Game._Splats[i].Y,Cfg.HUDSize,false) else if Game._Splattimeouts [i]> Game.Splatdf/4 then self:QuadTrans(self._splat[Game._Splats[i].Z][3],Game._Splats[i].X,Game._Splats[i].Y,Cfg.HUDSize,false) else self:QuadTrans(self._splat[Game._Splats[i].Z][4],Game._Splats[i].X,Game._Splats[i].Y,Cfg.HUDSize,false) end end end
else Game._Splats [i]= Vector:New(math.random(w)-20,math.random(h)-20,1) end end ----------------------------------------------------- if Player then if not Player._died and not Hud.NoCrosshair then self:QuadRGBA(self._matCrosshair,w/2,h/2,self.CrossScale,true,Cfg.CrosshairR,Cfg.CrosshairG,Cfg.CrosshairB,Cfg.CrosshairTrans/100.0*255) end -- end
LScripts/Classes/CActor.lua
function CActor:CreateGib(newModel) -- local gib = MDL.MakeGib(self._Entity, ECollisionGroups.RagdollNonColliding, newModel) if gib then if Player and Dist3D(self.Pos.X,self.Pos.Y,self.Pos.Z,Player.Pos.X,Player.Pos.Y,Player.Pos.Z) < Game._Splatdist then local uu = 0 local y=Game._Splatn for l=1,y do if Game._Splattimeouts [l]< 1 and uu < 5 then local mod = 0 if self._GreenBlood then mod = 12 end if self._PurpleBlood then mod = 6 end
uu=uu+1 Game._Splattimeouts [l]= Game.Splatdf Game._Splats[l].Z = mod + math.random(6) end end end
кстати, на счёт крови - как сделать чтобы кровь постепенно с экрана исчезала? а то у меня резко, а как исправить не знаю Rise of Evil - моя группа вконтакте
Сохранить все 4 изображения для одного сплата крови с разным выделением или интенсивностью. Я сам никогда не брался за это, но думаю, что так. В любом случае только тест сможет точно сказать. Изучи оригинальные текстуры крови, как они сделаны.
Havcom, вроде на сколько я помню в оригинальных текстурах идёт изменение альфа канала, а я не пойму как так сделать Rise of Evil - моя группа вконтакте
Народ,помните жуков(или пауков,а вообще они на хэдкрабов похожи),которые появляются,когда умирает локи или палач разрубает труп...Так вот,можно создать нового монстра,живущего своей жизнью,на основе модели этого хедкраба?
Так вот,можно создать нового монстра,живущего своей жизнью,на основе модели этого хедкраба?
Ну вообще-то для моба основным является скорее его интеллект, а не моделька, так что берем скрипт какого-нибудь моба и меняем ему модельку на нужную. Как-то так. Конечно могут возникнуть ошибки с анимацией или еще чем-нибудь, но проверить это я сейчас не могу.
Добавлено (24.03.2013, 20:47) --------------------------------------------- Ну и понятно, что нужно найти скрипт, где ресается "хэдкраб" и ресать вместо него твоего новенького моба.
Ясно. Ну так вы разобрались, как ее организовать? Если да, то не лучше ли будет выложить скрипт сюда, вдруг кому-нибудь понадобится? Я люблю людей... особенно - убивать!^__^