Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- биндер болтов
- drop_bolt={}
- local spawn_time=0
- function init(obj)
- local bag = BBolt(obj)
- obj:bind_object(bag)
- end
- class "BBolt" (object_binder)
- function BBolt:__init(obj) super(obj)
- self.object=obj
- end
- function BBolt:reload(section)
- object_binder.reload(self, section)
- end
- function BBolt:reinit()
- object_binder.reinit(self)
- end
- function BBolt:update(delta)
- object_binder.update(self, delta)
- end
- function OnSpawnFBolt(arg, iId, gObj)
- local parent=alife():object(iId).parent_id or 65535
- if parent==65535 then
- local h = hit()
- h.draftsman = db.actor
- h.type = hit.strike
- h.direction = vector():set(1,0,0)
- h.power = 1
- h.impulse = 1
- gObj:hit(h)
- end
- end
- function BBolt:net_spawn(data)
- if spawn_time<time_global() and self.object:position():distance_to(db.actor:position())<2.5 then spawn_time=time_global()+50 table.insert( bolt_mod.new_bolt_id, self.object:id() ) else self.object:bind_object(nil) end
- return object_binder.net_spawn(self, data)
- end
- function BBolt:net_destroy()
- --dbg.log("биндер болт---нет дестрой")
- if drop_bolt[self.object:id()] then
- local sobj=alife():create("fake_bolt", self.object:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id())
- level.client_spawn_manager():add(sobj.id, 0, OnSpawnFBolt, 0)
- drop_bolt[self.object:id()]=nil
- end
- object_binder.net_destroy(self)
- end
- function BBolt:net_save_relevant()
- return true
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement