Valeu pelo comentário, não precisa ser muito high exp, o script é baseado no do RadBR (50x exp).
- Fórum
- OTServ
- Recursos
- Scripting
- Actions e Talkactions
- [Talkaction] !comprar Skill/magic Level
[Talkaction] !comprar Skill/magic Level
Por Fir3element, 26 de jun. de 2011 em Actions e Talkactions
info
Grupo: Conde
Registrado: 16/06/08
Posts: 998
Reputação: +185
Gênero: Masculino

info
Grupo: Campones
Registrado: 21/06/11
Posts: 5
Reputação: +3
Char no Tibia: 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
Grupo: Campones
Registrado: 12/07/11
Posts: 1
Reputação: -1
Char no Tibia: {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
Grupo: Conde
Registrado: 16/06/08
Posts: 998
Reputação: +185
Gênero: 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
Grupo: Campones
Registrado: 16/07/11
Posts: 7
Reputação: +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
Grupo: Campones
Registrado: 28/11/09
Posts: 62
Reputação: +3
Char no Tibia: 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
Grupo: Conde
Registrado: 16/06/08
Posts: 998
Reputação: +185
Gênero: Masculino

As querys podem lagar o servidor, estou fazendo um outro script
Editado Agosto 14 por fireelement
info
Grupo: Campones
Registrado: 02/10/11
Posts: 47
Reputação: +1
Char no Tibia: 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
Grupo: Campones
Registrado: 26/10/11
Posts: 3
Reputação: +1
Char no Tibia: 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
Grupo: Conde
Registrado: 16/06/08
Posts: 998
Reputação: +185
Gênero: Masculino

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

O código está bom, mas na minha opinião, um script assim tira toda graça do jogo.
Parabéns, até.
Editado Janeiro 4 por Demonbholder
info
Grupo: Campones
Registrado: 03/11/11
Posts: 30
Reputação: +1
Gênero: Masculino
Char no Tibia: 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
Grupo: Conde
Registrado: 16/06/08
Posts: 998
Reputação: +185
Gênero: 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 endEditado Dezembro 19 por fireelement