mirror of
				https://github.com/sys4-fr/server-nalc.git
				synced 2025-10-31 20:45:22 +01:00 
			
		
		
		
	[mff_pclasses] Stop using asbolute stats values
- Stop using absolute stats values for stamina and manamax when you can add/subtract in on_assign and on_unassign - Use on_update for hunters to determine whether or not to add the sprint bonus from the full reinforced leather armor set
This commit is contained in:
		| @@ -6,28 +6,33 @@ | ||||
| -- See https://github.com/Ombridride/minetest-minetestforfun-server/issues/114 | ||||
| -- | ||||
|  | ||||
| local tmp = {} | ||||
|  | ||||
| pclasses.api.register_class("hunter", { | ||||
| 	on_assigned = function(pname, inform) | ||||
| 		if inform then | ||||
| 			minetest.chat_send_player(pname, "You are now a hunter") | ||||
| 			minetest.sound_play("pclasses_full_hunter", {to_player=pname, gain=1}) | ||||
| 		end | ||||
| 		sprint.increase_maxstamina(pname, 10) | ||||
| 		minetest.log("action", "[PClasses] Player " .. pname .. " become a hunter") | ||||
| 	end, | ||||
| 	on_unassigned = function(pname) | ||||
| 		sprint.set_default_maxstamina(pname) | ||||
| 		sprint.decrease_maxstamina(pname, 10) | ||||
| 	end, | ||||
| 	on_update = function(pname) | ||||
| 		local staminavalue = 30 | ||||
| 		local manavalue = 100 | ||||
| 		local reinforced = pclasses.api.util.does_wear_full_armor(pname, "reinforcedleather", true) | ||||
| 		if reinforced then | ||||
| 			staminavalue = staminavalue + 20 | ||||
| 			if not tmp[pname] then | ||||
| 				tmp[pname] = true | ||||
| 				sprint.increase_maxstamina(pname, 10) -- 10 more | ||||
| 			end | ||||
| 		else | ||||
| 			staminavalue = staminavalue + 10 | ||||
| 			if tmp[pname] then | ||||
| 				tmp[pname] = false | ||||
| 				sprint.decrease_maxstamina(pname, 10) | ||||
| 			end | ||||
| 		end | ||||
| 		sprint.set_maxstamina(pname, staminavalue) | ||||
| 		mana.setmax(pname, manavalue) | ||||
| 	end, | ||||
| 	switch_params = { | ||||
| 		color = {r = 30, g = 170, b = 00}, | ||||
|   | ||||
| @@ -12,16 +12,14 @@ pclasses.api.register_class("warrior", { | ||||
| 			minetest.sound_play("pclasses_full_warrior", {to_player=pname, gain=1}) | ||||
| 			minetest.chat_send_player(pname, "You are now a warrior") | ||||
| 		end | ||||
| 		sprint.increase_maxstamina(pname, 10) | ||||
| 		minetest.log("action", "[PClasses] Player " .. pname .. " becomes a warrior") | ||||
| 	end, | ||||
| 	on_unassigned = function(pname) | ||||
| 		sprint.set_default_maxstamina(pname) | ||||
| 		sprint.decrease_maxstamina(pname, 10) | ||||
| 	end, | ||||
| 	on_update = function(pname) | ||||
| 		local staminavalue = 20 | ||||
| 		local manavalue = 100 | ||||
| 		sprint.set_maxstamina(pname, staminavalue) | ||||
| 		mana.setmax(pname, manavalue) | ||||
| 		-- No specific armor changes, no code | ||||
| 	end, | ||||
| 	switch_params = { | ||||
| 		color = {r = 06, g = 06, b = 30}, | ||||
|   | ||||
| @@ -13,16 +13,16 @@ pclasses.api.register_class("wizard", { | ||||
| 			minetest.chat_send_player(pname, "You are now a wizard.") | ||||
| 		end | ||||
| 		-- Add specs here | ||||
| 		mana.setmax(pname, mana.getmax(pname)+100) | ||||
| 		sprint.increase_maxstamina(pname, 10) | ||||
| 		minetest.log("action", "[PClasses] Player " .. pname .. " becomes a wizard") | ||||
| 	end, | ||||
| 	on_unassigned = function(pname) | ||||
| 		mana.setmax(pname, mana.getmax(pname)-100) | ||||
| 		sprint.decrease_maxstamina(pname, 10) | ||||
| 	end, | ||||
| 	on_update = function(pname) | ||||
| 		local staminavalue = 10 | ||||
| 		local manavalue = 200 | ||||
| 		sprint.set_maxstamina(pname, staminavalue) | ||||
| 		mana.setmax(pname, manavalue) | ||||
| 		-- No armor, no update needed | ||||
| 	end, | ||||
| 	switch_params = { | ||||
| 		color = {r = 230, g = 230, b = 0}, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user