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

Lua Reward Level Error Creature!

Mariuskens

Sword Art Online 2D-MMORPG
Joined
Nov 21, 2008
Messages
1,010
Reaction score
120
Location
Spain
GitHub
Olimpotibia
msg in console here->

[Error - CreatureEvent::configureEvent] No valid type for creature event.levelreward
[20/09/2012 11:33:08] [Warning - BaseEvents::loadFromXml] Cannot configure an event

my script

function onAdvance(cid, skill, oldlevel, newlevel)
if(skill == SKILL__LEVEL and getPlayerStorageValue(cid, 41025) ~= 1 and newlevel >= 200) then
setPlayerStorageValue(cid, 41025, 1)
doPlayerAddItem(cid, 2160, 100)
doPlayerAddItem(cid, 8982, 1)
doCreatureSay(cid, "Congratulations " .. getCreatureName(cid) .. ", you have reached level 200, you will now be rewarded 100 crystal coins. Enjoy your hunting!", TALKTYPE_ORANGE_1)
elseif(skill == SKILL__LEVEL and getPlayerStorageValue(cid, 41022) ~= 1 and newlevel >= 50) then
setPlayerStorageValue(cid, 41022, 1)
doPlayerAddItem(cid, 2160, 10)
doPlayerAddItem(cid, 8982, 1)
doCreatureSay(cid, "Congratulations " .. getCreatureName(cid) .. ", you have reached level 50, you will now be rewarded with some money. Enjoy your hunting!", TALKTYPE_ORANGE_1)
elseif(skill == SKILL__LEVEL and getPlayerStorageValue(cid, 41023) ~= 1 and newlevel >= 100) then
setPlayerStorageValue(cid, 41022, 1)
doPlayerAddItem(cid, 2160, 100)
doPlayerAddItem(cid, 8982, 1)
doCreatureSay(cid, "Congratulations " .. getCreatureName(cid) .. ", you have reached level 100, you will now be rewarded with items. Enjoy your hunting!", TALKTYPE_ORANGE_1)
elseif(skill == SKILL__LEVEL and getPlayerStorageValue(cid, 41024) ~= 1 and newlevel >= 250) then
setPlayerStorageValue(cid, 41022, 1)
doPlayerAddItem(cid, 9020, 1)
doPlayerAddItem(cid, 2504, 1)
doCreatureSay(cid, "Congratulations " .. getCreatureName(cid) .. ", you have reached level 250, you will now be rewarded with items. Enjoy your hunting!", TALKTYPE_ORANGE_1)
elseif(skill == SKILL__LEVEL and getPlayerStorageValue(cid, 41026) ~= 1 and newlevel >= 300) then
setPlayerStorageValue(cid, 41022, 1)
doPlayerAddItem(cid, 2523, 1)
doPlayerAddItem(cid, 2640, 1)
doCreatureSay(cid, "Congratulations " .. getCreatureName(cid) .. ", you have reached level 300, you will now be rewarded with vip items. Enjoy your hunting!", TALKTYPE_ORANGE_1)
elseif(skill == SKILL__LEVEL and getPlayerStorageValue(cid, 41027) ~= 1 and newlevel >= 350) then
setPlayerStorageValue(cid, 41022, 1)
doPlayerAddItem(cid, 2640, 10)
doPlayerAddItem(cid, 9020, 10)
doCreatureSay(cid, "Congratulations " .. getCreatureName(cid) .. ", you have reached level 350, you will now be rewarded with vip items. Enjoy your hunting!", TALKTYPE_ORANGE_1)
end
return true
end
 
<?xml version="1.0" encoding="UTF-8"?>
<creaturescripts>
<event type="levelreward" name="levelreward" event="script" value="levelreward.lua"/>
<event type="firstitems" name="firstitems" event="script" value="firstitems.lua"/>
<event type="preparedeath" name="Arena" event="script" value="arena.lua"/>
<event type="login" name="PlayerLogin" event="script" value="login.lua"/>
<event type="joinchannel" name="GuildMotd" event="script" value="guildmotd.lua"/>
<event type="receivemail" name="Mail" event="script" value="mail.lua"/>
<event type="reportbug" name="SaveReportBug" script="reportbug.lua"/>
<event type="advance" name="AdvanceSave" event="script" value="advancesave.lua"/>
<event type="logout" name="demonOakLogout" event="script" value="demonOakLogout.lua"/>
<event type="death" name="demonOakDeath" event="script" value="demonOakDeath.lua"/>
<event type="kill" name="ArenaKill" event="script" value="arenakill.lua"/>
<event type="death" name="PythiusTheRotten" event="script" value="PythiusTheRotten.lua"/>


<!-- Inquisition Full Quest -->
<event type="kill" name="inquisitionPortals" script="Inquisition.lua"/>

<event type="think" name="Idle" event="script" value="idle.lua"/>
<event type="think" name="SkullCheck" event="script" value="skullcheck.lua"/>

</creaturescripts>

....
 
Here is your creaturescript fixed you was added a bad event type "levelreward" and need be "advance" in the first line check.
XML:
<?xml version="1.0" encoding="UTF-8"?>
<creaturescripts>
<event type="advance" name="levelreward" event="script" value="levelreward.lua"/>
<event type="firstitems" name="firstitems" event="script" value="firstitems.lua"/>
<event type="preparedeath" name="Arena" event="script" value="arena.lua"/>
<event type="login" name="PlayerLogin" event="script" value="login.lua"/>
<event type="joinchannel" name="GuildMotd" event="script" value="guildmotd.lua"/>
<event type="receivemail" name="Mail" event="script" value="mail.lua"/>
<event type="reportbug" name="SaveReportBug" script="reportbug.lua"/>
<event type="advance" name="AdvanceSave" event="script" value="advancesave.lua"/>
<event type="logout" name="demonOakLogout" event="script" value="demonOakLogout.lua"/>
<event type="death" name="demonOakDeath" event="script" value="demonOakDeath.lua"/>
<event type="kill" name="ArenaKill" event="script" value="arenakill.lua"/>
<event type="death" name="PythiusTheRotten" event="script" value="PythiusTheRotten.lua"/>


<!-- Inquisition Full Quest -->
<event type="kill" name="inquisitionPortals" script="Inquisition.lua"/>

<event type="think" name="Idle" event="script" value="idle.lua"/>
<event type="think" name="SkullCheck" event="script" value="skullcheck.lua"/>

</creaturescripts>

and remember add the next thing in login.lua

LUA:
registerCreatureEvent(cid, "levelreward")
 
Last edited:
i edited the script complete if you want use configure it with your items and storages

LUA:
local rewards = {

		-- Config, just edit that values --
		-- For example each level in "level" the player will got 1 crystal coin and 1 platinum coin
		-- {level = 50,  item_reward = {{2160,1}, {2152,1}}, storage = 36700},

		{level = 50,  item_reward = {2160,5},  storage = xxxxx},
		{level = 100, item_reward = {2160,10}, storage = xxxxx},
		{level = 150, item_reward = {2160,15}, storage = xxxxx},
		{level = 200, item_reward = {2160,20}, storage = xxxxx},
		{level = 250, item_reward = {2160,25}, storage = xxxxx},
		{level = 300, item_reward = {2160,30}, storage = xxxxx},
		{level = 350, item_reward = {2160,35}, storage = xxxxx}
}



function onAdvance(cid, skill, oldlevel, newlevel)
	
	for _, value in pairs(rewards) do
		if(skill == SKILL__LEVEL and newlevel >= value.level and getPlayerStorageValue(cid, value.storage) == -1) then
			setPlayerStorageValue(cid, value.storage, 1)
			for slot = 1, #v.item_reward do
				doPlayerAddItem(cid, item_reward[slot])
			end
			doCreatureSay(cid, "Congratulations " .. getCreatureName(cid) .. ", you have reached level "..value.level..", you will now be rewarded with some money. Enjoy your hunting!", TALKTYPE_ORANGE_1)
		end
	end
	return true
end
 
my error is in storage = ??

- - - Updated - - -

ok i try script !

- - - Updated - - -

this error in console :S

Error - LuaScriptInterface::loadFile] data/creaturescripts/scripts/levelreward.lua:8: unexpected symbol near '='
[21/09/2012 21:30:30] [Warning - Event::loadScript] Cannot load script (data/creaturescripts/scripts/levelreward.lua)
[21/09/2012 21:30:30] data/creaturescripts/scripts/levelreward.lua:8: unexpected symbol near '='
local rewards = {

-- Config, just edit that values --
-- For example each level in "level" the player will got 1 crystal coin and 1 platinum coin
-- {level = 50, item_reward = {{2160,1}, {2152,1}}, storage = 36700},

{level = 50, item_reward = {2160,10}, {8982,1}}, storage = 36700},
{level = 100, item_reward = {2160,50}, {8982,1}}, storage = 36700},
{level = 150, item_reward = {2160,100}, {2504,1}}, storage = 36700},
{level = 200, item_reward = {2160,20}, {8982,1}}, storage = 36700},
{level = 250, item_reward = {2160,25}, {2523,1}}, storage = 36700},
{level = 300, item_reward = {2160,100}, {9020,10}}, storage = 36700},
{level = 350, item_reward = {2160,35}, {9020,30}}, storage = 36700},
}



function onAdvance(cid, skill, oldlevel, newlevel)

for _, value in pairs(rewards) do
if(skill == SKILL__LEVEL and newlevel >= value.level and getPlayerStorageValue(cid, value.storage) == -1) then
setPlayerStorageValue(cid, value.storage, 1)
for slot = 1, #v.item_reward do
doPlayerAddItem(cid, item_reward[slot])
end
doCreatureSay(cid, "Congratulations " .. getCreatureName(cid) .. ", you have reached level "..value.level..", you will now be rewarded with some money. Enjoy your hunting!", TALKTYPE_ORANGE_1)
end
end
return true
end
 
LUA:
local rewards = {
{level = 50, item_reward = {2160,10}, {8982,1}}, storage = 36700},
{level = 100, item_reward = {2160,50}, {8982,1}}, storage = 36700},
{level = 150, item_reward = {2160,100}, {2504,1}}, storage = 36700},
{level = 200, item_reward = {2160,20}, {8982,1}}, storage = 36700},
{level = 250, item_reward = {2160,25}, {2523,1}}, storage = 36700},
{level = 300, item_reward = {2160,100}, {9020,10}}, storage = 36700},
{level = 350, item_reward = {2160,35}, {9020,30}}, storage = 36700}
}

function onAdvance(cid, skill, oldlevel, newlevel)
for _, value in pairs(rewards) do
if(skill == SKILL__LEVEL and newlevel >= value.level and getPlayerStorageValue(cid, value.storage) == -1) then
setPlayerStorageValue(cid, value.storage, 1)
for slot = 1, #v.item_reward do
doPlayerAddItem(cid, item_reward[slot])
end
doCreatureSay(cid, "Congratulations " .. getCreatureName(cid) .. ", you have reached level "..value.level..", you will now be rewarded with some money. Enjoy your hunting!", TALKTYPE_ORANGE_1)
end
end
return true
end
 
[21/09/2012 21:30:30] [Warning - Event::loadScript] Cannot load script (data/creaturescripts/scripts/levelreward.lua)
[21/09/2012 21:30:30] data/creaturescripts/scripts/levelreward.lua:8: unexpected symbol near '='

error is = ????

- - - Updated - - -

i've TheForgottenServer8.60V5
 
bad functions in
{},
try this:
i edit script:
LUA:
local rewards = {
    [36700] = {level = 100, reward = {2160, 50}, {8982, 1}},
    [36700] = {level = 150, reward = {2160, 100}, {2504, 1}},
    [36700] = {level = 200, reward = {2160, 20}, {8982, 1}},
    [36700] = {level = 250, reward = {2160, 25}, {8982, 1}},
    [36700] = {level = 300, reward = {2160, 100}, {9020, 10}},
    [36700] = {level = 350, reward = {{2160, 35},  {9020, 30}}},
}
function onAdvance(cid, skill, oldlevel, newlevel)
    if(skill ~= SKILL__LEVEL)then    return TRUE end
    for i,t in ipairs(rewards) do
        if not(getPlayerStorageValue(cid, i)) and t.level <= newlevel then
            if type(t.reward[1] ~= "table") then
                local add = doPlayerAddItem(cid, t.reward[1], t.reward[2])
                if add then
                    doPlayerSendTextMessage(cid, 19, "Congratulations ".t.reward[2]." ".getItemNameById(t.reward[2])." you will now be rewarded with some money. Enjoy your hunting!".t.level.".")
                    setPlayerStorageValue(cid, i, true)
                end
            end
        end
    end
    return TRUE
end
 
[22/09/2012 12:07:55] [Error - LuaScriptInterface::loadFile] data/creaturescripts/scripts/levelreward.lua:16: ')' expected near '.'
[22/09/2012 12:07:55] [Warning - Event::loadScript] Cannot load script (data/creaturescripts/scripts/levelreward.lua)
[22/09/2012 12:07:55] data/creaturescripts/scripts/levelreward.lua:16: ')' expected near '.'

?? crzyyyyy script hahaha
 
Bad string usage try now

LUA:
local rewards = {
    [36700] = {level = 100, reward = {2160, 50}, {8982, 1}},
    [36700] = {level = 150, reward = {2160, 100}, {2504, 1}},
    [36700] = {level = 200, reward = {2160, 20}, {8982, 1}},
    [36700] = {level = 250, reward = {2160, 25}, {8982, 1}},
    [36700] = {level = 300, reward = {2160, 100}, {9020, 10}},
    [36700] = {level = 350, reward = {{2160, 35}, {9020, 30}}},
}
function onAdvance(cid, skill, oldlevel, newlevel)
    if(skill ~= SKILL__LEVEL)then return TRUE end
    for i,t in ipairs(rewards) do
        if not(getPlayerStorageValue(cid, i)) and t.level <= newlevel then
            if type(t.reward[1] ~= "table") then
                local add = doPlayerAddItem(cid, t.reward[1], t.reward[2])
                if add then
                    doPlayerSendTextMessage(cid, 19, "Congratulations ".. t.reward[2].." "..getItemNameById(t.reward[2]).." you will now be rewarded with some money. Enjoy your hunting! ".. t.level ..".")
                    setPlayerStorageValue(cid, i, true)
                end
            end
        end
    end
    return TRUE
end
 
:oooo THNNNNNNNX GOOD JOB ACUBENS!!

NICE !!

- - - Updated - - -

i have this script and do nothing!
->

local rewards = {
[36700] = {level = 100, reward = {2160, 50}, {8982, 1}},
[36700] = {level = 150, reward = {2160, 100}, {2504, 1}},
[36700] = {level = 200, reward = {2160, 20}, {8982, 1}},
[36700] = {level = 250, reward = {2160, 25}, {8982, 1}},
[36700] = {level = 300, reward = {2160, 100}, {9020, 10}},
[36700] = {level = 350, reward = {{2160, 35}, {9020, 30}}},
}
function onAdvance(cid, skill, oldlevel, newlevel)
if(skill ~= SKILL__LEVEL)then return TRUE end
for i,t in ipairs(rewards) do
if not(getPlayerStorageValue(cid, i)) and t.level <= newlevel then
if type(t.reward[1] ~= "table") then
local add = doPlayerAddItem(cid, t.reward[1], t.reward[2])
if add then
doPlayerSendTextMessage(cid, 19, "Congratulations ".. t.reward[2].." "..getItemNameById(t.reward[2]).." you will now be rewarded with some money. Enjoy your hunting! ".. t.level ..".")
setPlayerStorageValue(cid, i, true)
end
end
end
end
return TRUE
end


but my old script is pefect!
->

function onAdvance(cid, skill, oldlevel, newlevel)
if(skill == SKILL__LEVEL and getPlayerStorageValue(cid, 41025) ~= 1 and newlevel >= 50) then
setPlayerStorageValue(cid, 41025, 1)
doPlayerAddItem(cid, 2160, 5)
doCreatureSay(cid, "Congratulations " .. getCreatureName(cid) .. ", you have reached level 50, you will now be rewarded 5 crystal coins. Enjoy your hunting!", TALKTYPE_ORANGE_1)
end
return true
end


why not work full script???
error is in setPlayerStorageValue(cid, 41025, 1) / [36700] ????
 
Last edited:
Back
Top