• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

[CreatureEvent][TFS 0.3.5pl1] onDeath script, why it dosn't work?

hellboy

Intermediate OT User
Joined
Apr 6, 2008
Messages
549
Solutions
6
Reaction score
124
Location
player:getTown()
Hello, I have this scripts, onLogin works perfect:
LUA:
		hungryStorageInfo = 3636
		dmgStorageInfo = 3637
		
		hungryTable = {{minFeed = 15, msg = "You will die if you don't eat something.", strCount = 1},
			{minFeed = 90, msg = "You are very hungry.", strCount = 2},
			{minFeed = 200, msg = "You are hungry.", strCount = 3},
			{minFeed = 395, msg = "You can eat something.", strCount = 4},
			{minFeed = 400, msg = "You are full.", strCount = 5}
		}
		
		dmgTime = 5*1000
		dmgAmount = 1



	function onLogin(cid)
		feed = getPlayerFood(cid)
		setPlayerStorageValue(cid, dmgStorageInfo, 0)
		registerCreatureEvent(cid, "HungerDeath")
		registerCreatureEvent(cid, "Hunger")
		
		for i = 1, table.maxn(hungryTable) do
			TABLE = hungryTable[i]
			if i == 1 then
				if feed <= TABLE.minFeed then
					doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, TABLE.msg)
					setPlayerStorageValue(cid, hungryStorageInfo, TABLE.strCount)
					break
				end
			end
			
			if i == table.maxn(hungryTable) then
				TABLE2 = hungryTable[i -1]
				if feed > TABLE2.minFeed then
					doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, TABLE.msg)
					setPlayerStorageValue(cid, hungryStorageInfo, TABLE.strCount)
					break
				end
			end
			
			if i ~= 1 then
				TABLE2 = hungryTable[i -1]
				if feed <= TABLE.minFeed and feed > TABLE2.minFeed then
					doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, TABLE.msg)
					setPlayerStorageValue(cid, hungryStorageInfo, TABLE.strCount)
					break
				end
			end
		end
		return true
	end

but onDeath don't work that like i want...
LUA:
function onDeath(cid, corpse, killer)
	feed = getPlayerFood(cid)
	print(feed)
	if feed < 200 then --- (hungryTable[3]).minFeed
		doPlayerFeed(cid, 100) --- -feed
	end
	doPlayerSave(cid)
	print(getPlayerFood(cid))
	return true
end

XML:
PHP:
<event type="login" name="HungerLogin" event="script" value="hunger.lua"/>
<event type="death" name="HungerDeath" event="script" value="hungerdeath.lua"/>


Console when player die:
Code:
[27/12/2009 18:46:45] 0
[27/12/2009 18:46:45] 300

It's ok but... function doPlayerFeed(cid, 100) don't work in this script... when i login again function getPlayerFood(cid) return 0...

#EDIT#
OK close this topic, TFS set "hunger lvl" to 0 when player die.
 
Last edited:
Back
Top