mirror of
				https://gitlab.com/rubenwardy/awards.git
				synced 2025-10-31 13:05:22 +01:00 
			
		
		
		
	Secret awards, fixes
This commit is contained in:
		
							
								
								
									
										35
									
								
								api.lua
									
									
									
									
									
								
							
							
						
						
									
										35
									
								
								api.lua
									
									
									
									
									
								
							| @@ -261,15 +261,15 @@ minetest.register_chatcommand("list_awards", { | ||||
| 	end | ||||
| }) | ||||
| minetest.register_chatcommand("awards", { | ||||
| 	params = "Empty params for your awards, player name for someone else's awards", | ||||
| 	params = "", | ||||
| 	description = "awards: list awards", | ||||
| 	func = function(name, param) | ||||
| 		awards.showto(name, name, nil, false) | ||||
| 	end | ||||
| }) | ||||
| minetest.register_chatcommand("cawards", { | ||||
| 	params = "Empty params for your awards, player name for someone else's awards", | ||||
| 	description = "awards: list awards", | ||||
| 	params = "", | ||||
| 	description = "awards: list awards in chat", | ||||
| 	func = function(name, param) | ||||
| 		awards.showto(name, name, nil, true) | ||||
| 	end | ||||
| @@ -313,16 +313,28 @@ function awards._order_awards(name) | ||||
| end | ||||
|  | ||||
| function awards.showto(name, to, sid, text) | ||||
| 	if name == "" or name == nil then | ||||
| 		name = to | ||||
| 	end | ||||
| 	if text then | ||||
| 		if not awards.players[name] or not awards.players[name].unlocked  then | ||||
| 			minetest.chat_send_player(name, "You do not have any awards") | ||||
| 			minetest.chat_send_player(to, "You have not unlocked any awards") | ||||
| 			return | ||||
| 		end | ||||
| 		minetest.chat_send_player(to, name.."'s awards:") | ||||
|  | ||||
| 		for _, str in pairs(awards.players[name].unlocked) do | ||||
| 			local def = awards.def[str] | ||||
| 			if def and def.title then | ||||
| 				if def.description then				 | ||||
| 					minetest.chat_send_player(to, def.title..": "..def.description) | ||||
| 				else | ||||
| 					minetest.chat_send_player(to, def.title) | ||||
| 				end | ||||
| 			else | ||||
| 				minetest.chat_send_player(to, str) | ||||
| 			end | ||||
| 		end | ||||
| 	else | ||||
| 		if sid == nil or sid < 1 then | ||||
| 			sid = 1 | ||||
| @@ -334,6 +346,13 @@ function awards.showto(name, to, sid, text) | ||||
| 		if sid then | ||||
| 			local item = listofawards[sid+0] | ||||
| 			local def = awards.def[item.name] | ||||
| 			if def and def.secret and not item.got then | ||||
| 				formspec = formspec .. "label[1,2.75;Secret Award]".. | ||||
| 									"image[1,0;3,3;unknown.png]" | ||||
| 				if def and def.description then | ||||
| 					formspec = formspec	.. "label[0,3.25;Unlock this award to find out what it is]"				 | ||||
| 				end | ||||
| 			else | ||||
| 				local title = item.name | ||||
| 				if def and def.title then | ||||
| 					title = def.title | ||||
| @@ -351,6 +370,7 @@ function awards.showto(name, to, sid, text) | ||||
| 					formspec = formspec	.. "label[0,3.25;"..def.description.."]"				 | ||||
| 				end | ||||
| 			end | ||||
| 		end | ||||
| 		 | ||||
| 		-- Create list box | ||||
| 		formspec = formspec .. "textlist[4.75,0;6,5;awards;"		 | ||||
| @@ -361,18 +381,21 @@ function awards.showto(name, to, sid, text) | ||||
| 			end | ||||
| 			first = false | ||||
| 			local def = awards.def[award.name] | ||||
| 			local title = award.name | ||||
| 			 | ||||
| 			if def and def.secret and not award.got then | ||||
| 				formspec = formspec .. "#ACACACSecret Award" | ||||
| 			else | ||||
| 				local title = award.name			 | ||||
| 				if def and def.title then | ||||
| 					title = def.title | ||||
| 				end			 | ||||
| 			 | ||||
| 				if award.got then | ||||
| 					formspec = formspec .. minetest.formspec_escape(title) | ||||
| 				else | ||||
| 					formspec = formspec .. "#ACACAC".. minetest.formspec_escape(title) | ||||
| 				end | ||||
| 			end | ||||
| 		end		 | ||||
| 		formspec = formspec .. ";"..sid.."]" | ||||
|  | ||||
| 		-- Show formspec to user | ||||
|   | ||||
							
								
								
									
										2
									
								
								init.lua
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								init.lua
									
									
									
									
									
								
							| @@ -126,7 +126,7 @@ awards.register_achievement("award_death1",{ | ||||
| -- Burned to death | ||||
| awards.register_achievement("award_burn",{ | ||||
| 	title = S("You're a witch!"), | ||||
| 	description = S("Burn to death in a fire"), | ||||
| 	description = S("Burn to death in a fire") | ||||
| }) | ||||
|  | ||||
| -- 1 sentence | ||||
|   | ||||
							
								
								
									
										10
									
								
								readme.md
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								readme.md
									
									
									
									
									
								
							| @@ -17,9 +17,10 @@ The API | ||||
| 	* sound [optional] | ||||
| 	* image [optional] | ||||
| 	* trigger [optional] [table] | ||||
| 		* type - "dig" or "place" | ||||
| 		* type - "dig", "place", "death", "chat" or "join" | ||||
| 		* (for dig/place type) node - the nodes name | ||||
| 		* (for all types) target - how many to dig / place | ||||
| 	* secret [optional] - if true, then player needs to unlock to find out what it is. | ||||
| * awards.give_achievement(name,award) | ||||
| 	* -- gives an award to a player | ||||
| * awards.register_onDig(func(player,data)) | ||||
| @@ -28,6 +29,10 @@ The API | ||||
| 	* -- return award name or null | ||||
| * awards.register_onDeath(func(player,data)) | ||||
| 	* -- return award name or null | ||||
| * awards.register_onChat(func(player,data)) | ||||
| 	* -- return award name or null | ||||
| * awards.register_onJoin(func(player,data)) | ||||
| 	* -- return award name or null | ||||
|  | ||||
|  | ||||
| Player Data | ||||
| @@ -42,3 +47,6 @@ A list of data referenced/hashed by the player's name. | ||||
| 	* place [table] - place counter | ||||
| 		* modname [table] | ||||
| 			* itemname [int] | ||||
| 	* deaths | ||||
| 	* chats | ||||
| 	* joins | ||||
		Reference in New Issue
	
	Block a user