Valeu pelo comentário, não precisa ser muito high exp, o script é baseado no do RadBR (50x exp).
- Forums
- OTServ
- Recursos
- Scripting
- Actions e Talkactions
- [Talkaction] !comprar Skill/magic Level
[Talkaction] !comprar Skill/magic Level
By Fir3element, 26 de jun. de 2011 in Actions e Talkactions
info
Group: Conde
Joined: 16/06/08
Posts: 998
Reputation: +185
Gender: Masculino

info
Group: Campones
Joined: 21/06/11
Posts: 5
Reputation: +3
Tibia Character: Ragos Kaill

#fireelement
Voçê é o cara!
To falando sério, todos os scripts de comprar skill do :XTibia_smile:
não funcionaram no meu servidor.
Mais o seu sim !!!
Vlw manolo
:positive:
APROVADO
:button_ok:
REP+
Funfou Ake Gostei muito vlw +rep :button_ok:
info
Group: Campones
Joined: 12/07/11
Posts: 1
Reputation: -1
Tibia Character: {ADM} Igorzera

Cara você é o melhor nessa area de comprar skill, ganhou meu REP+ ![]()
Será que você conseguiria fazer um script igual akele do radbr, que você fala !axe, !club e mostra seu skill?, nossa se você conseguir ganhara todos meus rep+ todo dia
, manda private se conseguir vlw
info
Group: Conde
Joined: 16/06/08
Posts: 998
Reputation: +185
Gender: Masculino

to meio sem tempo, fiz um q da pra vc ver seu skill, pra ver o de outro player vo ve se faço daqui a pouco
talkactions.xml
<talkaction words="!skill" event="script" value="cmmd.lua"/>
cmmd.lua
function onSay(cid, words, param, channel)
local id = {["club"] = 1, ["sword"]= 2, ["axe"] = 3, ["distance"] = 4, ["shielding"] = 5}
if(id[param:lower()]) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Skill: "..getPlayerSkill(cid, id[param:lower()]).."") end return true end
info
Group: Campones
Joined: 16/07/11
Posts: 7
Reputation: +5

Valewww ae cara, ajudou muito o melhor script de compra de skill e esse, sem duvidas ;D
cara...achei seu script muito interresante,mas ta dando esse erro aqui:
[19/07/2011 17:46:50] [Error - TalkAction Interface]
[19/07/2011 17:46:50] data/talkactions/scripts/comprar.lua:onSay
[19/07/2011 17:46:50] Description:
[19/07/2011 17:46:50] data/talkactions/scripts/comprar.lua:71: attempt to call field 'executeQuery' (a nil value)
[19/07/2011 17:46:50] stack traceback:
[19/07/2011 17:46:50] data/talkactions/scripts/comprar.lua:71: in function <data/talkactions/scripts/comprar.lua:1>
[19/07/2011 17:46:50] [Error - Npc interface]
[19/07/2011 17:46:50] data/npc/scripts/default.lua:onCreatureSay
[19/07/2011 17:46:50] Description:
[19/07/2011 17:46:50] (luaGetNpcDistanceTo) Thing not found
sabe o que preciso fazer ): ?
info
Group: Campones
Joined: 28/11/09
Posts: 62
Reputation: +3
Tibia Character: Misstter Emme

Muito bom script, alguns meses atras eu estava procurando por esse script achei varios mas a todos com defeito!
Bom trabalho Rep+ :button_ok:
info
Group: Conde
Joined: 16/06/08
Posts: 998
Reputation: +185
Gender: Masculino

As querys podem lagar o servidor, estou fazendo um outro script
Edited Agosto 14 by fireelement
info
Group: Campones
Joined: 02/10/11
Posts: 47
Reputation: +1
Tibia Character: Soul Dementor

se este caso é para o radbr faltou infernalist que nao vai poder comprar ml e drunou que nao vai poder comprar club ;\
info
Group: Campones
Joined: 26/10/11
Posts: 3
Reputation: +1
Tibia Character: Markin

MiKeZeerA: se este caso é para o radbr faltou infernalist que nao vai poder comprar ml e drunou que nao vai poder comprar club ;\
Seguinte cara é facil, Você só irar mudar aqui nessa parte do script veja bem
PARA DRUNOU
local voc = {
["skillclub"] = {4, 8, (ID DRUNOU) }, -- Vocações que irá comprar club]
["skillsword"] = {4, 8}, -- Vocações que irá comprar sword
["skillaxe"] = {4, 8}, -- Vocações que irá comprar axe
["skilldistance"] = {3, 7}, -- Vocações que irá comprar distance
["skillshielding"] = {4, 8, (ID DRUNOU) } -- Vocações que irá comprar shielding
PARA INFERNALIST
local vocml = {1, 2, 5, 6, (ID INFERNALIST) } -- Vocações que irá comprar magic level
Simplificarei mais. Onde ta (ID INFERNALIST OU DRUNOU) Voce vai por o numero por exemplo
1 - Sorcerer 2 - Druid 3 - Paladin 4 - Knight 5 - Master Sorcerer 6 - Elder Druid 7 - Royal Paladin 8 - Elite Knight 9 - Drunou 10 - Lord Drunou 11 - Infernalist 12 - Master Infernalist
Ficando assim
local voc = {
["skillclub"] = {4, 8, 9, 10}, -- Vocações que irá comprar club
["skillsword"] = {4, 8}, -- Vocações que irá comprar sword
["skillaxe"] = {4, 8}, -- Vocações que irá comprar axe
["skilldistance"] = {3, 7}, -- Vocações que irá comprar distance
["skillshielding"] = {4, 8, 9, 10} -- Vocações que irá comprar shielding
local vocml = {1, 2, 5, 6, 11, 12} -- Vocações que irá comprar magic level
Alguma duvida solta a voz .
Gostou ? Fico feliz em ter ajudado
Att Hekksv
info
Group: Conde
Joined: 16/06/08
Posts: 998
Reputation: +185
Gender: Masculino

Fiz uma limpeza no script e arrumei o tópico, não sei o que acotenceu para ele desformatar sozinho.
info
Group: Infante
Joined: 13/10/08
Posts: 1.6k
Reputation: +420
Tibia Character: Demonbholder

O código está bom, mas na minha opinião, um script assim tira toda graça do jogo.
Parabéns, até.
Edited Janeiro 4 by Demonbholder
info
Group: Campones
Joined: 03/11/11
Posts: 30
Reputation: +1
Gender: Masculino
Tibia Character: Vivikkie

Eu tinha feito um, porém ao usar magias de buff ou anéis que sobem skill e usar o comprarskill faziam com que se ganhasse mais skills...esse script tem esse problema? foi testado?
Atenciosament, Lucas Lemos




info
Group: Conde
Joined: 16/06/08
Posts: 998
Reputation: +185
Gender: Masculino
Vá em data/talkactions/talkactions.xml e adicione esta tag:
Agora vá em data/talkactions/scripts/ e crie um arquivo com o nome comprar.lua e cole isto nele:
skill = { item = 9971, -- Item quantidade = 10, -- Quantidade quantidadeskill = 10, -- Skill adicionada limiteskill = 350 -- Limite } magicLevel = { item = 9971, quantidade = 15, quantidademl = 5, limitedeml = 200 } skillID = { ["club"] = SKILL_CLUB, ["sword"]= SKILL_SWORD, ["axe"] = SKILL_AXE, ["distance"] = SKILL_DISTANCE, ["shielding"] = SKILL_SHIELD } vocationSkill = { -- Vocações - SKILL ["club"] = {4, 8}, ["sword"] = {4, 8}, ["axe"] = {4, 8}, ["distance"] = {3, 7}, ["shielding"] = {4, 8} } vocationMagicLevel = {1, 2, 5, 6} -- Vocações - MAGIC LEVEL protectZone = "sim" function onSay(cid, words, param, channel) local pid = getPlayerGUID(cid) if (protectZone == "sim") and (not getTilePzInfo(getCreaturePosition(cid))) then doPlayerSendCancel(cid, "Você precisa estar em protection zone pra poder comprar.") end if (param == '') then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Como usar: !comprar club; !comprar magiclevel.") return true end local storage, duration = 5, 5 if (param == 'magiclevel') then if getPlayerMagLevel(cid) < magicLevel.limitedeml then if isInArray(vocationMagicLevel, getPlayerVocation(cid)) then if doPlayerRemoveItem(cid, magicLevel.item, magicLevel.quantidade) then if (os.time() - getPlayerStorageValue(cid, storage)) >= duration then setPlayerStorageValue(cid, storage, os.time()) doRemoveCreature(cid, true) db.executeQuery("UPDATE `players` SET `maglevel` = `maglevel` + ".. magicLevel.quantidademl .." WHERE `id` = ".. pid) else doPlayerSendCancel(cid, "Espere ".. duration .." segundos para comprar novamente.") end else doPlayerSendCancel(cid, "Você não tem o item requerido.") end else doPlayerSendCancel(cid, "Voce não pode comprar magic level.") end else doPlayerSendCancel(cid, "Você chegou no limite de magic level.") end return true end if(skillID[param:lower()]) then if(getPlayerSkill(cid, skillID[param:lower()]) < skill.limiteskill) then if isInArray(vocationSkill[param:lower()], getPlayerVocation(cid)) then if doPlayerRemoveItem(cid, skill.item, skill.quantidade) then if (os.time() - getPlayerStorageValue(cid, storage)) >= duration then setPlayerStorageValue(cid, storage, os.time()) doRemoveCreature(cid, true) db.executeQuery("UPDATE `player_skills` SET `value` = `value` + ".. skill.quantidadeskill .." WHERE `player_id` = ".. pid .. " and `skillID[` = ".. skillID[param:lower()]) else doPlayerSendCancel(cid, "Espere ".. duration .." segundos para comprar novamente.") end else doPlayerSendCancel(cid, "Você não tem o item requerido.") end else doPlayerSendCancel(cid, "Voce não pode comprar este skill.") end else doPlayerSendCancel(cid, "Você chegou no limite de skill.") end else doPlayerSendCancel(cid, "Skill desconhecida.") end return true endEdited Dezembro 19 by fireelement