Aggiunto modello del proiettile. Iniziato a fixare l'orientamento dello stesso.
parent
c264a5c929
commit
e3a35d7f71
|
@ -127,4 +127,6 @@ arena_lib.on_death("quake", function(arena, p_name, reason)
|
|||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
end)
|
||||
|
|
|
@ -0,0 +1,102 @@
|
|||
function quake.register_bullet(name,def)
|
||||
local bullet = {}
|
||||
bulllet.initial_properties = {
|
||||
name = name,
|
||||
physical = def.physical,
|
||||
visual = def.visual,
|
||||
mesh = def.mesh,
|
||||
visual_size = def.visual_size,
|
||||
tiles = def.tiles,
|
||||
textures = def.textures,
|
||||
collisionbox = def.collisionbox,
|
||||
speed = def.speed,
|
||||
damage = def.damage,
|
||||
explosion_range = def.explosion_range,
|
||||
durata = def.durata,
|
||||
explosion_damage = def.explosion_damage,
|
||||
lastpos = { },
|
||||
def = def,
|
||||
}
|
||||
|
||||
bullet._destroy = function()
|
||||
if (self.initial_properties.def.on_destroy) then
|
||||
self.initial_properties.def.on_destroy(self);
|
||||
end
|
||||
--self.initial_properties.timer = 0
|
||||
--self.initial_properties.user = nil
|
||||
--self.initial_properties.p_name = nil
|
||||
self.object:remove()
|
||||
end
|
||||
bullet.on_activate = function(self, staticdata)
|
||||
if staticdata ~= "" and staticdata ~= nil then
|
||||
self.p_name = staticdata
|
||||
self.user = minetest.get_player_by_name(staticdata)
|
||||
end
|
||||
self.object:set_acceleration({ x=0, y=0, z=0 })
|
||||
end
|
||||
|
||||
bullet.timer = 0
|
||||
bullet.p_name = ""
|
||||
bullet.user = nil
|
||||
|
||||
bullet.check_timer() = function(self, timer)
|
||||
minetest.after(timer)
|
||||
if(self.object) then
|
||||
self:_destroy()
|
||||
return
|
||||
end
|
||||
end
|
||||
bullet.on_step = function(self, dtime)
|
||||
local pos = self.object:get_pos()
|
||||
self.timer = self.object:get_luaentity().initial_properties.timer + dtime
|
||||
minetest.chat_send_all("timer:"..timer)
|
||||
--self.initial_properties.timer = self.initial_properties.timer + dtime
|
||||
local node = minetest.env:get_node(pos)
|
||||
|
||||
if self.timer > (1/(2*self.initial_properties.speed)) and self.timer < self.initial_properties.durata then
|
||||
local objs = minetest.env:get_objects_inside_radius({x=pos.x,y=pos.y-1.475,z=pos.z},0.5)
|
||||
if objs then
|
||||
for k, obj in ipairs(objs) do
|
||||
--check da aggiungere
|
||||
--minetest.chat_send_all("p_name"..self.initial_properties.p_name)
|
||||
if (obj:get_entity_name() ~= self.object:get_entity_name() and obj:is_player()) then
|
||||
quake.shoot(self.initial_properties.p_name, obj, self.initial_properties.damage, false)
|
||||
self:_destroy();
|
||||
return;
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
elseif self.initial_properties.timer >= self.initial_properties.durata then
|
||||
self:_destroy()
|
||||
return
|
||||
else
|
||||
local objs = minetest.env:get_objects_inside_radius({x=pos.x,y=pos.y-1.475,z=pos.z},0.5)
|
||||
if objs then
|
||||
for k, obj in ipairs(objs) do
|
||||
--check da aggiungere
|
||||
--minetest.chat_send_all("p_name"..self.initial_properties.p_name)
|
||||
if (obj:get_entity_name() ~= self.object:get_entity_name() and obj:get_player_name() ~= self.initial_properties.p_name and obj:is_player()) then
|
||||
quake.shoot(self.initial_properties.p_name, obj, self.initial_properties.damage, false)
|
||||
self:_destroy();
|
||||
return;
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if (self.initial_properties.lastpos.x ~= nil) then
|
||||
if (node.name ~= "air") then
|
||||
self:_destroy();
|
||||
return;
|
||||
end
|
||||
end
|
||||
|
||||
self.initial_properties.lastpos = { x=pos.x, y=pos.y, z=pos.z };
|
||||
|
||||
|
||||
end
|
||||
|
||||
minetest.register_entity(name, bullet)
|
||||
|
||||
end
|
|
@ -12,7 +12,6 @@ function quake.register_bullet(name, def)
|
|||
visual = def.visual,
|
||||
visual_size = def.visual_size,
|
||||
mesh = def.mesh,
|
||||
tiles = def.tiles,
|
||||
textures = def.textures,
|
||||
collisionbox = def.collisionbox,
|
||||
speed = def.speed,
|
||||
|
|
|
@ -1,10 +1,16 @@
|
|||
quake.register_bullet("quake:rocket",{
|
||||
physical = false,
|
||||
visual = "mesh",
|
||||
visual_size = {x=1, y=1, z=1},
|
||||
mesh = "railgun.obj",
|
||||
tiles = {"quake_railgun.png"},
|
||||
textures = "quake_railgun.png",
|
||||
visual_size = {x=1, y=1},
|
||||
mesh = "rocket.obj",
|
||||
textures = {
|
||||
"quake_bullet_rocket.png",
|
||||
"quake_bullet_rocket.png",
|
||||
"quake_bullet_rocket.png",
|
||||
"quake_bullet_rocket.png",
|
||||
"quake_bullet_rocket.png",
|
||||
"quake_bullet_rocket.png",
|
||||
},
|
||||
collisionbox = {0,0,0,0,0,0},
|
||||
speed = 18,
|
||||
damage = 10,
|
||||
|
|
|
@ -118,6 +118,7 @@ function shoot_bullet(user, pointed_thing, bullet_name, pos_head, dir)
|
|||
z=(dir.z * speed),
|
||||
})
|
||||
bullet:set_acceleration({ x=dir.x, y=dir.y, z=dir.z })
|
||||
bullet:set_rotation({ x=0, y=dir.y, z=dir.z })
|
||||
--bullet:setacceleration({ x=0, y=0, z=0 })
|
||||
|
||||
end
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
# Blender MTL File: 'None'
|
||||
# Material Count: 1
|
||||
|
||||
newmtl Material
|
||||
Ns 323.999994
|
||||
Ka 1.000000 1.000000 1.000000
|
||||
Kd 0.800000 0.800000 0.800000
|
||||
Ks 0.500000 0.500000 0.500000
|
||||
Ke 0.000000 0.000000 0.000000
|
||||
Ni 1.450000
|
||||
d 1.000000
|
||||
illum 2
|
|
@ -0,0 +1,54 @@
|
|||
# Blender v2.82 (sub 7) OBJ File: ''
|
||||
# www.blender.org
|
||||
mtllib rocket.mtl
|
||||
o Cube
|
||||
v 1.000000 1.000000 -1.000000
|
||||
v 1.000000 -1.000000 -1.000000
|
||||
v 1.000000 1.000000 1.000000
|
||||
v 1.000000 -1.000000 1.000000
|
||||
v -1.000000 1.000000 -1.000000
|
||||
v -1.000000 -1.000000 -1.000000
|
||||
v -1.000000 1.000000 1.000000
|
||||
v -1.000000 -1.000000 1.000000
|
||||
v -1.000000 -1.000000 4.633310
|
||||
v -1.000000 1.000000 4.633310
|
||||
v 1.000000 1.000000 4.633310
|
||||
v 1.000000 -1.000000 4.633310
|
||||
vt 0.625000 0.500000
|
||||
vt 0.875000 0.500000
|
||||
vt 0.875000 0.750000
|
||||
vt 0.625000 0.750000
|
||||
vt 0.625000 0.000000
|
||||
vt 0.375000 0.000000
|
||||
vt 0.375000 0.000000
|
||||
vt 0.625000 0.000000
|
||||
vt 0.625000 0.250000
|
||||
vt 0.375000 0.250000
|
||||
vt 0.125000 0.500000
|
||||
vt 0.375000 0.500000
|
||||
vt 0.375000 0.750000
|
||||
vt 0.125000 0.750000
|
||||
vt 0.375000 0.750000
|
||||
vt 0.625000 0.750000
|
||||
vt 0.625000 1.000000
|
||||
vt 0.375000 1.000000
|
||||
vt 0.125000 0.750000
|
||||
vt 0.875000 0.750000
|
||||
vn 0.0000 1.0000 0.0000
|
||||
vn -1.0000 0.0000 0.0000
|
||||
vn 0.0000 -1.0000 0.0000
|
||||
vn 1.0000 0.0000 0.0000
|
||||
vn 0.0000 0.0000 -1.0000
|
||||
vn 0.0000 0.0000 1.0000
|
||||
usemtl Material
|
||||
s off
|
||||
f 1/1/1 5/2/1 7/3/1 3/4/1
|
||||
f 7/5/2 8/6/2 9/7/2 10/8/2
|
||||
f 8/6/2 7/5/2 5/9/2 6/10/2
|
||||
f 6/11/3 2/12/3 4/13/3 8/14/3
|
||||
f 2/12/4 1/1/4 3/4/4 4/13/4
|
||||
f 6/10/5 5/9/5 1/1/5 2/12/5
|
||||
f 12/15/6 11/16/6 10/17/6 9/18/6
|
||||
f 8/14/3 4/13/3 12/15/3 9/19/3
|
||||
f 3/4/1 7/3/1 10/20/1 11/16/1
|
||||
f 4/13/4 3/4/4 11/16/4 12/15/4
|
Binary file not shown.
After Width: | Height: | Size: 262 B |
Loading…
Reference in New Issue