Ir para conteúdo
  • Cadastre-se

PokeTibia - Erro TalkAction - move1.lua


Posts Recomendados

Fala galerinha beleza.

 

Estou com um problema no meu move1.lua

 

Irei deixar o ( move1.lua ) e uma print do erro.

 

A lembrando qui é Script de Poketibia.

Poketibia para OT 8.54

 

Este erro não esta prejudicando no jogo.

Mas para o servidor sim, Ele cria um Spam gigantesco.

Fazendo gerar muitas informações indevidas.

Como tenho muitos players online, O cliente da um erro em intervalo de 1~50 segundos

 

Segue a move1.lua

OBS: apesar de estar em PT o script, isto não afeta pois eu traduzi agora enquanto eu tentava solucionar o erro.

local msgs = {"use ", ""}

function doAlertReady(cid, id, movename, n, cd)
	if not isCreature(cid) then return true end
	local myball = getPlayerSlotItem(cid, 8)
	--[[if myball.itemid > 0 and getItemAttribute(myball.uid, cd) == "cd:"..id.."" then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getPokeballName(myball.uid).." - "..movename.." (m"..n..") is ready!")
	return true
	end--]]
	local p = getPokeballsInContainer(getPlayerSlotItem(cid, 3).uid)
	if not p or #p <= 0 then return true end
	for a = 1, #p do
		if getItemAttribute(p[a], cd) == "cd:"..id.."" then
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getPokeballName(p[a]).." - "..movename.." (m"..n..") is ready!")
		return true
		end
	end
end

function onSay(cid, words, param, channel)


	if param ~= "" then return true end
	if string.len(words) > 3 then return true end

	if #getCreatureSummons(cid) == 0 then
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce precisa de um pokemon para usar movimentos.")
	return 0
	end
                      --alterado v1.5
local mypoke = getCreatureSummons(cid)[1]

	if getCreatureCondition(cid, CONDITION_EXHAUST) then return true end
	if getCreatureName(mypoke) == "Evolution" then return true end

    if getCreatureName(mypoke) == "Ditto" or getCreatureName(mypoke) == "Shiny Ditto" then
       name = getPlayerStorageValue(mypoke, 1010)   --edited
    else
       name = getCreatureName(mypoke)
    end  
	
    --local name = getCreatureName(mypoke) == "Ditto" and getPlayerStorageValue(mypoke, 1010) or getCreatureName(mypoke)


local it = string.sub(words, 2, 3)
local move = movestable[name].move1
if getPlayerStorageValue(mypoke, 212123) >= 1 then
   cdzin = "cm_move"..it..""
else
   cdzin = "move"..it..""       --alterado v1.5
end

	if it == "2" then
		move = movestable[name].move2
	elseif it == "3" then
		move = movestable[name].move3
	elseif it == "4" then
		move = movestable[name].move4
	elseif it == "5" then
		move = movestable[name].move5
	elseif it == "6" then
		move = movestable[name].move6
	elseif it == "7" then
		move = movestable[name].move7
	elseif it == "8" then
		move = movestable[name].move8
	elseif it == "9" then
		move = movestable[name].move9
	elseif it == "10" then
		move = movestable[name].move10
	elseif it == "11" then
		move = movestable[name].move11
	elseif it == "12" then
		move = movestable[name].move12
	elseif it == "13" then
		move = movestable[name].move13
	end

	if not move then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Seus pokemon nao reconhece este movimento.")
	return true
	end
	
	if getPlayerLevel(cid) < move.level then
	   doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce precisa ter pelo menos nivel "..move.level.." para usar este movimento.")
	   return true
    end

	if getCD(getPlayerSlotItem(cid, 8).uid, cdzin) > 0 and getCD(getPlayerSlotItem(cid, 8).uid, cdzin) < (move.cd + 2) then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce tem que esperar "..getCD(getPlayerSlotItem(cid, 8).uid, cdzin).." segundos para usar "..move.name.." novamente.")
	return true
	end

	if getTileInfo(getThingPos(mypoke)).protection then
		doPlayerSendCancel(cid, "Seus pokemon nao pode usar se move enquanto na zona de proteccao.")
	return true
	end
	
   if getPlayerStorageValue(mypoke, 3894) >= 1 then
      return doPlayerSendCancel(cid, "Voce nao pode atacar, porque voce esta com medo") --alterado v1.3
   end
	                              --alterado v1.6                  
	if (move.name == "Team Slice" or move.name == "Team Claw") and #getCreatureSummons(cid) < 2 then       
	    doPlayerSendCancel(cid, "Seus pokemon precisa estar em uma equipe para o uso deste movimento!")
    return true
    end
                                                                     --alterado v1.7 \/\/\/
if isCreature(getCreatureTarget(cid)) and isInArray(specialabilities["evasion"], getCreatureName(getCreatureTarget(cid))) then 
   local target = getCreatureTarget(cid)                                                                                       
   if math.random(1, 100) <= passivesChances["Evasion"][getCreatureName(target)] then 
      if isCreature(getMasterTarget(target)) then   --alterado v1.6                                                                   
         doSendMagicEffect(getThingPos(target), 211)
         doSendAnimatedText(getThingPos(target), "TOO BAD", 215)                                
         doTeleportThing(target, getClosestFreeTile(target, getThingPos(mypoke)), false)
         doSendMagicEffect(getThingPos(target), 211)
         doFaceCreature(target, getThingPos(mypoke))    		
         return true       --alterado v1.6
      end
   end
end


if move.target == 1 then

	if not isCreature(getCreatureTarget(cid)) then
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce nao tem um alvo.")
	return 0
	end

	if getCreatureCondition(getCreatureTarget(cid), CONDITION_INVISIBLE) then
	return 0
	end

	if getCreatureHealth(getCreatureTarget(cid)) <= 0 then
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "este alvo ja foi eliminado.")
	return 0
	end

	if not isCreature(getCreatureSummons(cid)[1]) then
	return true
	end

	if getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid))) > move.dist then
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Aproxime-se do alvo para usar este movimento.")
	return 0
	end

	if not isSightClear(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), false) then
	return 0
	end
end

	local newid = 0

        if isSleeping(mypoke) or isSilence(mypoke) then  --alterado v1.5
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Desculpe, voce nao pode fazer isso agora.")
			return 0
		else
			newid = setCD(getPlayerSlotItem(cid, 8).uid, cdzin, move.cd)
		end
		
	doCreatureSay(cid, ""..getPokeName(mypoke)..", "..msgs[math.random(#msgs)]..""..move.name.."!", TALKTYPE_SAY)
	
    local summons = getCreatureSummons(cid) --alterado v1.6

	addEvent(doAlertReady, move.cd * 1000, cid, newid, move.name, it, cdzin)
	
	for i = 2, #summons do
       if isCreature(summons[i]) and getPlayerStorageValue(cid, 637501) >= 1 then
          docastspell(summons[i], move.name)        --alterado v1.6
       end
    end 

    docastspell(mypoke, move.name)
	doCreatureAddCondition(cid, playerexhaust)

	if useKpdoDlls then
		doUpdateCooldowns(cid)
	end

return 0
end

Imagem do erro no servidor.

 

PBh0rjI.png

 

Quem me ajuda ganha minha reputação.

Abrass e fiquem com deus.

Link para o post
Compartilhar em outros sites
  • 3 months later...

Também estou com esse erro alguém pode ajudar PF?

 

[07/02/2014 14:37:53] [Error - TalkAction Interface] 

[07/02/2014 14:37:53] data/talkactions/scripts/move1.lua:onSay
[07/02/2014 14:37:53] Description: 
[07/02/2014 14:37:53] (luaDoCreatureSetNoMove) Creature not found
 
MOVE1.LUA:

local msgs = {"use ", ""}

function doAlertReady(cid, id, movename, n, cd)
if not isCreature(cid) then return true end
local myball = getPlayerSlotItem(cid, 8)
if myball.itemid > 0 and getItemAttribute(myball.uid, cd) == "cd:"..id.."" then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getPokeballName(myball.uid).." - "..movename.." (m"..n..") is ready!")
return true
end
local p = getPokeballsInContainer(getPlayerSlotItem(cid, 3).uid)
if not p or #p <= 0 then return true end
for a = 1, #p do
if getItemAttribute(p[a], cd) == "cd:"..id.."" then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getPokeballName(p[a]).." - "..movename.." (m"..n..") is ready!")
return true
end
end
end

function onSay(cid, words, param, channel)


if param ~= "" then return true end
if string.len(words) > 3 then return true end

if #getCreatureSummons(cid) == 0 then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need a pokemon to use moves.")
return 0
end

if getCreatureCondition(getCreatureSummons(cid)[1], CONDITION_INVISIBLE) and not isGhostPokemon(getCreatureSummons(cid)[1]) then
return 0
end

local mypoke = getCreatureSummons(cid)[1]

if getCreatureCondition(cid, CONDITION_EXHAUST) then return true end
if getCreatureName(mypoke) == "Evolution" then return true end

local name = getCreatureName(mypoke) == "Ditto" and getPlayerStorageValue(mypoke, 1010) or getCreatureName(mypoke)

local it = string.sub(words, 2, 3)
local move = movestable[name].move1
local cdzin = "move"..it..""

if it == "2" then
move = movestable[name].move2
elseif it == "3" then
move = movestable[name].move3
elseif it == "4" then
move = movestable[name].move4
elseif it == "5" then
move = movestable[name].move5
elseif it == "6" then
move = movestable[name].move6
elseif it == "7" then
move = movestable[name].move7
elseif it == "8" then
move = movestable[name].move8
elseif it == "9" then
move = movestable[name].move9
elseif it == "10" then
move = movestable[name].move10
elseif it == "11" then
move = movestable[name].move11
elseif it == "12" then
move = movestable[name].move12
elseif it == "13" then
move = movestable[name].move13
end

if not move then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.")
return true
end

if getPlayerLevel(cid) < move.level then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need be atleast level "..move.level.." to use this move.")
return true

end

if getCD(getPlayerSlotItem(cid, 8).uid, cdzin) > 0 and getCD(getPlayerSlotItem(cid, 8).uid, cdzin) < (move.cd + 2) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have to wait "..getCD(getPlayerSlotItem(cid, 8).uid, cdzin).." seconds to use this move again.")
return 0
end

if getTileInfo(getThingPos(mypoke)).protection then
doPlayerSendCancel(cid, "Your pokemon cannot use moves while in protection zone.")
return 0
end


if move.target == 1 then

if not isCreature(getCreatureTarget(cid)) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don\'t have any targets.")
return 0
end

if getCreatureCondition(getCreatureTarget(cid), CONDITION_INVISIBLE) then
return 0
end

if getCreatureHealth(getCreatureTarget(cid)) <= 0 then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your have already defeated your target.")
return 0
end

if not isCreature(getCreatureSummons(cid)[1]) then
return true
end

if getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid))) > move.dist then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Get closer to the target to use this move.")
return 0
end

if not isSightClear(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), false) then
return 0
end
end

doCreatureSay(cid, ""..getPokeName(mypoke)..", "..msgs[math.random(#msgs)]..""..move.name.."!", TALKTYPE_SAY)

local newid = 0

if isSleeping(mypoke) then
newid = setCD(getPlayerSlotItem(cid, 8).uid, cdzin, 8)
doCreatureSay(mypoke, "zZzZ", TALKTYPE_MONSTER)
return 0
else
newid = setCD(getPlayerSlotItem(cid, 8).uid, cdzin, move.cd)
end

if move.name ~= "Metronome" then
doCreatureSay(mypoke, ""..string.upper(move.name).."!", TALKTYPE_MONSTER)
end

addEvent(doAlertReady, move.cd * 1000, cid, newid, move.name, it, cdzin)
docastspell(mypoke, move.name)
doCreatureAddCondition(cid, playerexhaust)

if useKpdoDlls then
doUpdateCooldowns(cid)
end

return 0
end

 

DO REP++

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

                                                                                           SE TE AJUDEI CLICA EM  :accept:, NÃO CUSTA NADA  ;D 

Atenciosamente

     xPollo                                         

Da Play No Reggaezin Ai Boy

http://www.mjbstudio.com/myspace/mjb_playlist/jamming.mp3
 

Link para o post
Compartilhar em outros sites
  • 4 months later...

[paste]UNUmpiEb[/paste]

 

 

Amigo isso que vc postou é para arrumar o erro? Pq tb estou com o mesmo erro deles.

Link para o post
Compartilhar em outros sites

Amigo isso que vc postou é para arrumar o erro? Pq tb estou com o mesmo erro deles.

 

Que tal testar? Provavelmente sim. Faz tanto tempo que postei isso que não lembro mais.

-"Supra Omnes Lux Lucis"

- Acima de todos brilha a Luz -

5VGnDyBz.png

Link para o post
Compartilhar em outros sites

Testei aqui e nao deu certto nao, foi só dar reload q nao parava de aparecer erros no console

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 amoxicilina
      Olá Kings, venho aqui trazer uma TalkAction pra você comprar premium account, sei que pode ser algo meio inútil por existir a store.
      Então vamos script:
       
       
    • Por Erimyth
      Fala galerinha eu estava e um amigo meu me pediu um script de health e mana por talkaction por MSN, fiz ele e resolvi postar-lo aqui no TK para a galera usar-lo.

      Vá em data > talkactions > talkactions.xml e adicione a seguinte tag:

      <talkaction words="!buyhealth;!buymana" event="script" value="buylife.lua">
      Agora vá até a pasta scripts dentro de talkactions, crie um arquivo chamado buylife.lua com isto dentro:
      -- [( Script created by Matheus for TibiaKing.com )] -- function onSay(cid, words, param) local health = 1000 -- Vida que será adicionada ao player após ele usar o comando! local mana = 1000 -- Mana que será adicionada ao player após ele usar o comando! local cost = 10000 -- Preço para você comprar mana ou health! if (words == "!buymana") then if (doPlayerRemoveMoney(cid, cost) == TRUE) then doCreatureAddMana(cid, mana) doSendMagicEffect(getCreaturePosition(cid), 12) else doPlayerSendCancel(cid, "Sorry, you need "..cost.." gold coins to buy mana.") return TRUE end elseif (words == "!buyhealth") then if (doPlayerRemoveMoney(cid, cost) == TRUE) then doCreatureAddHealth(cid, health) doSendMagicEffect(getCreaturePosition(cid), 12) else doPlayerSendCancel(cid, "Sorry, you need "..cost.." gold coins to buy mana.") end return TRUE end end
      Prontinho, espero que gostem, é um script bem simples mas pode ser útil para alguns.  
        Você gostou deste conteúdo!? Este conteúdo te ajudou!? Isso será realmente útil pra você!? Então, se possível, faça uma doação (de qualquer valor) que estará me ajudando também!  
    • Por Danihcv
      Bom galera, faz tempo que não posto um tutorial, então resolvi trazer esse, que apesar de ser simples tem utilidade pra algumas pessoas.
       
      Esse é um sistema que eu criei pra fazer com que o god possa alterar a visão dele pra como se fosse sempre dia ou pra visão de players normais.

      1°)Como funciona:
          Quando o GOD entrar no server, ele já vai estar com a visão de "sempre dia". Se ele quiser ver que nem os players normais, basta falar /light. Se ele quiser voltar a ver "sempre dia" basta falar novamente /light
       
      2°)Instalando o sistema:
       
         Primeiramente vá em data\creaturescripts e adicione essa tag ao arquivo creaturescripts.xml:
      <event type="login" name="GodLight" event="script" value="godLight.lua"/>    Agora va em data\creaturescripts\scripts abra o arquivo login.lua e adicione isso antes do ultimo return true:
      registerCreatureEvent(cid, "GodLight")    Agora ainda na pasta data\creaturescripts\scripts crie um arquivo chamado godLight.lua e coloque isso dentro:



       
       
         Agora va na pasta data\talkactions e adicione essa tag ao arquivo talkactions.xml:
      <talkaction words="/light" event="script" access="5" value="godLight.lua"/>    Agora va na pasta data\talkactions\scripts e crie um arquivo chamado godLight.lua e coloque isso dentro:



       
      Pronto! Seu sistema está instalado.
       
      Se vc quiser que qualquer pessoa possa usar esse sistema, basta fazer o seguinte:



       
      E ao invés de colocar a tag (que está aí em cima) em talkactions.xml, coloque essa:
      <talkaction words="/light" event="script" value="godLight.lua"/>
       
       
      E isso é tudo, pessoal!
      Um sistema simples mas que pra alguns tem bastante utilidade. Em breve trarei novos tutoriais! Se tiverem alguma sugestão, podem mandar por pm.
    • Por CaduGTX
      Olá, eu e um amigo fizemos esse script para limpar as casas automaticamente, era um script pessoal mas resolvi postar.
      O Script foi feito em revscript, se for usar da forma antiga, terá que adaptar.

      Basta adicionar um arquivo lua na sua pasta de talkactions:
       
      local function doCheckHouses() local registros = db.storeQuery( "SELECT `houses`.`owner`, `houses`.`id` FROM `houses`,`players` WHERE `houses`.`owner` != 0 AND `houses`.`owner` = `players`.`id`;") if registros ~= false then local count = 0 repeat count = count + 1 local owner = result.getNumber(registros, "owner") local houseId = result.getNumber(registros, "id") local house = House(houseId) if house and (owner > 0) then print(house:getName()) house:setOwnerGuid(0) end until not result.next(registros) result.free(registros) end print('Houses Cleaned') return true end local limparhouse = TalkAction("/limparhouse") function limparhouse.onSay(player, words, param) if not player:getGroup():getAccess() or player:getAccountType() < ACCOUNT_TYPE_GOD then player:sendCancelMessage("Only admins can use this command.") return true end addEvent(doCheckHouses, 10 * 1000) player:sendCancelMessage("Cleaning houses.") return true end limparhouse:separator(" ") limparhouse:register()  
      Para usar é bem simples, basta usar o comando /limparhouse, e dentro de alguns instantes todas as casas serão limpas.

      Creditos:
      -CaduGTX
      -JameesDavid
       
    • Por LeoTK
      estou com uma dúvida que é a seguinte meu servidor tem varias talkactions eu percebi que quando eu falo !online < não aparece no chat para todo mundo ver exemplo assim eu falo !online aparece os players online agora quando eu falo por exemplo !tutoriais foi uma talkaction que adicionei recentemente abre a aba com tal informação mais no chat aparece em amarelo !tutoriais como faço para isso não aparece apenas a talkaction ser dita e mostrar seu conteúdo sem ser mostrada como uma fala normal no chat isso é meio inutil mais me incomoda o fato de saber que posso tirar isso mais não sei pesso ajuda a vocês aguardo respostas
       
      algumas print's para melhor compreendimento
       
      print's 
       
      !online \/
       

       
       
       
      agora quando falo !tutoriais aparece o seguinte segue na print \/
       

       
       
      seguinte olhem no chat /\ em amarelo aparece para todos que estiverem ao redor gostaria que isso não aparecesse
       
      script da talkaction
       



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo