Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Estou com um erro no meu cassino system, ele funciona normal mas as vezes da esse erro no distro

 

Citar

[20:49:46.454] [Error - Action Interface]
[20:49:46.456] data/actions/scripts/slotmachine.lua:onUse
[20:49:46.458] Description:
[20:49:46.459] data/actions/scripts/slotmachine.lua:80: attempt to call global 'isWalkable' (a nil value)
[20:49:46.464] stack traceback:
[20:49:46.465]  data/actions/scripts/slotmachine.lua:80: in function <data/actions/scripts/slotmachine.lua:71>

 

 

Script:

 

local coins = 2145
local cost = 10
local playing = createConditionObject(CONDITION_INFIGHT)
setConditionParam(playing, CONDITION_PARAM_TICKS, 3000)


local function checkPrize(array)
local prize = 0
if array[1] == array[2] and array[2] == array[3] and array[1] == 9 then --3n iguais = 9
return "jackpot"
end
if array[1] == array[2] and array[1] == array[3] then -- 3n iguais
return 20 * array[1]
end
if array[1] == array[2] or array[1] == array[3] then
return 8 * array[1]
end
if array[2] == array[3] then
return 8 * array[2]
end	
if (array[1] == array[2] - 1 and array[1] == array[3] - 2) or (array[1] == array[2] + 1 and array[1] == array[3] + 2) then
return (array[1] + array[2] + array[3]) * 9
end
return 0
end


    function getJackpotEffect()
        local it = math.random(1,5)
        if it == 1 then
        return 27
        elseif it == 2 then
        return 28
        elseif it == 3 then
        return 29
        elseif it == 4 then
        return 84
        else
        return 85
        end
    end

    function sendJackpotEffect(pos)
        local pos1 = {x = pos.x + 2, y = pos.y, z = pos.z}
        local pos2 = {x = pos.x + 1, y = pos.y + 1, z = pos.z}
        local pos3 = {x = pos.x, y = pos.y + 2, z = pos.z}
        local pos4 = {x = pos.x - 1, y = pos.y + 1, z = pos.z}
        local pos5 = {x = pos.x - 2, y = pos.y, z = pos.z}
        local pos6 = {x = pos.x - 1, y = pos.y - 1, z = pos.z}
        local pos7 = {x = pos.x, y = pos.y - 2, z = pos.z}
        local pos8 = {x = pos.x + 1, y = pos.y - 1, z = pos.z}
        doSendDistanceShoot(pos, pos1, 39)
        doSendDistanceShoot(pos, pos2, 39)
        doSendDistanceShoot(pos, pos3, 39)
        doSendDistanceShoot(pos, pos4, 39)
        doSendDistanceShoot(pos, pos5, 39)
        doSendDistanceShoot(pos, pos6, 39)
        doSendDistanceShoot(pos, pos7, 39)
        doSendDistanceShoot(pos, pos8, 39)
        doSendMagicEffect(pos1, getJackpotEffect())
        doSendMagicEffect(pos2, getJackpotEffect())
        doSendMagicEffect(pos3, getJackpotEffect())
        doSendMagicEffect(pos4, getJackpotEffect())
        doSendMagicEffect(pos5, getJackpotEffect())
        doSendMagicEffect(pos6, getJackpotEffect())
        doSendMagicEffect(pos7, getJackpotEffect())
        doSendMagicEffect(pos8, getJackpotEffect())
    end
        

function onUse(cid, item, frompos, item2, topos)
local coinss = 23254

if getPlayerGroupId(cid) == 11 then
return true
end

if topos.y + 1 ~= getThingPos(cid).y or topos.x ~= getThingPos(cid).x then
local poss = {x = topos.x, y = topos.y + 1, z = topos.z}
if isWalkable(poss, cid, 0, 0) then
doPushCreature(cid, getDirectionTo(getThingPos(cid), poss), 1, 0)
if not (getThingPos(cid).x == topos.x and getThingPos(cid).y == topos.y + 1) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[Slot Machine] Por favor, fique na frente da máquina de entalhe para jogar!.")
return true
end
doCreatureSetLookDir(cid, 0)
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[Slot Machine] Por favor, fique na frente da máquina de entalhe para jogar!.")
return true
end
end
doCreatureSetLookDir(cid, 0)
if getPlayerNoMove(cid) == true then
return true
end
if getPlayerItemCount(cid,coins) < cost then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[Slot Machine] Você não tem small diamond suficiente para jogar caça-níqueis.")
return true
end
local mymoney = getPlayerItemCount(cid,coins)
doPlayerRemoveItem(cid, coins, 10) 
doPlayerSetNoMove(cid, true)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[Slot Machine] Você empurrou a alavanca da máquina (-10 small diamonds).")
local a = item.itemid
doTransformItem(item2.uid, a + 1)
    local function doPullBack(pos)
    doTransformItem(getTileItemById(pos, a + 1).uid, a)
    end
addEvent(doPullBack, 500, topos)

    local function doPlay(cid, pos, first, second, third)

        doAddCondition(cid, playing)

        if first == 0 then
        firstplay = math.random(1, 9)
        doSendAnimatedText(pos, firstplay, 66)
        addEvent(doPlay, 900, cid, pos, firstplay, second, third)
        return true
        end

        if second == 0 then
        secondplay = math.random(1, 9)
        doSendAnimatedText(pos, secondplay, 66)
        addEvent(doPlay, 900, cid, pos, first, secondplay, third)
        return true
        end

        if third == 0 then
        thirdplay = math.random(1, 9)
        doSendAnimatedText(pos, thirdplay, 66)
        addEvent(doPlay, 900, cid, pos, first, second, thirdplay)
        return true
        end

	if checkPrize({first, second, third}) == "jackpot" then

        doSendAnimatedText(pos, "JACKPOT!", 180)
        sendJackpotEffect(getThingPos(cid))
        addEvent(doSendAnimatedText, 600, pos, "JACKPOT!", 66)
        addEvent(sendJackpotEffect, 600, getThingPos(cid))
        addEvent(doSendAnimatedText, 1400, pos, "JACKPOT!", 180)
        addEvent(sendJackpotEffect, 1400, getThingPos(cid))
        addEvent(doSendAnimatedText, 2200, pos, "JACKPOT!", 66)
        addEvent(sendJackpotEffect, 2200, getThingPos(cid))
        local ppos = getThingPos(cid)
        --local win = 100
        addEvent(doSendAnimatedText, 2500, ppos, "+100", 35)
        doPlayerAddItem(cid, coins,100)
        --addEvent(setPlayerStorageValue, 100, cid, coinss, win)
        addEvent(doPlayerSendTextMessage, 2500, cid, MESSAGE_STATUS_CONSOLE_BLUE, "[Slot Machine] Voce Ganhou 100 Small Diamonds.")
        addEvent(doPlayerSetNoMove, 2500, cid, false)

	
	elseif checkPrize({first, second, third}) == 0 then

        doSendAnimatedText(pos, "FAIL", 180)
        doPlayerSetNoMove(cid, false)

	elseif checkPrize({first, second, third}) <= 30 then

        doSendAnimatedText(pos, "GOOD", 215)
        local ppos = getThingPos(cid)
	local prize = checkPrize({first, second, third})
        --local win = 50
        addEvent(doSendAnimatedText, 500, ppos, "+50", 35)
        
        --addEvent(setPlayerStorageValue, 50, cid, coinss, win)
        doPlayerAddItem(cid, coins,50)
        addEvent(doPlayerSendTextMessage, 500, cid, MESSAGE_STATUS_CONSOLE_BLUE, "[Slot Machine] Voce Ganhou 50 Small Diamonds.")
        addEvent(doPlayerSetNoMove, 500, cid, false)

	elseif checkPrize({first, second, third}) <= 65 then

        doSendAnimatedText(pos, "GREAT", 210)
        local ppos = getThingPos(cid)
	local prize = checkPrize({first, second, third})
        --local win = 60
        addEvent(doSendAnimatedText, 500, ppos, "+60", 35)
        
        --addEvent(setPlayerStorageValue, 60, cid, coinss, win)
        doPlayerAddItem(cid, coins,60)
        addEvent(doPlayerSendTextMessage, 500, cid, MESSAGE_STATUS_CONSOLE_BLUE, "[Slot Machine] Voce Ganhou 60 Small Diamonds.")
        addEvent(doPlayerSetNoMove, 500, cid, false)

	else

        doSendAnimatedText(pos, "EXCELLENT", 35)
        local ppos = getThingPos(cid)
	local prize = checkPrize({first, second, third})
        --local win = 80
        addEvent(doSendAnimatedText, 500, ppos, "+80", 35)
        --addEvent(setPlayerStorageValue, 80, cid, coinss, win)
        doPlayerAddItem(cid, coins,80)
        addEvent(doPlayerSendTextMessage, 500, cid, MESSAGE_STATUS_CONSOLE_BLUE, "[Slot Machine] Voce Ganhou 80 Small Diamonds.")
        addEvent(doPlayerSetNoMove, 500, cid, false)
	end
	return true
	end

doAddCondition(cid, playing)
addEvent(doPlay, 850, cid, topos, 0, 0, 0)
return true
end

 

alguém?

yPAPbVf.png

 Servidor de Dragon Ball Online - dbsbattleofgods.com

Link para o post
Compartilhar em outros sites

Tente substituir por:

 

local coins = 2145
local cost = 10
local playing = createConditionObject(CONDITION_INFIGHT)
setConditionParam(playing, CONDITION_PARAM_TICKS, 3000)


local function checkPrize(array)
local prize = 0
if array[1] == array[2] and array[2] == array[3] and array[1] == 9 then --3n iguais = 9
return "jackpot"
end
if array[1] == array[2] and array[1] == array[3] then -- 3n iguais
return 20 * array[1]
end
if array[1] == array[2] or array[1] == array[3] then
return 8 * array[1]
end
if array[2] == array[3] then
return 8 * array[2]
end 
if (array[1] == array[2] - 1 and array[1] == array[3] - 2) or (array[1] == array[2] + 1 and array[1] == array[3] + 2) then
return (array[1] + array[2] + array[3]) * 9
end
return 0
end


    function getJackpotEffect()
        local it = math.random(1,5)
        if it == 1 then
        return 27
        elseif it == 2 then
        return 28
        elseif it == 3 then
        return 29
        elseif it == 4 then
        return 84
        else
        return 85
        end
    end

    function sendJackpotEffect(pos)
        local pos1 = {x = pos.x + 2, y = pos.y, z = pos.z}
        local pos2 = {x = pos.x + 1, y = pos.y + 1, z = pos.z}
        local pos3 = {x = pos.x, y = pos.y + 2, z = pos.z}
        local pos4 = {x = pos.x - 1, y = pos.y + 1, z = pos.z}
        local pos5 = {x = pos.x - 2, y = pos.y, z = pos.z}
        local pos6 = {x = pos.x - 1, y = pos.y - 1, z = pos.z}
        local pos7 = {x = pos.x, y = pos.y - 2, z = pos.z}
        local pos8 = {x = pos.x + 1, y = pos.y - 1, z = pos.z}
        doSendDistanceShoot(pos, pos1, 39)
        doSendDistanceShoot(pos, pos2, 39)
        doSendDistanceShoot(pos, pos3, 39)
        doSendDistanceShoot(pos, pos4, 39)
        doSendDistanceShoot(pos, pos5, 39)
        doSendDistanceShoot(pos, pos6, 39)
        doSendDistanceShoot(pos, pos7, 39)
        doSendDistanceShoot(pos, pos8, 39)
        doSendMagicEffect(pos1, getJackpotEffect())
        doSendMagicEffect(pos2, getJackpotEffect())
        doSendMagicEffect(pos3, getJackpotEffect())
        doSendMagicEffect(pos4, getJackpotEffect())
        doSendMagicEffect(pos5, getJackpotEffect())
        doSendMagicEffect(pos6, getJackpotEffect())
        doSendMagicEffect(pos7, getJackpotEffect())
        doSendMagicEffect(pos8, getJackpotEffect())
    end
        

function onUse(cid, item, frompos, item2, topos)
local coinss = 23254

if getPlayerGroupId(cid) == 11 then
return true
end

if topos.y + 1 ~= getThingPos(cid).y or topos.x ~= getThingPos(cid).x then
local poss = {x = topos.x, y = topos.y + 1, z = topos.z}
if isWalkable(poss, player, 0, 0) then
local cid = player.uid
doPushCreature(player.id, getDirectionTo(getThingPos(cid), poss), 1, 0)
if not (getThingPos(cid).x == topos.x and getThingPos(cid).y == topos.y + 1) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[Slot Machine] Por favor, fique na frente da máquina de entalhe para jogar!.")
return true
end
doCreatureSetLookDir(cid, 0)
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[Slot Machine] Por favor, fique na frente da máquina de entalhe para jogar!.")
return true
end
end
doCreatureSetLookDir(cid, 0)
if getPlayerNoMove(cid) == true then
return true
end
if getPlayerItemCount(cid,coins) < cost then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[Slot Machine] Você não tem small diamond suficiente para jogar caça-níqueis.")
return true
end
local mymoney = getPlayerItemCount(cid,coins)
doPlayerRemoveItem(cid, coins, 10) 
doPlayerSetNoMove(cid, true)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[Slot Machine] Você empurrou a alavanca da máquina (-10 small diamonds).")
local a = item.itemid
doTransformItem(item2.uid, a + 1)
    local function doPullBack(pos)
    doTransformItem(getTileItemById(pos, a + 1).uid, a)
    end
addEvent(doPullBack, 500, topos)

    local function doPlay(cid, pos, first, second, third)

        doAddCondition(cid, playing)

        if first == 0 then
        firstplay = math.random(1, 9)
        doSendAnimatedText(pos, firstplay, 66)
        addEvent(doPlay, 900, cid, pos, firstplay, second, third)
        return true
        end

        if second == 0 then
        secondplay = math.random(1, 9)
        doSendAnimatedText(pos, secondplay, 66)
        addEvent(doPlay, 900, cid, pos, first, secondplay, third)
        return true
        end

        if third == 0 then
        thirdplay = math.random(1, 9)
        doSendAnimatedText(pos, thirdplay, 66)
        addEvent(doPlay, 900, cid, pos, first, second, thirdplay)
        return true
        end

    if checkPrize({first, second, third}) == "jackpot" then

        doSendAnimatedText(pos, "JACKPOT!", 180)
        sendJackpotEffect(getThingPos(cid))
        addEvent(doSendAnimatedText, 600, pos, "JACKPOT!", 66)
        addEvent(sendJackpotEffect, 600, getThingPos(cid))
        addEvent(doSendAnimatedText, 1400, pos, "JACKPOT!", 180)
        addEvent(sendJackpotEffect, 1400, getThingPos(cid))
        addEvent(doSendAnimatedText, 2200, pos, "JACKPOT!", 66)
        addEvent(sendJackpotEffect, 2200, getThingPos(cid))
        local ppos = getThingPos(cid)
        --local win = 100
        addEvent(doSendAnimatedText, 2500, ppos, "+100", 35)
        doPlayerAddItem(cid, coins,100)
        --addEvent(setPlayerStorageValue, 100, cid, coinss, win)
        addEvent(doPlayerSendTextMessage, 2500, cid, MESSAGE_STATUS_CONSOLE_BLUE, "[Slot Machine] Voce Ganhou 100 Small Diamonds.")
        addEvent(doPlayerSetNoMove, 2500, cid, false)

    
    elseif checkPrize({first, second, third}) == 0 then

        doSendAnimatedText(pos, "FAIL", 180)
        doPlayerSetNoMove(cid, false)

    elseif checkPrize({first, second, third}) <= 30 then

        doSendAnimatedText(pos, "GOOD", 215)
        local ppos = getThingPos(cid)
    local prize = checkPrize({first, second, third})
        --local win = 50
        addEvent(doSendAnimatedText, 500, ppos, "+50", 35)
        
        --addEvent(setPlayerStorageValue, 50, cid, coinss, win)
        doPlayerAddItem(cid, coins,50)
        addEvent(doPlayerSendTextMessage, 500, cid, MESSAGE_STATUS_CONSOLE_BLUE, "[Slot Machine] Voce Ganhou 50 Small Diamonds.")
        addEvent(doPlayerSetNoMove, 500, cid, false)

    elseif checkPrize({first, second, third}) <= 65 then

        doSendAnimatedText(pos, "GREAT", 210)
        local ppos = getThingPos(cid)
    local prize = checkPrize({first, second, third})
        --local win = 60
        addEvent(doSendAnimatedText, 500, ppos, "+60", 35)
        
        --addEvent(setPlayerStorageValue, 60, cid, coinss, win)
        doPlayerAddItem(cid, coins,60)
        addEvent(doPlayerSendTextMessage, 500, cid, MESSAGE_STATUS_CONSOLE_BLUE, "[Slot Machine] Voce Ganhou 60 Small Diamonds.")
        addEvent(doPlayerSetNoMove, 500, cid, false)

    else

        doSendAnimatedText(pos, "EXCELLENT", 35)
        local ppos = getThingPos(cid)
    local prize = checkPrize({first, second, third})
        --local win = 80
        addEvent(doSendAnimatedText, 500, ppos, "+80", 35)
        --addEvent(setPlayerStorageValue, 80, cid, coinss, win)
        doPlayerAddItem(cid, coins,80)
        addEvent(doPlayerSendTextMessage, 500, cid, MESSAGE_STATUS_CONSOLE_BLUE, "[Slot Machine] Voce Ganhou 80 Small Diamonds.")
        addEvent(doPlayerSetNoMove, 500, cid, false)
    end
    return true
    end

doAddCondition(cid, playing)
addEvent(doPlay, 850, cid, topos, 0, 0, 0)
return true
end

 

YDmXTU2.png

 

Entenda tudo sobre VPS, DEDICADOS & HOSPEDAGENS. => Clique aqui

Global Full Download 10.9x - TFS 1.2/FERUMBRAS/KRAILOS. => Clique aqui

 

Muitos querem aquilo que você tem, 
mas vão desistir quando souberem o preço que você pagou.

 

skype-favicon.png lu.lukinha

message-16.png [email protected]

Link para o post
Compartilhar em outros sites

Mesmo erro

 

Citar

[23:44:32.664] [Error - Action Interface]
[23:44:32.667] data/actions/scripts/slotmachine.lua:onUse
[23:44:32.669] Description:
[23:44:32.670] data/actions/scripts/slotmachine.lua:80: attempt to call global 'isWalkable' (a nil value)
[23:44:32.673] stack traceback:
[23:44:32.676]  data/actions/scripts/slotmachine.lua:80: in function <data/actions/scripts/slotmachine.lua:71>

 

Só que agora aparece toda hora antes fiquei uns 30m fazendo esse sistema e apareceu 2x

Editado por bringsz (veja o histórico de edições)

yPAPbVf.png

 Servidor de Dragon Ball Online - dbsbattleofgods.com

Link para o post
Compartilhar em outros sites
56 minutos atrás, bringsz disse:

Mesmo erro

 

 

Só que agora aparece toda hora antes fiquei uns 30m fazendo esse sistema e apareceu 2x

Qual TFS?

YDmXTU2.png

 

Entenda tudo sobre VPS, DEDICADOS & HOSPEDAGENS. => Clique aqui

Global Full Download 10.9x - TFS 1.2/FERUMBRAS/KRAILOS. => Clique aqui

 

Muitos querem aquilo que você tem, 
mas vão desistir quando souberem o preço que você pagou.

 

skype-favicon.png lu.lukinha

message-16.png [email protected]

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por LeoTK
      Salve galera neste tópico irei postar algumas prints do mapa do servidor para quem queira acompanhar e quem sabe até utilizar de inspiração para mapear o seu NTO.
       
      #Att 11/08/2022

       
       
       
       
      Konoha (Em Desenvolvimento)
       
       
       
       
    • Por DiigooMix
      Como o título já diz, será que alguém possui sprite do hitto e se possível as transformações dele?
    • Por OmegaZero
      Olá gostaria que alguém me ajudasse com uma "scripting" não sei se é pela mesma, seria o seguinte uma determinada arma teria a chance de dar double hit e não sei oque fazer alguem poderia ajudar?

      OBS:não sei se é o local correto se não for mova, desculpe
    • Por Madarasenju
      Olá galera do Tibia King, queria por uns npc's no meu server que não tem função de trade nem nada do tipo, queria que eles só andassem como enfeite, Rep+ Pra quem me ajudar... grato desde já.
    • Por SilenceRoot
      A magia é assim o você usa a a magia e ela ficará ativado por 10 segundos, até que o inimigo lance a primeira magia ou todos de uma vez, quando ele lançar a primeira magia, ele não lhe acertará ou seja esquivando dela, e logo em seguida será teletransportado aleatoriamente ao redor do inimigo que usou.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo