
Olá galerinha (:, hoje irei postar meu primeiro script, na verdade não é nem 100% meu, alguns Scripters me ajudaram, mas o que mais
me ajudou foi O Marcelin (Marcello Mkez), meu professor

e espero publicar muito mais scripts para vocês.
Bom essa talkaction possibilita ao player de terminada vocação, com uma certa quantidade de um certo item
adquirir o skill que você determinar e com um limite de compra, si o player uma quantidade máxima
considerada skill full no seu server ele não poderá usar mais. Sem mais explicações vamos ao script:
Function: (By Vodkart)
Nota: É importante a instalação da function para que funcione, pois ela permite que o skill seja adicionado sem erros e diretamente na DB.
Em data/lib/050-function...
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

Talkactions:
(By, Vodkart Função Principal, Xapinhal Condições, Marcello Mkez Mensagens e Org. do script e DemonBH por um pequeno erro na condição getItem).
Em data/talkactions/talkactions.xml ...Adicione:
<talkaction words="!skill" event="script" value="skill.lua"/>

Em data/talkactions/scripts ... Crie um script chamado skill.lua E adicione o seguinte:
function onSay(cid, words, param) if getPlayerVocation(cid) == IDVOC then if getPlayerItemCount(cid,IDITEM) >= QNTITEM then if getPlayerSkill(cid, IDSKILL) <= LIMITESKILL then doPlayerRemoveItem(cid,IDITEM,QNTITEM) doPlayerSetSkill(cid, SKILL_NOMESKILL, getPlayerSkillLevel(cid, SKILL_NOMESKILL)+QNTSKILL) else doPlayerSendTextMessage(cid, TALKTYPE_ORANGE_1, "Você tem o skill full.") return true end else doPlayerSendTextMessage(cid, TALKTYPE_ORANGE_1, "Você não tem gold ignot suficiente.") return true end else doPlayerSendTextMessage(cid, TALKTYPE_ORANGE_1, "Você não é knight.") return true end end
Configuração: Infelizmente não aprendi variável ainda, então teremos que configurar assim :x.
IDVOC = Id da vocação que poderá usar o comando, si tiver mais de uma adicione and.
IDITEM = ID do item requerido.
QNTITEM = Quantidade do item requerido
QNTSKILL = Quantidade de skill que irá adicionar
IDSKILL = Id do skill que irá adicionar
LIMITESKILL = Número do máximo de skill que pode comprar. Exemplo: Si 350 de skill axe o player não poderá usar mais o comando.

Magic Level: Para comprar ml, você precisa mudar algumas funções então para facilitar:
function onSay(cid, words, param) if getPlayerVocation(cid) == IDVOC then if getPlayerItemCount(cid,IDITEM) >= QNTITEM then if getPlayerMagLevel(cid) <= LIMITESKILL then doPlayerRemoveItem(cid,IDITEM,QNTITEM) doPlayerSetMagic(cid, getPlayerMagLevel(cid)+QNTSKILL) else doPlayerSendTextMessage(cid, TALKTYPE_ORANGE_1, "Você tem o magic level full.") return true end else doPlayerSendTextMessage(cid, TALKTYPE_ORANGE_1, "Você não tem barras suficiente.") return true end else doPlayerSendTextMessage(cid, TALKTYPE_ORANGE_1, "Somente druid e sorcerer podem comprar esse skill.") return true end end
