• 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!
  • 2026 staff recruitment is open! Check it out and consider applying!

Creature.lua problem

Saint Spear

Veteran OT User
Joined
Jun 22, 2016
Messages
1,547
Solutions
18
Reaction score
379
Well I noticed that I have this bug in console, I dont know what is causing it, Here is the error
Screenshot
and im using creature.lua from official repo , btw im using tfs 1.2 by ninja
heres my creature.lua
LUA:
function Creature:onChangeOutfit(outfit)
    return true
end

function Creature:onAreaCombat(tile, isAggressive)
    return true
end

function Creature:onTargetCombat(target)
    return true
end
also heres my events.xml
I had 3 events but I deleted them, they was in creature.lua and thats probably problem I didnt delete one from xml here you go
XML:
<?xml version="1.0" encoding="UTF-8"?>
<events>

    <!-- Creature methods -->
    <event class="Creature" method="onChangeOutfit" enabled="0" />
    <event class="Creature" method="onAreaCombat" enabled="0" />
    <event class="Creature" method="onTargetCombat" enabled="1" />

    <!-- Party methods -->
    <event class="Party" method="onJoin" enabled="0" />
    <event class="Party" method="onLeave" enabled="0" />
    <event class="Party" method="onDisband" enabled="0" />

    <!-- Player methods -->
    <event class="Player" method="onLook" enabled="1" />
    <event class="Player" method="onLookInBattleList" enabled="1" />
    <event class="Player" method="onLookInTrade" enabled="1" />
    <event class="Player" method="onLookInShop" enabled="0" />
    <event class="Player" method="onMoveItem" enabled="0" />
    <event class="Player" method="onMoveCreature" enabled="0" />
    <event class="Player" method="onTurn" enabled="0" />
    <event class="Player" method="onTradeRequest" enabled="0" />
    <event class="Player" method="onTradeAccept" enabled="0" />
    <event class="Player" method="onGainExperience" enabled="1" />
    <event class="Player" method="onLoseExperience" enabled="0" />
    <event class="Player" method="onGainSkillTries" enabled="1" />
</events>
 
Last edited by a moderator:
If thats the script you are running, make sure your source code has those codes in it.
If it does it should be reported here; Build software better, together

Also specify that you are running TFS 1.2 that has been edited to 8.6 by Ninja.
 
In github.com, I compared the history on creature.lua with your code and the master code (otland master)

And I found a update to the file here:
Update return values on Creature events. by Mkalo · Pull Request #2171 · otland/forgottenserver · GitHub

Look at the tab "Files changed". Add that to your code and see if it works.
Code:
function Creature:onChangeOutfit(outfit)
    return true
end
function Creature:onAreaCombat(tile, isAggressive)
    return true
    return RETURNVALUE_NOERROR
end
function Creature:onTargetCombat(target)
    return true
    return RETURNVALUE_NOERROR
end
and the error is this :
Screenshot
 
Code:
function Creature:onChangeOutfit(outfit)
    return true
end
function Creature:onAreaCombat(tile, isAggressive)
    return true
    return RETURNVALUE_NOERROR
end
function Creature:onTargetCombat(target)
    return true
    return RETURNVALUE_NOERROR
end
and the error is this :
Screenshot

Hehe, in pull requests on github;
red line = Remove
Green line = Add
RCIjPqi.png


Your script should look like:
LUA:
function Creature:onChangeOutfit(outfit)
    return true
end

function Creature:onAreaCombat(tile, isAggressive)
    return RETURNVALUE_NOERROR
end

function Creature:onTargetCombat(target)
    return RETURNVALUE_NOERROR
end
 
still doesn't make sense, the error says you're trying to use self which is nil
you sure this is the script you're using? because if it is then you shouldn't be erroring
 

Similar threads

Back
Top