From 754fafbde453088aea7dec149c0d601144107808 Mon Sep 17 00:00:00 2001 From: npx Date: Tue, 4 Apr 2017 00:04:11 +0200 Subject: [PATCH 1/2] Various fixes! --- mobs/mese_dragon.lua | 2 -- nssm_materials.lua | 1 - nssm_weapons.lua | 52 +++++++++++++++++++++++++++----------------- todo.txt | 13 +++++------ 4 files changed, 38 insertions(+), 30 deletions(-) diff --git a/mobs/mese_dragon.lua b/mobs/mese_dragon.lua index 2a429ef..75c37d9 100644 --- a/mobs/mese_dragon.lua +++ b/mobs/mese_dragon.lua @@ -43,8 +43,6 @@ mobs:register_mob("nssm:mese_dragon", { stepheight=3.1, knock_back=0, jump_height=12, - dogshoot_count_max = 9, - arrow = "nssm:roar_of_the_dragon", reach = 25, shoot_interval = 3, shoot_offset = -1, diff --git a/nssm_materials.lua b/nssm_materials.lua index 1936a39..6388ed0 100644 --- a/nssm_materials.lua +++ b/nssm_materials.lua @@ -1251,7 +1251,6 @@ minetest.register_tool("nssm:sword_of_envy", { end end if hp_num ~= nil then - minetest.chat_send_all("hp_num = "..hp_num) local stack = {name="nssm:life_energy", count=hp_num, wear=0, metadata=""} if player_inv:contains_item("main", stack) then --minetest.chat_send_all("trovato!") diff --git a/nssm_weapons.lua b/nssm_weapons.lua index 949a07b..26f7f7c 100644 --- a/nssm_weapons.lua +++ b/nssm_weapons.lua @@ -58,24 +58,21 @@ local function search_on_step2( local vec_min = nil for _,obj in ipairs(objects) do if ((obj:is_player()) or (obj:get_luaentity() and ( - (obj:get_luaentity().name == "mese_dart") or - (obj:get_luaentity().name == "phoenix_dart") or - (obj:get_luaentity().name == "duck_father") or - (obj:get_luaentity().name == "thickwebball") or - (obj:get_luaentity().name == "webball") or - (obj:get_luaentity().name == "super_gas") or - (obj:get_luaentity().name == "lava_arrow") or - (obj:get_luaentity().name == "snow_arrow") or - (obj:get_luaentity().name == "spine") or - (obj:get_luaentity().name == "mese_dart") or - (obj:get_luaentity().name == "morarrow") or - (obj:get_luaentity().name == "lava_block_bomb") or - (obj:get_luaentity().name == "crystal_gas_arrow") or - (obj:get_luaentity().name == "pumpkid_bomb")) + (obj:get_luaentity().name == "nssm:mese_dart") or + (obj:get_luaentity().name == "nssm:phoenix_dart") or + (obj:get_luaentity().name == "nssm:duck_father") or + (obj:get_luaentity().name == "nssm:thickwebball") or + (obj:get_luaentity().name == "nssm:webball") or + (obj:get_luaentity().name == "nssm:super_gas") or + (obj:get_luaentity().name == "nssm:lava_arrow") or + (obj:get_luaentity().name == "nssm:snow_arrow") or + (obj:get_luaentity().name == "nssm:spine") or + (obj:get_luaentity().name == "nssm:mese_dart") or + (obj:get_luaentity().name == "nssm:morarrow") or + (obj:get_luaentity().name == "nssm:lava_block_bomb") or + (obj:get_luaentity().name == "nssm:crystal_gas_arrow") or + (obj:get_luaentity().name == "nssm:pumpkid_bomb")) )) then - if (obj:get_luaentity()) then - minetest.chat_send_all(""..obj:get_luaentity().name) - end elseif (obj:get_luaentity() and obj:get_luaentity().name ~= "__builtin:item" and obj:get_luaentity().name ~= self.object:get_luaentity().name) then obj_p = obj:getpos() local vec = {x=obj_p.x-pos.x, y=obj_p.y-pos.y, z=obj_p.z-pos.z} @@ -119,7 +116,7 @@ local function search_on_step2( elseif min_dist<=1 and self.move==1 then obj_min:punch(obj_min, 1.0, { full_punch_interval = 1.0, - damage_groups = {fleshy = 20}, + damage_groups = {fleshy = 30}, }, nil) hit(pos,self) else @@ -161,7 +158,22 @@ local function search_on_step( local obj_p = nil local vec_min = nil for _,obj in ipairs(objects) do - if (obj:is_player()) then + if ((obj:is_player()) or (obj:get_luaentity() and ( + (obj:get_luaentity().name == "nssm:mese_dart") or + (obj:get_luaentity().name == "nssm:phoenix_dart") or + (obj:get_luaentity().name == "nssm:duck_father") or + (obj:get_luaentity().name == "nssm:thickwebball") or + (obj:get_luaentity().name == "nssm:webball") or + (obj:get_luaentity().name == "nssm:super_gas") or + (obj:get_luaentity().name == "nssm:lava_arrow") or + (obj:get_luaentity().name == "nssm:snow_arrow") or + (obj:get_luaentity().name == "nssm:spine") or + (obj:get_luaentity().name == "nssm:mese_dart") or + (obj:get_luaentity().name == "nssm:morarrow") or + (obj:get_luaentity().name == "nssm:lava_block_bomb") or + (obj:get_luaentity().name == "nssm:crystal_gas_arrow") or + (obj:get_luaentity().name == "nssm:pumpkid_bomb")) + )) then elseif (obj:get_luaentity() and obj:get_luaentity().name ~= "__builtin:item" and obj:get_luaentity().name ~= self.object:get_luaentity().name) then obj_p = obj:getpos() local vec = {x=obj_p.x-pos.x, y=obj_p.y-pos.y, z=obj_p.z-pos.z} @@ -203,7 +215,7 @@ local function search_on_step( obj_min:punch(obj_min, 1.0, { full_punch_interval = 1.0, - damage_groups = {fleshy = 30}, + damage_groups = {fleshy = 40}, }, nil) self.hit_node(self, pos, node) diff --git a/todo.txt b/todo.txt index d3e5e51..4b1f5d9 100644 --- a/todo.txt +++ b/todo.txt @@ -1,21 +1,20 @@ Codice: - Mantis problema animazioni (fra) - - I Pumboom droppano gli oggetti quando esplodono! (Controllare se anche quelli di tenplus, Fra) - Attacco tartacacia: ti pianta nel terreno facendo danno o apre una voragine sotto di te. -> Iniziato Fra - - Attacco lanciafango del chog + - Attacco lanciafango del chog ->iniziato - Icelamander lagga malissimo (controllare anche i suoi amici) - - Mese Dragon da rifare (lagga, più piccolo, non attacca) - - Mantis beast + - Mese Dragon da rifare (lagga, più piccolo, non attacca) ->iniziato + - Mantis beast ->fatto? - Ahuizotl (?) - Albino Spider - Salamander (dogshootta lava (un blocco)) ->semifatto - Flust mangia le armature di metallo e non viene danneggiato dalle armi di metallo - Spawn mostri nuovi - - Danno River Lord e Sandonisc + - Danno River Lord e Sandonisc -> fatto? - Silversand Dragon (?) - - togliere le chat (hp_num -> envy sword) + - togliere le chat - ascia esplosiva - + Emmo vorrebbe: -Nuove armature dei nuovi mostri From 8d4795a3e1da0b5ee801ac1f3eff38083434aa02 Mon Sep 17 00:00:00 2001 From: npx Date: Thu, 6 Apr 2017 00:58:38 +0200 Subject: [PATCH 2/2] Working on the new mese dragon attack --- nssm_api.lua | 104 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) diff --git a/nssm_api.lua b/nssm_api.lua index f2207b0..fb84c20 100644 --- a/nssm_api.lua +++ b/nssm_api.lua @@ -937,3 +937,107 @@ function do_charge(self) self.state = "stand" end end + +function node_to_entity(pos) + local nodename = minetest.get_node(pos).name + print("Nodename:"..nodename) + local node=minetest.registered_nodes[minetest.get_node(pos).name] + --minetest.registered_nodes[""]. + local name = "nssm:nte" + minetest.register_craftitem("nssm:cazziemazzi", { + description = "Gravity gun", + image = "bloco_egg.png", + on_place = function(itemstack, placer, pointed_thing) + + end, + }) + --[[ + minetest.register_entity("nssm:bubbolina", { + textures = {"web_ball.png"}, + collisionbox = {-0.1,-0.1,-0.1, 0.1,0.1,0.1}, + physical = true, + on_step = function(self, dtime) + end, + }) + + minetest.register_entity("nssm:ciaociao", { + visual = "cube", + visual_size = {x = 1, y = 1}, + textures = {"web_ball.png"}, + collisionbox = {-0.2,-0.2,-0.2, 0.2,0.2,0.2}, + hp_max = 100, + physical = true, + }) + ]] + --[[ + local tiles={} + local stop=0 + for i, t in pairs(node.tiles) do + tiles[i]=t + stop=stop+1 + if type(tiles[i])~="string" then + if stop==1 then tiles[i]="default_dirt.png" end + stop=stop-1 + break + end + end + ]] + minetest.remove_node(pos) + obj = minetest.add_entity(pos, "nssm:bubbolina") + return obj +end + +function get_tiles(node) + local tiles={} + local stop=0 + if type(node.tiles)=="table" then + for i, t in pairs(node.tiles) do + tiles[i]=t + stop=stop+1 + if type(tiles[i])~="string" then + if stop==1 then tiles[i]="default_dirt.png" end + stop=stop-1 + break + end + end + else + return node.tiles + end + return tiles +end + +minetest.register_craftitem("nssm:gravitygun", { + description = "Gravity gun", + image = "stone_eater_egg.png", + on_place = function(itemstack, placer, pointed_thing) + local pos=minetest.get_pointed_thing_position(pointed_thing, false) + minetest.remove_node(pos) + obj = minetest.add_entity(pos, "nssm:mese_volante") + obj:set_velocity({x=0, y=1, z=0}) + return itemstack + end, +}) + +minetest.register_entity("nssm:mese_volante", { + textures = {"default_mese_block.png","default_mese_block.png", "default_mese_block.png", "default_mese_block.png", "default_mese_block.png", "default_mese_block.png"}, + visual = "cube", + visual_size = {x = 1, y = 1}, + collisionbox = {-0.1,-0.1,-0.1, 0.1,0.1,0.1}, + physical = true, + on_step = function(self, dtime) + self.cube_timer = (self.cube_timer) or os.time() + if (os.time() - self.cube_timer > 3) then + local all_objects = minetest.get_objects_inside_radius({x=0, y=0, z=0}, 50) + local _,obj + for _,obj in ipairs(all_objects) do + if obj:is_player() then + local vec = vector.subtract(obj:getpos(), self.object:getpos()) + vec = vector.normalize(vec) + vec = vector.multiply(vec, 5) + self.object:set_velocity(vec) + break + end + end + end + end, +})