• 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!

Tfs 0.3.6

medium

New Member
Joined
Nov 2, 2011
Messages
54
Reaction score
0
Welcome!

I need help about all function which i can use for create my Open Tibia Server.

Example function :
Code:
function onKill(cid, target, lastHit)
 
What do you need help with on all of these fuctions? Most of them are as they say function onKill means when adding particular script after, that will happen when you kill something.
 
You are able to use these functions:
Code:
onLogin
onLogout
onJoinChannel
onLeaveChannel
onThink
onAdvance
onLook
onDirection
onOutfit
onSendMail
onReceiveMail
onTradeRequest
onTradeAccept
onTextEdit
onReportBug
onStatsChange
onAreaCombat
onPush
onTarget
onFollow
onCombat
onAttack
onCast
onKill
onDeath
onPrepareDeath


_
Regards,
sn3ejk
 
Could someone explain to me the difference between onKill and onDeath? Trying to create a script that changes the action id of a creatures loot.. thank you..
 
sn3ejk - thanks so much for that list.
I only need description for that list and will be Grat :)
Could you explain me what description do you need? Are you talking about arguments for these functions? Or do you want me to explain you when server runs these functions?

If you know anything about C++, you can read everything in file named creaturescripts.cpp. If not, I might you can find a lot of useful tutorial here (example: http://otland.net/threads/scripting-guide.74030/).
 
Thanks so much for your help . That guide which you recommend me is awesome . It is that what i was looking for . ;) Topic to close.
 
Thanks mate. Slowly but surely..

For Example OnDeath

Code:
function onDeath(cid, corpse, deathList)
 if isMonster(cid) then
 local x = getCreatureMaster(cid)
 if isPlayer(x) then
 if getPlayerItemCount(x, 5468) > 0 then
 doPlayerRemoveItem(x, 5468, 1)
 doPlayerAddItem(x, 7488, 1)
 end
 end
 end 
 return true
end

This Script When you die you can use itemid == 5468 to summon you in the place u died :D

-------------

For Example OnKill
we will use killinthenameof

Code:
local questCreatures =
{
 ["Captain Freak"] = {questStarted = 1510, questStorage = 65000, creatureStorage = 15000, killsRequired = 500, raceName = "Captain Freak"},
 ["Ferumbras"] = {questStarted = 1510, questStorage = 65001, creatureStorage = 15001, killsRequired = 500, raceName = "Ferumbras"},
 ["Bull Wolf"] = {questStarted = 1510, questStorage = 65002, creatureStorage = 15002, killsRequired = 500, raceName = "Bull Wolf"},
 ["Snakebite Master"] = {questStarted = 1510, questStorage = 65003, creatureStorage = 15003, killsRequired = 500, raceName = "Snakebite Master"},
 ["Kung Fu Panda"] = {questStarted = 1510, questStorage = 65005, creatureStorage = 15004, killsRequired = 500, raceName = "Kung Fu Panda"},
 ["Captain Sniper"] = {questStarted = 1510, questStorage = 65006, creatureStorage = 15005, killsRequired = 500, raceName = "Captain Sniper"},
 ["Devils Bounty Hunter"] = {questStarted = 1510, questStorage = 65007, creatureStorage = 15006, killsRequired = 500, raceName = "Devils Bounty Hunter"},
 ["Archdruid"] = {questStarted = 1510, questStorage = 65008, creatureStorage = 15007, killsRequired = 500, raceName = "Archdruid"},
 ["Devils Lighter"] = {questStarted = 1510, questStorage = 65009, creatureStorage = 15008, killsRequired = 500, raceName = "Devils Lighter"},
 ["Deadly Panda"] = {questStarted = 1510, questStorage = 65010, creatureStorage = 15009, killsRequired = 500, raceName = "Deadly Panda"},
 ["Unknown Freak"] = {questStarted = 1510, questStorage = 65011, creatureStorage = 150010, killsRequired = 500, raceName = "Unknown Freak"},
 ["Troll Champion"] = {questStarted = 1510, questStorage = 65012, creatureStorage = 150011, killsRequired = 500, raceName = "Troll Champion"},
 ["Bitchy Hydra"] = {questStarted = 1510, questStorage = 65013, creatureStorage = 150012, killsRequired = 500, raceName = "Bitchy Hydra"},
 ["Rebirth Freak"] = {questStarted = 1510, questStorage = 65014, creatureStorage = 150013, killsRequired = 500, raceName = "Rebirth Freak"}
}
local msgType = MESSAGE_STATUS_CONSOLE_ORANGE
function onKill(cid, target, lastHit)
local creature = questCreatures[getCreatureName(target):lower()]
 if creature then
 if isPlayer(target) then return true end
 if getCreatureStorage(cid, creature.questStarted) > 0 then
 if getCreatureStorage(cid, creature.questStorage) < creature.killsRequired then
 if getCreatureStorage(cid, creature.questStorage) < 0 then
 doCreatureSetStorage(cid, creature.questStorage, 0)
 end
 if getCreatureStorage(cid, creature.creatureStorage) < 0 then
 doCreatureSetStorage(cid, creature.creatureStorage, 0)
 end
 doCreatureSetStorage(cid, creature.questStorage, getCreatureStorage(cid, creature.questStorage) + 1)
 doCreatureSetStorage(cid, creature.creatureStorage, getCreatureStorage(cid, creature.creatureStorage) + 1)
 doPlayerSendTextMessage(cid, msgType, getCreatureStorage(cid, creature.creatureStorage) .. " " .. getCreatureName(target) .. " defeated. Total [" .. getCreatureStorage(cid, creature.questStorage) .. "/" .. creature.killsRequired .. "] " .. creature.raceName .. ".")
 end
 end
 end
 return true
end


as u see we make targets and when you kill it you get Storage or wtv :D

That's Difference between OnKill - OnDeath
Hope this help
 
For Example OnDeath

Code:
function onDeath(cid, corpse, deathList)
if isMonster(cid) then
local x = getCreatureMaster(cid)
if isPlayer(x) then
if getPlayerItemCount(x, 5468) > 0 then
doPlayerRemoveItem(x, 5468, 1)
doPlayerAddItem(x, 7488, 1)
end
end
end
return true
end

This Script When you die you can use itemid == 5468 to summon you in the place u died :D

-------------

For Example OnKill
we will use killinthenameof

Code:
local questCreatures =
{
["Captain Freak"] = {questStarted = 1510, questStorage = 65000, creatureStorage = 15000, killsRequired = 500, raceName = "Captain Freak"},
["Ferumbras"] = {questStarted = 1510, questStorage = 65001, creatureStorage = 15001, killsRequired = 500, raceName = "Ferumbras"},
["Bull Wolf"] = {questStarted = 1510, questStorage = 65002, creatureStorage = 15002, killsRequired = 500, raceName = "Bull Wolf"},
["Snakebite Master"] = {questStarted = 1510, questStorage = 65003, creatureStorage = 15003, killsRequired = 500, raceName = "Snakebite Master"},
["Kung Fu Panda"] = {questStarted = 1510, questStorage = 65005, creatureStorage = 15004, killsRequired = 500, raceName = "Kung Fu Panda"},
["Captain Sniper"] = {questStarted = 1510, questStorage = 65006, creatureStorage = 15005, killsRequired = 500, raceName = "Captain Sniper"},
["Devils Bounty Hunter"] = {questStarted = 1510, questStorage = 65007, creatureStorage = 15006, killsRequired = 500, raceName = "Devils Bounty Hunter"},
["Archdruid"] = {questStarted = 1510, questStorage = 65008, creatureStorage = 15007, killsRequired = 500, raceName = "Archdruid"},
["Devils Lighter"] = {questStarted = 1510, questStorage = 65009, creatureStorage = 15008, killsRequired = 500, raceName = "Devils Lighter"},
["Deadly Panda"] = {questStarted = 1510, questStorage = 65010, creatureStorage = 15009, killsRequired = 500, raceName = "Deadly Panda"},
["Unknown Freak"] = {questStarted = 1510, questStorage = 65011, creatureStorage = 150010, killsRequired = 500, raceName = "Unknown Freak"},
["Troll Champion"] = {questStarted = 1510, questStorage = 65012, creatureStorage = 150011, killsRequired = 500, raceName = "Troll Champion"},
["Bitchy Hydra"] = {questStarted = 1510, questStorage = 65013, creatureStorage = 150012, killsRequired = 500, raceName = "Bitchy Hydra"},
["Rebirth Freak"] = {questStarted = 1510, questStorage = 65014, creatureStorage = 150013, killsRequired = 500, raceName = "Rebirth Freak"}
}
local msgType = MESSAGE_STATUS_CONSOLE_ORANGE
function onKill(cid, target, lastHit)
local creature = questCreatures[getCreatureName(target):lower()]
if creature then
if isPlayer(target) then return true end
if getCreatureStorage(cid, creature.questStarted) > 0 then
if getCreatureStorage(cid, creature.questStorage) < creature.killsRequired then
if getCreatureStorage(cid, creature.questStorage) < 0 then
doCreatureSetStorage(cid, creature.questStorage, 0)
end
if getCreatureStorage(cid, creature.creatureStorage) < 0 then
doCreatureSetStorage(cid, creature.creatureStorage, 0)
end
doCreatureSetStorage(cid, creature.questStorage, getCreatureStorage(cid, creature.questStorage) + 1)
doCreatureSetStorage(cid, creature.creatureStorage, getCreatureStorage(cid, creature.creatureStorage) + 1)
doPlayerSendTextMessage(cid, msgType, getCreatureStorage(cid, creature.creatureStorage) .. " " .. getCreatureName(target) .. " defeated. Total [" .. getCreatureStorage(cid, creature.questStorage) .. "/" .. creature.killsRequired .. "] " .. creature.raceName .. ".")
end
end
end
return true
end


as u see we make targets and when you kill it you get Storage or wtv :D

That's Difference between OnKill - OnDeath
Hope this help


That's really helpful nice one. Learning!
 
Back
Top