找回密码
 点一下
查看: 6459|回复: 16

[换肤系统]一个很神奇的可以在游戏里更换模型皮肤的系统

[复制链接]
发表于 2009-10-29 20:49:44 | 显示全部楼层 |阅读模式
今天在xgm闲逛时偶然发现这么一个系统
比如,一个模型有好几款颜色的贴图
那么,这个系统可以在玩家游戏时随意更换模型的贴图
当然,前提是你把需要的贴图导进WE里
再怎么说,1个模型可以有好几百K,1个贴图却只要几十K而已
至于''换肤''一词纯属个人瞎掰,不过实际效果也是如此罢了



之所以地图1M是因为导入不必要模型
DUSC v1.0.w3x (1.05 MB, 下载次数: 1206)
发表于 2009-10-29 21:41:25 | 显示全部楼层
直接替换单位不行吗?
回复

使用道具 举报

发表于 2009-10-29 21:51:50 | 显示全部楼层
感觉不是单位……
是个可破坏物?
回复

使用道具 举报

 楼主| 发表于 2009-10-29 22:00:01 | 显示全部楼层
刚找到的,没去研究
感到很神奇而已
另外如果能用到装饰物那么也能用到单位吧
回复

使用道具 举报

发表于 2009-10-29 22:01:16 | 显示全部楼层
这玩意不错呢,动态改变贴图?
回复

使用道具 举报

发表于 2009-10-30 00:08:25 | 显示全部楼层
vj的东西……
原理不知道
回复

使用道具 举报

发表于 2009-10-30 03:30:17 | 显示全部楼层
这个有前途.
回复

使用道具 举报

发表于 2009-10-30 17:42:32 | 显示全部楼层
说实话…………从你转的上个装备栏系统更换风格的原理到这玩意的原理。都是一样的……
山岭巨人——拔树。
这玩意可以改变单位的某些模型或者纹理。
实际上换肤的代码就这么多:
[jass]
globals
   private integer array skins
   private integer abil='A000'
   integer maxskins=0
   integer cur_skin=0
endglobals

function ChangeUnitSkinBX takes unit u,integer skin returns nothing
   local destructable d
  if skins[skin]>0 then
   call UnitAddAbility(u,abil)
   set d=CreateDestructable(skins[skin],GetUnitX(u),GetUnitY(u),0,0,1)
   call IssueTargetOrder(u,"grabtree",d)
   call RemoveDestructable(d)
   set d=null
  endif
endfunction

private function InitSkins takes nothing returns nothing
   set skins[0]='B000' // DEFAULT SKIN
   set skins[1]='B001' // SKIN 1
   set skins[2]='B002' // SKIN 2
   set skins[3]='B003' // SKIN 3
   set skins[4]='B004' // SKIN 4
   set skins[5]='B005' // SKIN 5
   set maxskins=5
endfunction
[/jass]
真正有意义的反而是那些控制按钮和面板…………
LZ好没有眼光的说。
回复

使用道具 举报

发表于 2009-10-30 17:49:46 | 显示全部楼层
按钮貌似是强制按下UI键
判断技能或命令发布的目标……
仔细看点某处会有个技能栏的闪现……
回复

使用道具 举报

发表于 2009-10-30 18:25:40 | 显示全部楼层
顺便发个东西:
[jass]
globals
   unit xx
   unit commander
endglobals

function CreateDummyIllidan takes nothing returns nothing
    set xx=CreateUnit(Player(9),'h000',-456,-390,180)
    set commander=CreateUnit(Player(0),'e000',4060,4060,180)
    call SelectUnit(commander,true)
    call SetUnitFlyHeight(xx,585,0)
    call ChangeUnitSkinBX(xx,0)
endfunction
[/jass]
这地图里的Demo代码。
实在是……
回复

使用道具 举报

 楼主| 发表于 2009-10-30 19:29:14 | 显示全部楼层
引用第7楼血戮魔动冰于2009-10-30 17:42发表的  :
真正有意义的反而是那些控制按钮和面板…………
LZ好没有眼光的说。

我很瞎的,主要是那个控制按钮跟上次的袋子系统一样
是用'总是面向玩家镜头'的模型吧?
所以不会太震精。。
回复

使用道具 举报

发表于 2009-10-30 20:25:30 | 显示全部楼层
其实真的觉得这玩意挺不错的……
回复

使用道具 举报

发表于 2009-10-30 20:54:36 | 显示全部楼层
说白了原理就那一个……
触发还特简单……简单到用“xx”做全局变量名的地步。
回复

使用道具 举报

发表于 2009-10-30 21:10:45 | 显示全部楼层
看了下代码大概理解了原理……
回复

使用道具 举报

发表于 2009-10-30 21:12:23 | 显示全部楼层
顺便说下。
这个换肤需要单位模型支持。
需要纹理配套支持。
最重要的,单位换肤的时候会使用一个拔树技能。
会打断当前命令。
这是比较让人郁闷的。
回复

使用道具 举报

发表于 2009-10-30 23:45:40 | 显示全部楼层
换衣服换皮的时候暂停一下也可以接受啊.
回复

使用道具 举报

发表于 2010-2-23 17:09:48 | 显示全部楼层
呃。。这个演示太花哨了吧。。。对于我这种J盲。。都弄不清哪部分是核心代码
有T的简化版本么?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-12-22 15:22 , Processed in 0.038262 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表