Ir para conteúdo
  • 0

[Pedido] Talkaction.


Marcelo96

Pergunta

Tipo do script: Talkaction

Protocolo (versão do Tibia): 8.60

Servidor utilizado: [Original] Styller Yourots 0.9

Nível de experiência: Médio

Adicionais/Informações:

 

 

Preciso de uma talkaction que vende 10 de skill club e outra 5 de magic level

 

 

Para comprar skillclub remove 10 do item (9971)

 

Apenas a vocação knight e elite knight podera comprar.

 

 

Para comprar magic level remove 15 do item (9971)

 

Apenas a vocação Sorcerer/Master Sorcerer, Druid/Elder Druid podera comprar.

 

 

REP+ Para Quem Ajudar.

 

@Edit: Preciso das talkactions separadas (1 de comprar club e a outra ml)

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

15 respostass a esta questão

Posts Recomendados

  • 0

Não sei se vai funciona

 

 

function onSay(cid, words, param)

if getPlayerVocation(cid) == 4,8 and getPlayerItemCount(cid, 9971) >= 10 then

doPlayerAddSkillTry(cid, SKILL_CLUB, 10)

doPlayerSendTextMessage(cid, 22, "Você recebeu 10 pontos de skill.")

doPlayerRemoveItem(cid, 9971, 10)

else

doPlayerSendCancel(cid, "Você não tem a vocação necessária.")

end

end

se não funciona tenta essa também.

 

 

function onSay(cid, words, param)

if getPlayerVocation(cid) == 4,8 and getPlayerItemCount(cid, 9971) == 10 then

doPlayerAddSkill(pid, SKILL_CLUB, 10, true)

doPlayerSendTextMessage(cid, 22, "Você recebeu 10 pontos de skill.")

doPlayerRemoveItem(cid, 9971, 10)

else

doPlayerSendCancel(cid, "Você não tem a vocação necessaria.")

end

end

 

 

 

 

<talkaction words="!skillclub" script="skillclub.lua"/>

 

_________________

 

testa ai e me diz se funciona ou oq deu..

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

  • 0

não aparece nada --' ve se vc consegue arruma esse script aqui pra mim \/

 

 

function onSay(cid, words, param)

if getPlayerSkillLevel(cid, SKILL_CLUB) >= 341 then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter skill acima de 350.")

return TRUE

end

if not isDrunou(cid) then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Drunous podem comprar skill de club.")

return TRUE

end

if getPlayerItemCount(cid, 9971) >= 10 then

local pid = getPlayerGUID(cid)

local club = getPlayerSkillLevel(cid, SKILL_CLUB)

doPlayerRemoveItem(cid, 9971, 10)

doRemoveCreature(cid)

db.executeQuery("UPDATE `player_skills` SET `value` = " .. (club + 10) .. ", `count` = 0 WHERE `skillid` = 1 and `player_id` = " .. pid .. ";")

return TRUE

else

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.")

return TRUE

end

end

Link para o comentário
Compartilhar em outros sites

  • 0

lib/functions

function doPlayerSetSkill(cid, skill, amount)
local pid = getPlayerGUID(cid)  
doRemoveCreature(cid,true) 
db.executeQuery("UPDATE `player_skills` SET `value` = ".. amount .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. skill ..";")  
return TRUE
end
function doPlayerSetMagic(cid, amount)
local pid = getPlayerGUID(cid)  
doRemoveCreature(cid,true) 
db.executeQuery("UPDATE `players` SET `maglevel` = " .. amount .. " WHERE `id` = "..pid)
return TRUE
end

 

talk

 

function onSay(cid, words, param)
if param == "club" then
if isInArray({4,8}, getPlayerVocation(cid)) then
if doPlayerRemoveItem(cid,9971,10) then
doPlayerSetSkill(cid, SKILL_CLUB, getPlayerSkillLevel(cid, SKILL_CLUB)+10)
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.")
end
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não é knight ou elite knight.")
end
elseif param == "magic" then
if isInArray({1,2,5,6}, getPlayerVocation(cid)) then
if doPlayerRemoveItem(cid,9971,15) then
doPlayerSetMagic(cid, getPlayerMagLevel(cid)+5)
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.")
end
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não é druid nem sorcerer.")
end
end
return true
end

 

!comando magic

!comando club

Link para o comentário
Compartilhar em outros sites

  • 0

[14:16:14.220] [Error - TalkAction Interface]

[14:16:14.220] data/talkactions/scripts/skillclub.lua:onSay

[14:16:14.220] Description:

[14:16:14.220] data/lib/050-function.lua:723: attempt to call field 'executeQuery' (a nil value)

[14:16:14.220] stack traceback:

[14:16:14.220] data/lib/050-function.lua:723: in function 'doPlayerSetSkill'

[14:16:14.220] data/talkactions/scripts/skillclub.lua:5: in function <data/talkactions/scripts/skillclub.lua:1>

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

  • 0
function onSay(cid, words, param)
if param == "club" then
if isInArray({4,8}, getPlayerVocation(cid)) then
if getPlayerSkillLevel(cid, SKILL_CLUB) < 341 then
if doPlayerRemoveItem(cid,9971,10) then
doPlayerSetSkill(cid, SKILL_CLUB, getPlayerSkillLevel(cid, SKILL_CLUB)+10)
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.")
end
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter skill acima de 350.")
end
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não é knight ou elite knight.")
end
elseif param == "magic" then
if isInArray({1,2,5,6}, getPlayerVocation(cid)) then
if getPlayerMagLevel(cid) < 196 then
if doPlayerRemoveItem(cid,9971,15) then
doPlayerSetMagic(cid, getPlayerMagLevel(cid)+5)
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.")
end
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter skill acima de 200.")
end
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não é druid nem sorcerer.")
end
end
return true
end

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

  • 0

ta dano esse erro aqui mano

 

[17:0:51.483] [Error - TalkAction Interface]

[17:0:51.483] data/talkactions/scripts/skillclub.lua:onSay

[17:0:51.483] Description:

[17:0:51.483] data/lib/050-function.lua:729: attempt to call field 'executeQuery' (a nil value)

[17:0:51.483] stack traceback:

[17:0:51.483] data/lib/050-function.lua:729: in function 'doPlayerSetMagic'

[17:0:51.483] data/talkactions/scripts/skillclub.lua:20: in function <data/talkactions/scripts/skillclub.lua:1>

Link para o comentário
Compartilhar em outros sites

  • 0

Como eu posso ver se é my sql e se é db.Query ou db.query ?

 

Se ajudar, achei isto no config.lua

 

playerQueryDeepness = 2

 

mysqlReadTimeout = 10

mysqlWriteTimeout = 10

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

  • 0

acho q é mysql

 

function doPlayerSetSkill(cid, skill, amount)
local pid = getPlayerGUID(cid)  
doRemoveCreature(cid,true)
db.query("UPDATE `player_skills` SET `value` = ".. amount .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. skill ..";")  
return TRUE
end
function doPlayerSetMagic(cid, amount)
local pid = getPlayerGUID(cid)  
doRemoveCreature(cid,true)
db.query("UPDATE `players` SET `maglevel` = " .. amount .. " WHERE `id` = "..pid)
return TRUE
end

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

×
×
  • Criar Novo...