Ir para conteúdo
  • 0

Erro Nesse Script


MonsterOt

Pergunta

ta dando esse erro:

 

[Error - TalkAction Interface]

data/talkactions/scripts/bomb.lua:onSay

Description:

data/lib/032-position.lua:2: attempt to index global 'position' <a nil value>

stack traceback:

data/lib/032-position.lua:2: in function 'isInRange'

data/talkactions/script/bomb.lua:203: in function <data/talkactions/scripts/bomb.lua:202>

 

nesse script:

 

function getPlayersInRange(position, radiusx, radiusy)

local creaturesList = {}

for x = -radiusx, radiusx do

for y = -radiusy, radiusy do

if not (x == 0 and y == 0) then

local creature = getTopCreature({x = position.x+x, y = position.y+y, z = position.z})

if creature.type == 1 then

table.insert(creaturesList, creature.uid)

end

end

end

end

 

local creature = getTopCreature(position)

if creature.type == 1 then

if not(table.find(creaturesList, creature.uid)) then

table.insert(creaturesList, creature.uid)

end

end

return creaturesList

end

 

function isPositionInArray(haystack, needle)

for i = 1, #haystack do

if haystack.x == needle.x and haystack.y == needle.y and haystack.z == needle.z then

return true

end

end

return false

end

 

local t = {

from = {x=168, y=28, z=7},

to = {x=182, y=38, z=7},

storage = {

placed = 10001,

max = 10002,

radius = 10003

},

delay = 3000,

bombID = 10570,

effect = CONST_ME_FIREAREA,

blockID = 9421,

text = "BOOM!",

temple = {x=125, y=31, z=7},

exceptions = {

{x=168, y=28, z=7},

{x=169, y=28, z=7},

{x=168, y=27, z=7},

 

{x=168, y=37, z=7},

{x=169, y=37, z=7},

{x=168, y=36, z=7},

 

{x=181, y=28, z=7},

{x=182, y=28, z=7},

{x=181, y=27, z=7},

 

{x=181, y=181, z=7},

{x=182, y=37, z=7},

{x=181, y=36, z=7}

}

}

function reset()

local dummy = doCreateItem(10570, 1, {x=175,y=33,z=7})

for x = t.from.x, t.to.x do

for y = t.from.y, t.to.y do

local pos = {x=x,y=y,z=t.from.z}

local i1, i2, i3 = getTileItemById(pos, 8304).uid, getTileItemById(pos, 8306).uid, getTileItemById(pos, 8310).uid

if i1 > 0 then

doRemoveItem(i1)

end

if i2 > 0 then

doRemoveItem(i2)

end

if i3 > 0 then

doRemoveItem(i3)

end

if queryTileAddThing(dummy, pos, 4) == RETURNVALUE_NOERROR and not isPositionInArray(t.exceptions, pos) then

doCreateItem(t.blockID, 1, pos)

end

end

end

doRemoveItem(dummy)

end

 

local function boom(pos, cid)

local v = getTileItemById(pos, t.bombID).uid

if isPlayer(cid) and isInRange(getThingPos(cid), t.from, t.to) then

setPlayerStorageValue(cid, t.storage.placed, getPlayerStorageValue(cid, t.storage.placed) - 1)

doCreatureSay(cid, t.text, TALKTYPE_ORANGE_2, false, nil, pos)

doSendMagicEffect(pos, t.effect)

local c = getTopCreature(pos).uid

if isPlayer© and isInRange(getThingPos©, t.from, t.to) then

doSendMagicEffect(pos, CONST_ME_GIFT_WRAPS)

doTeleportThing(c, t.temple)

doSendMagicEffect(t.temple, CONST_ME_MORTAREA)

local n1, n2 = getPlayerName©, getPlayerName(cid)

doBroadcastMessage(n1==n2 and n1 .. " killed " .. (getPlayerSex© == 0 and "her" or "him") .. "self!" or n1 .. " was killed by " .. n2 .. " in bomberman!", MESSAGE_STATUS_WARNING)

local a = getPlayersInRange({x=125, y=31, z=7}, 7, 5)

if #a < 2 then

doBroadcastMessage(getPlayerName(a[1]) .. " has won the bomberman match!", MESSAGE_STATUS_WARNING)

doPlayerAddExperience(a[1], 15000)

doTeleportThing(a[1], t.temple)

doSendMagicEffect(t.temple, CONST_ME_FIREWORK_RED)

reset()

reset()

end

else

local b = getTileItemById(pos, t.blockID).uid

if b > 0 then

doSendMagicEffect(pos, CONST_ME_BLOCKHIT)

doRemoveItem(b)

local r = math.random(10)

if r < 4 then

doCreateItem(r==1 and 8304 or r==2 and 8306 or r==3 and 8310, 1, _pos)

end

end

end

local N, E, W, S, l = 1, 1, 1, 1, getPlayerStorageValue(cid, t.storage.radius)

function loopDir(dir)

local _pos = {x=pos.x+(dir=="E" and E or dir=="W" and -W or 0), y=pos.y+(dir=="N" and -N or dir=="S" and S or 0), z=pos.z}

if queryTileAddThing(v, _pos, 4) == RETURNVALUE_NOERROR or getTileItemById(_pos, t.blockID).uid > 0 then

doSendMagicEffect(_pos, t.effect)

local c = getTopCreature(_pos).uid

if isPlayer© and isInRange(getThingPos©, t.from, t.to) then

doSendMagicEffect(_pos, CONST_ME_GIFT_WRAPS)

doTeleportThing(c, t.temple)

doSendMagicEffect(t.temple, CONST_ME_MORTAREA)

local n1, n2 = getPlayerName©, getPlayerName(cid)

doBroadcastMessage(n1==n2 and n1 .. " killed " .. (getPlayerSex© == 0 and "her" or "him") .. "self in bomberman!" or n1 .. " was killed by " .. n2 .. " in bomberman!", MESSAGE_STATUS_WARNING)

local a = getPlayersInRange({x=131, y=25, z=7}, 7, 5)

if #a < 2 then

doBroadcastMessage(getPlayerName(a[1]) .. " has won the bomberman match!", MESSAGE_STATUS_WARNING)

doPlayerAddExperience(a[1], 15000)

doTeleportThing(a[1], t.temple)

doSendMagicEffect(t.temple, CONST_ME_FIREWORK_RED)

reset()

reset()

return "endgame"

end

else

local b = getTileItemById(_pos, t.blockID).uid

if b > 0 then

doSendMagicEffect(_pos, CONST_ME_BLOCKHIT)

doRemoveItem(b)

local r = math.random(10)

if r < 4 then

doCreateItem(r==1 and 8304 or r==2 and 8306 or r==3 and 8310, 1, _pos)

end

return false

end

end

elseif queryTileAddThing(v, _pos, 4) == 3 then

return false

end

return true

end

while N <= l do

local q = loopDir("N")

if q == "endgame" then

return doRemoveItem(v, 1)

elseif not q then

break

else

N = N + 1

end

end

while E <= l do

local q = loopDir("E")

if q == "endgame" then

return doRemoveItem(v, 1)

elseif not q then

break

else

E = E + 1

end

end

while W <= l do

local q = loopDir("W")

if q == "endgame" then

return doRemoveItem(v, 1)

elseif not q then

break

else

W = W + 1

end

end

while S <= l do

local q = loopDir("S")

if q == "endgame" then

return doRemoveItem(v, 1)

elseif not q then

break

else

S = S + 1

end

end

end

doRemoveItem(v, 1)

end

function onSay(cid, words, param, channel)

if isInRange(getThingPos(cid), t.from, t.to) then

setPlayerStorageValue(cid, t.storage.placed, math.max(getPlayerStorageValue(cid, t.storage.placed), 0))

setPlayerStorageValue(cid, t.storage.max, math.max(getPlayerStorageValue(cid, t.storage.max), 1))

setPlayerStorageValue(cid, t.storage.radius, math.max(getPlayerStorageValue(cid, t.storage.radius), 1))

if getPlayerStorageValue(cid, t.storage.placed) < getPlayerStorageValue(cid, t.storage.max) then

doCreateItem(t.bombID, 1, getThingPos(cid))

addEvent(boom, t.delay, getThingPos(cid), cid)

setPlayerStorageValue(cid, t.storage.placed, getPlayerStorageValue(cid, t.storage.placed) + 1)

end

return true

end

end

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

é porque no seu server não tem a função 'isInRange' kct

 

Vai em Data/lib/032-position.lua e adc essa função:

 

function isInRange(position, fromPosition, toPosition)
return (position.x >= fromPosition.x and position.y >= fromPosition.y and position.z >= fromPosition.z and position.x <= toPosition.x and position.y <= toPosition.y and position.z <= toPosition.z)
end

Link para o comentário
Compartilhar em outros sites

  • 0

Nossa, e nao é que FUNCINOU??

 

Vou colaborar e te dar rep+ para vc chegar no 1000 logo!!

 

tu merece cara SE É FODA!!!

Editado por MonsterOt
Link para o comentário
Compartilhar em outros sites

  • 0

vixi agora ta com erro de a bomba nao destruir as pedras...

 

e quando alguem morre ainda continua na arena...

 

quando a bomba explode ela nao some...

 

nao mostra a area de explosao da bomba...

 

ta imcompleto esse sistema hein...

 

alguem sabe arrumar?

Editado por MonsterOt
Link para o comentário
Compartilhar em outros sites

  • 0

@Vodkart

 

[9:45:47.378] [Error - TalkAction Interface] 
[9:45:47.378] In a timer event called from: 
[9:45:47.378] data/talkactions/scripts/bomb.lua:onSay
[9:45:47.378] Description: 
[9:45:47.378] (luaGetCreatureName) Creature not found

[9:45:47.378] [Error - TalkAction Interface] 
[9:45:47.378] In a timer event called from: 
[9:45:47.378] data/talkactions/scripts/bomb.lua:onSay
[9:45:47.378] Description: 
[9:45:47.378] data/talkactions/scripts/bomb.lua:133: attempt to concatenate a boolean value
[9:45:47.378] stack traceback:
[9:45:47.378] 	data/talkactions/scripts/bomb.lua:133: in function 'loopDir'
[9:45:47.378] 	data/talkactions/scripts/bomb.lua:178: in function <data/talkactions/scripts/bomb.lua:87>

 

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...