It's Wave({}) not wave({}).I have error: creaturescripts/lib/creaturescripts.lua:2 in main chunk
attempt to call global 'wave' (a nil value)?
It's Wave({}) not wave({}).I have error: creaturescripts/lib/creaturescripts.lua:2 in main chunk
attempt to call global 'wave' (a nil value)?
I'm pretty sure you can do a kick function easily using Arena:setStartCallback.hey make a kick function pleeeeeeeeease man!! <3 @Mkalo
You did not install the lib in the post. Its the first link in the post, you would see it if you read it.Man, Im dumb, I know I don't put the files, now I fixed it but still got this:
http://pastebin.com/R4s96bwZ
local waves = {
[1] = Wave({
["Rat"] = 1,
}),
[2] = Wave({
["Cave Rat"] = 2,
}),
}
local config = {
levers = {1945, 1946},
}
function rewardPlayers(player, arena)
player:addItem(2160, 100)
player:setStorageValue(2101, 1)
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Congratulations, you finished the arena " .. arena.name .. ".")
return true
end
function checkPlayer(player)
if player:getStorageValue(2101) <= 0 then
return true
else
return false
end
end
function spawnBroadcast(player, waveid, arena)
player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Spawning wave " .. waveid .. ".")
return true
end
function waveClear(player, waveid, arena)
player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "You cleared wave " .. waveid .. ".")
if player:getMaxHealth()-player:getHealth() > 0 then
player:addHealth(player:getMaxHealth()-player:getHealth())
end
return true
end
function jokerDeath(player, waveid, arena)
player:say("MUAHAHAHA", TALKTYPE_MONSTER_SAY, false, player, arena.position)
end
function arenaStart(player, arena)
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You have entered the arena " .. arena.name .. ".")
end
function arenaThink(arena, interval)
local players = arena:getPlayersInside()
if #players == 0 then
arena:reset()
else
for i, player in ipairs(players) do
player:addHealth(-50)
end
end
end
local arena = Arena("Hell", Position(146, 432, 7), Position(149, 432, 7), 1, Position(146, 427, 7))
arena:addPlayerPosition(Position(150, 438, 7))
arena:addWaves(unpack(waves))
arena:setJokerCreature("Bug")
arena:setDelayWaves(5000)
arena:setRewardCallback(rewardPlayers)
arena:setCheckCallback(checkPlayer)
arena:setSpawnCallback(spawnBroadcast)
arena:setWaveclearCallback(waveClear)
arena:setJokerdeathCallback(jokerDeath)
arena:setStartCallback(arenaStart)
arena:setThinkCallback(arenaThink)
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
if item:getId() == config.levers[1] then
local ret = arena:useLever(player)
if ret then
item:transform(config.levers[2])
else
item:getPosition():sendMagicEffect(CONST_ME_POFF)
end
elseif item:getId() == config.levers[2] then
item:transform(config.levers[1])
end
return true
end
<event type="death" name="ArenaEvent" script="arenaevent.lua"/>
<event type="death" name="JokerDeath" script="jokerdeath.lua"/>
<action uniqueid="????" script="monsterarena/arenaone.lua" />
local waves = {
[1] = Wave({
["Rat"] = 1,
}),
[2] = Wave({
["Cave Rat"] = 2,
}),
}
local config = {
levers = {1945, 1946},
}
function rewardPlayers(player, arena)
player:addItem(2160, 100)
player:setStorageValue(2101, 1)
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Congratulations, you finished the arena " .. arena.name .. ".")
return true
end
function checkPlayer(player)
if player:getStorageValue(2101) <= 0 then
return true
else
return false
end
end
function spawnBroadcast(player, waveid, arena)
player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Spawning wave " .. waveid .. ".")
return true
end
function waveClear(player, waveid, arena)
player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "You cleared wave " .. waveid .. ".")
if player:getMaxHealth()-player:getHealth() > 0 then
player:addHealth(player:getMaxHealth()-player:getHealth())
end
return true
end
function jokerDeath(player, waveid, arena)
player:say("MUAHAHAHA", TALKTYPE_MONSTER_SAY, false, player, arena.position)
end
function arenaStart(player, arena)
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You have entered the arena " .. arena.name .. ".")
end
function arenaThink(arena, interval)
local players = arena:getPlayersInside()
if #players == 0 then
arena:reset()
else
for i, player in ipairs(players) do
player:addHealth(-50)
end
end
end
local arena = Arena("whatever", Position(898, 958, 7), Position(898, 964, 6), 3, Position(898, 965, 6))
arena:addPlayerPosition(Position(150, 438, 7))
arena:addWaves(unpack(waves))
arena:setJokerCreature("Bug")
arena:setDelayWaves(5000)
arena:setRewardCallback(rewardPlayers)
arena:setCheckCallback(checkPlayer)
arena:setSpawnCallback(spawnBroadcast)
arena:setWaveclearCallback(waveClear)
arena:setJokerdeathCallback(jokerDeath)
arena:setStartCallback(arenaStart)
arena:setThinkCallback(arenaThink)
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
if item:getId() == config.levers[1] then
local ret = arena:useLever(player)
if ret then
item:transform(config.levers[2])
else
item:getPosition():sendMagicEffect(CONST_ME_POFF)
end
elseif item:getId() == config.levers[2] then
item:transform(config.levers[1])
end
return true
end
Lua Script Error: [Test Interface]
data/actions/scripts/monsterarena/arenaone.lua
data/actions/scripts/monsterarena/arenaone.lua:2: attempt to call global 'Wave' (a nil value)
stack traceback:
[C]: in function 'Wave'
data/actions/scripts/monsterarena/arenaone.lua:2: in main chunk
[Warning - Event::checkScript] Can not load script: scripts/monsterarena/arenaone.lua
The lib should be installed here:Hello guys! i've had a problem when installing this.
So i've added the lib data/creaturescripts/lib/arena.lua
i've added Arenaevent.lua and Jokerdeath.lua to creaturescripts/script aswell as XML file.
i've added the code in second post to action/scripts/arenaone.lua
aswell as actions.xml
Code:<action uniqueid="????" script="monsterarena/arenaone.lua" />
here is action script ( just changed the positions really for now )
Code:local waves = { [1] = Wave({ ["Rat"] = 1, }), [2] = Wave({ ["Cave Rat"] = 2, }), } local config = { levers = {1945, 1946}, } function rewardPlayers(player, arena) player:addItem(2160, 100) player:setStorageValue(2101, 1) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Congratulations, you finished the arena " .. arena.name .. ".") return true end function checkPlayer(player) if player:getStorageValue(2101) <= 0 then return true else return false end end function spawnBroadcast(player, waveid, arena) player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Spawning wave " .. waveid .. ".") return true end function waveClear(player, waveid, arena) player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "You cleared wave " .. waveid .. ".") if player:getMaxHealth()-player:getHealth() > 0 then player:addHealth(player:getMaxHealth()-player:getHealth()) end return true end function jokerDeath(player, waveid, arena) player:say("MUAHAHAHA", TALKTYPE_MONSTER_SAY, false, player, arena.position) end function arenaStart(player, arena) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You have entered the arena " .. arena.name .. ".") end function arenaThink(arena, interval) local players = arena:getPlayersInside() if #players == 0 then arena:reset() else for i, player in ipairs(players) do player:addHealth(-50) end end end local arena = Arena("whatever", Position(898, 958, 7), Position(898, 964, 6), 3, Position(898, 965, 6)) arena:addPlayerPosition(Position(150, 438, 7)) arena:addWaves(unpack(waves)) arena:setJokerCreature("Bug") arena:setDelayWaves(5000) arena:setRewardCallback(rewardPlayers) arena:setCheckCallback(checkPlayer) arena:setSpawnCallback(spawnBroadcast) arena:setWaveclearCallback(waveClear) arena:setJokerdeathCallback(jokerDeath) arena:setStartCallback(arenaStart) arena:setThinkCallback(arenaThink) function onUse(player, item, fromPosition, target, toPosition, isHotkey) if item:getId() == config.levers[1] then local ret = arena:useLever(player) if ret then item:transform(config.levers[2]) else item:getPosition():sendMagicEffect(CONST_ME_POFF) end elseif item:getId() == config.levers[2] then item:transform(config.levers[1]) end return true end
and here is error i get in console when i start up the server
Code:Lua Script Error: [Test Interface] data/actions/scripts/monsterarena/arenaone.lua data/actions/scripts/monsterarena/arenaone.lua:2: attempt to call global 'Wave' (a nil value) stack traceback: [C]: in function 'Wave' data/actions/scripts/monsterarena/arenaone.lua:2: in main chunk [Warning - Event::checkScript] Can not load script: scripts/monsterarena/arenaone.lua
Would be awesome if you could help a lost soul out @Mkalo
Yes, its true issue, if player run in the area the monsters dont appersHey, players are stuck there, I dont know reproduce, but 4 players was stucked.
The monsters dont appears
BUMPYes, its true issue, if player run in the area the monsters dont appers
Lua Script Error: [Test Interface]
data/actions/scripts/levers/arenalever1.lua
data/actions/scripts/levers/arenalever1.lua:24: attempt to index global 'player' (a nil value)
stack traceback:
[C]: in function '__index'
data/actions/scripts/levers/arenalever1.lua:24: in main chunk
[C]: in function 'reload'
data/talkactions/scripts/reload.lua:73: in function <data/talkactions/scripts/reload.lua:56>
[Warning - Event::checkScript] Can not load script: scripts/levers/arenalever1.lua
data/actions/scripts/levers/arenalever1.lua:29: 'end' expected (to close 'if' at line 24) near 'function'
local waves = {
[1] = Wave({
["demon skeleton"] = 3,
}),
[2] = Wave({
["Dragon"] = 1,
}),
[3] = Wave({
["Dragon lord"] = 1,
}),
}
local config = {
levers = {10029, 10030},
}
function rewardPlayers(player, arena)
player:addItem(2160, 1)
player:setStorageValue(2000, 1)
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Felicidades! Terminaste la arena " .. arena.name .. ".")
return true
end
if player:getStorageValue(2000) <= 0 then
return true
else
return false
end
function checkPlayer(player)
if player:getStorageValue(2000) <= 0 then
return true
else
return true
end
end
function spawnBroadcast(player, waveid, arena)
player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Sumoneada ola " .. waveid .. ".")
return true
end
function waveClear(player, waveid, arena)
player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Has pasado la ola " .. waveid .. ".")
if player:getMaxHealth()-player:getHealth() > 0 then
player:addHealth(player:getMaxHealth()-player:getHealth())
end
if player:getMaxMana()-player:getMana() > 0 then
player:addMana(player:getMaxMana()-player:getMana())
end
return true
end
function jokerDeath(player, waveid, arena)
player:say("MUAHAHAHA", TALKTYPE_MONSTER_SAY, false, player, arena.position)
end
function arenaStart(player, arena)
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Has entrado a la arena " .. arena.name .. ".")
end
function arenaThink(arena, interval)
local players = arena:getPlayersInside()
if #players == 0 then
arena:reset()
else
for i, player in ipairs(players) do
player:addHealth(-50)
end
end
end
local arena = Arena("Hell", Position(60, 188, 6), Position(1000, 1000, 7), 1, Position(60, 192, 6))
arena:addPlayerPosition(Position(60, 192, 6), 50)
arena:addWaves(unpack(waves))
--arena:setJokerCreature("bug")
arena:setDelayWaves(5000)
arena:setDelayEnd(5000)
arena:setRewardCallback(rewardPlayers)
arena:setCheckCallback(checkPlayer)
arena:setSpawnCallback(spawnBroadcast)
arena:setWaveclearCallback(waveClear)
--arena:setJokerdeathCallback(jokerDeath)
--Arena:setCheckCallback(player)
arena:setStartCallback(arenaStart)
arena:setThinkCallback(arenaThink)
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
if item:getId() == config.levers[1] then
local ret = arena:useLever(player)
if ret then
item:transform(config.levers[2])
else
item:getPosition():sendMagicEffect(CONST_ME_POFF)
end
elseif item:getId() == config.levers[2] then
item:transform(config.levers[1])
end
return true
end