镜像自地址
				https://codeberg.org/tenplus1/mobs_monster.git
				已同步 2025-10-30 23:25:37 +01:00 
			
		
		
		
	update spiders mob, added crystal spider option when ethereal active
这个提交包含在:
		
							
								
								
									
										1
									
								
								init.lua
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								init.lua
									
									
									
									
									
								
							| @@ -27,7 +27,6 @@ dofile(path .. "/tree_monster.lua") | ||||
| dofile(path .. "/lava_flan.lua") -- Zeg9 | ||||
| dofile(path .. "/mese_monster.lua") | ||||
| dofile(path .. "/spider.lua") -- AspireMint | ||||
| dofile(path .. "/spider2.lua") | ||||
|  | ||||
| dofile(path .. "/lucky_block.lua") | ||||
|  | ||||
|   | ||||
							
								
								
									
										6103
									
								
								models/mobs_spider.x
									
									
									
									
									
								
							
							
						
						
									
										6103
									
								
								models/mobs_spider.x
									
									
									
									
									
								
							
										
											
												文件差异内容过多而无法显示
												加载差异
											
										
									
								
							| @@ -25,13 +25,9 @@ Sand Monster | ||||
|  | ||||
| - The hot deserts are home to these guys who spawn at any time of the day to attack players. They drop 3-5 desert sand when killed. | ||||
|  | ||||
| Spider | ||||
| Spiders | ||||
|  | ||||
| - Found in dark holes inside desertstone (crystal biomes in ethereal), spiders wait for prey to amble past and strike. They are mostly docile during the day though unless hit. Will drop string when killed. | ||||
|  | ||||
| New Spiders | ||||
|  | ||||
| - Snowy spiders are found on higher cold areas, Tarantula's in higher jungle, Cave spider below -20 and Mese spider near areas containing the ore. | ||||
| - Snowy spiders are found on higher cold areas, Tarantula's in higher jungle, Cave spider below -20 and Mese spider near areas containing the ore and Crystal spiders only in Ethereal's crystal biomes.  Some are docile during the daytime and will drop string when killed. | ||||
|  | ||||
| Stone Monster | ||||
|  | ||||
|   | ||||
							
								
								
									
										111
									
								
								spider.lua
									
									
									
									
									
								
							
							
						
						
									
										111
									
								
								spider.lua
									
									
									
									
									
								
							| @@ -2,26 +2,30 @@ | ||||
| local S = mobs.intllib | ||||
|  | ||||
|  | ||||
| -- Spider by AspireMint (fishyWET (CC-BY-SA 3.0 license for texture) | ||||
| -- Spider by AspireMint (CC-BY-SA 3.0 license) | ||||
|  | ||||
| mobs:register_mob("mobs_monster:spider", { | ||||
| 	docile_by_day = true, | ||||
| 	--docile_by_day = true, | ||||
| 	group_attack = true, | ||||
| 	type = "monster", | ||||
| 	passive = false, | ||||
| 	attack_type = "dogfight", | ||||
| 	reach = 2, | ||||
| 	damage = 3, | ||||
| 	hp_min = 20, | ||||
| 	hp_max = 40, | ||||
| 	hp_min = 10, | ||||
| 	hp_max = 30, | ||||
| 	armor = 200, | ||||
| 	collisionbox = {-0.9, -0.01, -0.7, 0.7, 0.6, 0.7}, | ||||
| 	collisionbox = {-0.8, -0.5, -0.8, 0.8, 0, 0.8}, | ||||
| 	visual_size = {x = 1, y = 1}, | ||||
| 	visual = "mesh", | ||||
| 	mesh = "mobs_spider.x", | ||||
| 	mesh = "mobs_spider.b3d", | ||||
| 	textures = { | ||||
| 		{"mobs_spider.png"}, | ||||
| 		{"mobs_spider_mese.png"}, | ||||
| 		{"mobs_spider_orange.png"}, | ||||
| 		{"mobs_spider_snowy.png"}, | ||||
| 		{"mobs_spider_grey.png"}, | ||||
| 		{"mobs_spider_crystal.png"}, | ||||
| 	}, | ||||
| 	visual_size = {x = 7, y = 7}, | ||||
| 	makes_footstep_sound = false, | ||||
| 	sounds = { | ||||
| 		random = "mobs_spider", | ||||
| @@ -33,8 +37,7 @@ mobs:register_mob("mobs_monster:spider", { | ||||
| 	view_range = 15, | ||||
| 	floats = 0, | ||||
| 	drops = { | ||||
| 		{name = "farming:string", chance = 1, min = 1, max = 2}, | ||||
| 		{name = "ethereal:crystal_spike", chance = 15, min = 1, max = 2}, | ||||
| 		{name = "farming:string", chance = 1, min = 1, max = 3}, | ||||
| 	}, | ||||
| 	water_damage = 5, | ||||
| 	lava_damage = 5, | ||||
| @@ -42,42 +45,90 @@ mobs:register_mob("mobs_monster:spider", { | ||||
| 	animation = { | ||||
| 		speed_normal = 15, | ||||
| 		speed_run = 20,--15, | ||||
| 		stand_start = 1, | ||||
| 		stand_end = 1, | ||||
| 		walk_start = 20, | ||||
| 		walk_end = 40, | ||||
| 		run_start = 20, | ||||
| 		run_end = 40, | ||||
| 		punch_start = 50, | ||||
| 		punch_end = 90, | ||||
| 		stand_start = 0, | ||||
| 		stand_end = 0, | ||||
| 		walk_start = 1, | ||||
| 		walk_end = 21, | ||||
| 		run_start = 1, | ||||
| 		run_end = 21, | ||||
| 		punch_start = 25, | ||||
| 		punch_end = 45, | ||||
| 	}, | ||||
| 	-- what kind of spider are we spawning? | ||||
| 	on_spawn = function(self) | ||||
|  | ||||
| 		local pos = self.object:get_pos() ; pos.y = pos.y - 1 | ||||
|  | ||||
| 		-- snowy spider | ||||
| 		if minetest.find_node_near(pos, 1, | ||||
| 				{"default:snow", "default:snowblock", "default:dirt_with_snow"}) then | ||||
| 			self.base_texture = {"mobs_spider_snowy.png"} | ||||
| 			self.object:set_properties({textures = self.base_texture}) | ||||
| 			self.docile_by_day = true | ||||
| 		-- tarantula | ||||
| 		elseif minetest.find_node_near(pos, 1, | ||||
| 				{"default:dirt_with_rainforest_litter", "default:jungletree"}) then | ||||
| 			self.base_texture = {"mobs_spider_orange.png"} | ||||
| 			self.object:set_properties({textures = self.base_texture}) | ||||
| 			self.docile_by_day = true | ||||
| 		-- grey spider | ||||
| 		elseif minetest.find_node_near(pos, 1, | ||||
| 				{"default:stone", "default:gravel"}) then | ||||
| 			self.base_texture = {"mobs_spider_grey.png"} | ||||
| 			self.object:set_properties({textures = self.base_texture}) | ||||
| 		-- mese spider | ||||
| 		elseif minetest.find_node_near(pos, 1, | ||||
| 				{"default:mese", "default:stone_with_mese"}) then | ||||
| 			self.base_texture = {"mobs_spider_mese.png"} | ||||
| 			self.object:set_properties({textures = self.base_texture}) | ||||
| 		elseif minetest.find_node_near(pos, 1, | ||||
| 				{"ethereal:crystal_dirt", "ethereal:crystal_spike"}) then | ||||
| 			self.base_texture = {"mobs_spider_crystal.png"} | ||||
| 			self.object:set_properties({textures = self.base_texture}) | ||||
| 			self.docile_by_day = true | ||||
| 			self.drops = { | ||||
| 				{name = "farming:string", chance = 1, min = 1, max = 2}, | ||||
| 				{name = "ethereal:crystal_spike", chance = 15, min = 1, max = 2}, | ||||
| 			} | ||||
| 		end | ||||
|  | ||||
| 		return true -- run only once, false/nil runs every activation | ||||
| 	end, | ||||
| }) | ||||
|  | ||||
|  | ||||
| local spawn_on = "default:desert_stone" | ||||
|  | ||||
| if minetest.get_modpath("ethereal") then | ||||
| 	spawn_on = "ethereal:crystal_dirt" | ||||
| else | ||||
| 	minetest.register_alias("ethereal:crystal_spike", "default:sandstone") | ||||
| end | ||||
|  | ||||
| -- above ground spawn | ||||
| mobs:spawn({ | ||||
| 	name = "mobs_monster:spider", | ||||
| 	nodes = {spawn_on}, | ||||
| 	nodes = { | ||||
| 		"default:dirt_with_rainforest_litter", "default:snowblock", | ||||
| 		"default:snow", "ethereal:crystal_dirt" | ||||
| 	}, | ||||
| 	min_light = 0, | ||||
| 	max_light = 12, | ||||
| 	max_light = 8, | ||||
| 	chance = 7000, | ||||
| 	active_object_count = 1, | ||||
| 	min_height = -50, | ||||
| 	min_height = 25, | ||||
| 	max_height = 31000, | ||||
| }) | ||||
|  | ||||
| -- below ground spawn | ||||
| mobs:spawn({ | ||||
| 	name = "mobs_monster:spider", | ||||
| 	nodes = {"default:stone_with_mese", "default:mese", "default:stone"}, | ||||
| 	min_light = 0, | ||||
| 	max_light = 7, | ||||
| 	chance = 7000, | ||||
| 	active_object_count = 1, | ||||
| 	min_height = -31000, | ||||
| 	max_height = -40, | ||||
| }) | ||||
|  | ||||
|  | ||||
| mobs:register_egg("mobs_monster:spider", S("Spider"), "mobs_cobweb.png", 1) | ||||
|  | ||||
|  | ||||
| mobs:alias_mob("mobs:spider", "mobs_monster:spider") -- compatibility | ||||
| mobs:alias_mob("mobs_monster:spider2", "mobs_monster:spider") -- compatibility | ||||
|  | ||||
|  | ||||
| -- cobweb | ||||
|   | ||||
							
								
								
									
										115
									
								
								spider2.lua
									
									
									
									
									
								
							
							
						
						
									
										115
									
								
								spider2.lua
									
									
									
									
									
								
							| @@ -1,115 +0,0 @@ | ||||
|  | ||||
| local S = mobs.intllib | ||||
|  | ||||
|  | ||||
| -- Spider by AspireMint (CC-BY-SA 3.0 license) | ||||
|  | ||||
| mobs:register_mob("mobs_monster:spider2", { | ||||
| 	--docile_by_day = true, | ||||
| 	group_attack = true, | ||||
| 	type = "monster", | ||||
| 	passive = false, | ||||
| 	attack_type = "dogfight", | ||||
| 	reach = 2, | ||||
| 	damage = 3, | ||||
| 	hp_min = 10, | ||||
| 	hp_max = 30, | ||||
| 	armor = 200, | ||||
| 	collisionbox = {-0.8, -0.5, -0.8, 0.8, 0, 0.8}, | ||||
| 	visual_size = {x = 1, y = 1}, | ||||
| 	visual = "mesh", | ||||
| 	mesh = "mobs_spider2.b3d", | ||||
| 	textures = { | ||||
| 		{"mobs_spider_mese.png"}, | ||||
| 		{"mobs_spider_orange.png"}, | ||||
| 		{"mobs_spider_snowy.png"}, | ||||
| 		{"mobs_spider_grey.png"}, | ||||
| 	}, | ||||
| 	makes_footstep_sound = false, | ||||
| 	sounds = { | ||||
| 		random = "mobs_spider", | ||||
| 		attack = "mobs_spider", | ||||
| 	}, | ||||
| 	walk_velocity = 1, | ||||
| 	run_velocity = 3, | ||||
| 	jump = true, | ||||
| 	view_range = 15, | ||||
| 	floats = 0, | ||||
| 	drops = { | ||||
| 		{name = "farming:string", chance = 1, min = 1, max = 3}, | ||||
| 	}, | ||||
| 	water_damage = 5, | ||||
| 	lava_damage = 5, | ||||
| 	light_damage = 0, | ||||
| 	animation = { | ||||
| 		speed_normal = 15, | ||||
| 		speed_run = 20,--15, | ||||
| 		stand_start = 0, | ||||
| 		stand_end = 0, | ||||
| 		walk_start = 1, | ||||
| 		walk_end = 21, | ||||
| 		run_start = 1, | ||||
| 		run_end = 21, | ||||
| 		punch_start = 25, | ||||
| 		punch_end = 45, | ||||
| 	}, | ||||
| 	-- what kind of spider are we spawning? | ||||
| 	on_spawn = function(self) | ||||
|  | ||||
| 		local pos = self.object:get_pos() ; pos.y = pos.y - 1 | ||||
|  | ||||
| 		-- snowy spider | ||||
| 		if minetest.find_node_near(pos, 1, | ||||
| 				{"default:snow", "default:snowblock", "default:dirt_with_snow"}) then | ||||
| 			self.base_texture = {"mobs_spider_snowy.png"} | ||||
| 			self.object:set_properties({textures = self.base_texture}) | ||||
| 			self.docile_by_day = true | ||||
| 		-- tarantula | ||||
| 		elseif minetest.find_node_near(pos, 1, | ||||
| 				{"default:dirt_with_rainforest_litter", "default:jungletree"}) then | ||||
| 			self.base_texture = {"mobs_spider_orange.png"} | ||||
| 			self.object:set_properties({textures = self.base_texture}) | ||||
| 			self.docile_by_day = true | ||||
| 		-- grey spider | ||||
| 		elseif minetest.find_node_near(pos, 1, | ||||
| 				{"default:stone", "default:gravel"}) then | ||||
| 			self.base_texture = {"mobs_spider_grey.png"} | ||||
| 			self.object:set_properties({textures = self.base_texture}) | ||||
| 		-- mese spider | ||||
| 		elseif minetest.find_node_near(pos, 1, | ||||
| 				{"default:mese", "default:stone_with_mese"}) then | ||||
| 			self.base_texture = {"mobs_spider_mese.png"} | ||||
| 			self.object:set_properties({textures = self.base_texture}) | ||||
| 		end | ||||
|  | ||||
| 		return true -- run only once, false/nil runs every activation | ||||
| 	end, | ||||
| }) | ||||
|  | ||||
|  | ||||
| -- above ground spawn | ||||
| mobs:spawn({ | ||||
| 	name = "mobs_monster:spider2", | ||||
| 	nodes = {"default:dirt_with_rainforest_litter", "default:snowblock", "default:snow"}, | ||||
| 	min_light = 0, | ||||
| 	max_light = 8, | ||||
| 	chance = 7000, | ||||
| 	active_object_count = 1, | ||||
| 	min_height = 25, | ||||
| 	max_height = 31000, | ||||
| }) | ||||
|  | ||||
| -- below ground spawn | ||||
| mobs:spawn({ | ||||
| 	name = "mobs_monster:spider2", | ||||
| 	nodes = {"default:stone_with_mese", "default:mese", "default:stone"}, | ||||
| 	min_light = 0, | ||||
| 	max_light = 7, | ||||
| 	chance = 7000, | ||||
| 	active_object_count = 1, | ||||
| 	min_height = -31000, | ||||
| 	max_height = -40, | ||||
| }) | ||||
|  | ||||
|  | ||||
| mobs:register_egg("mobs_monster:spider2", S("Spider2"), "mobs_cobweb.png", 1) | ||||
							
								
								
									
										
											二进制
										
									
								
								textures/mobs_spider_crystal.png
									
									
									
									
									
										普通文件
									
								
							
							
						
						
									
										
											二进制
										
									
								
								textures/mobs_spider_crystal.png
									
									
									
									
									
										普通文件
									
								
							
										
											二进制文件未显示。
										
									
								
							| 之后 宽度: | 高度: | 大小: 4.6 KiB | 
		在新工单中引用
	
	屏蔽一个用户