惨白 发表于 2016-8-30 23:18:48

怎么让怪死亡后在他最开始的位置刷新一个?

有些怪不是会被拉到别的地方杀死么 怎么记录他的最开始的点 让他死亡后一段时间刷新 就好像war3自带的雷克萨战役里面一样?

asd8645123123 发表于 2016-8-31 15:28:00

搜索 野怪刷新

基本方法是在野怪死亡后记录创建它在开始的点

或者每分钟判断野怪死亡 来刷新野怪

天逸岁月 发表于 2016-9-9 18:06:03

在他开始的点创造个他如果要循环就加个计时器。 计时器用单次。      

elik720 发表于 2016-9-19 16:55:25

这个简单    你的需求 我以前也思考过   

刷怪出来的时候    用哈希表 在单位下 绑定位置   这样 这个怪死了 后   就可以获取原先的点 无论他被拉到了 多少远死后 还是刷新在 一开始刷出来的点上

o拼了命去爱你o 发表于 2016-10-10 20:04:27

本帖最后由 o拼了命去爱你o 于 2016-10-11 07:27 编辑

//让指定单位在死亡后N秒在注册时的地点复活并保持面向角度。
//call Wolf_FuHuoEvet(unit,real) 单位和复活时间注册后该单位死亡后会在注册的这个地点复活
//需要在调用函数之前声明一个哈希表udg_HT
function FuHhuoAction2 takes nothing returns nothing

         local timer t = GetExpiredTimer()
         local unit u = LoadUnitHandle(udg_HT,GetHandleId(t),StringHash("fuhuounit"))
         local real x = LoadReal(udg_HT,GetHandleId(u),StringHash("fuhuox"))
         local real y = LoadReal(udg_HT,GetHandleId(u),StringHash("fuhuoy"))
         local real angle = LoadReal(udg_HT,GetHandleId(u),StringHash("fuhuof"))



          call CreateUnit( GetOwningPlayer(u), GetUnitTypeId(u), x, y, angle )

          //call BJDebugMsg("已经复活!")

          call FlushChildHashtable( udg_HT, GetHandleId(u) )
          call FlushChildHashtable( udg_HT, GetHandleId(t) )//清空哈希表主索引

          call DestroyTimer(t)//删除计时器

          set t = null
          set u = null


endfunction

function FuHuoAction1 takes nothing returns nothing
         local timer t = CreateTimer()

         call SaveUnitHandle(udg_HT,GetHandleId(t),StringHash("fuhuounit"),GetTriggerUnit())
         call TimerStart(t,LoadReal(udg_HT,GetHandleId(GetTriggerUnit()),StringHash("fuhuotime")),false,function FuHhuoAction2)

         //call BJDebugMsg("等待复活!")
         set t = null
         call DestroyTrigger( GetTriggeringTrigger() )//销毁触发器                     
      endfunction
function Wolf_FuHuoEvet takes unit u1,real r1 returns nothing

   local trigger fuhuo = CreateTrigger()

   local real x = GetUnitX(u1)
   local real y = GetUnitY(u1)
   local real angle = GetUnitFacing(u1)
   call SaveReal(udg_HT,GetHandleId(u1),StringHash("fuhuotime"),r1)
   call SaveReal(udg_HT,GetHandleId(u1),StringHash("fuhuox"),x)
   call SaveReal(udg_HT,GetHandleId(u1),StringHash("fuhuoy"),y)
   call SaveReal(udg_HT,GetHandleId(u1),StringHash("fuhuof"),angle)

   call TriggerRegisterUnitEvent( fuhuo, u1, EVENT_UNIT_DEATH )

   call TriggerAddAction(fuhuo, function FuHuoAction1)

   //call BJDebugMsg("注册单位死亡事件!")
   set fuhuo = null

endfunction
//end 复活系统---------------------

惨白 发表于 2017-5-22 22:09:51

o拼了命去爱你o 发表于 2016-10-10 20:04
//让指定单位在死亡后N秒在注册时的地点复活并保持面向角度。
//call Wolf_FuHuoEvet(unit,real) 单位和复 ...

这个是jass?复制上去就行?
页: [1]
查看完整版本: 怎么让怪死亡后在他最开始的位置刷新一个?