[Talkaction] !comprar Skill/magic Level

Fir3element
em Actions e Talkactions

Fir3element

avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 16/06/08Posts: 998Gênero: Masculino

  • Nome: Comprar skill/magic level
  • Versão testada: TFS 0.3.6pl1 / 0.4_SVN
  • Créditos: fireelement e apocarai
  • Exemplo de uso:

  • !comprar club
  • !comprar magiclevel

Vá em data/talkactions/talkactions.xml e adicione esta tag:

<talkaction words="!comprar;/comprar" event="script" value="comprar.lua"/>

 

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
end


Daianpf2011

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 21/06/11Posts: 5Char 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+

Rafu

Powerfull
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 03/05/11Posts: 19

Funfou Ake Gostei muito vlw +rep :button_ok:

Igorzera

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 13/07/11Posts: 1Char no Tibia: {ADM} Igorzera

Cara você é o melhor nessa area de comprar skill, ganhou meu REP+ :D

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 :D, manda private se conseguir vlw

Fir3element

avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 16/06/08Posts: 998Gê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

IgorzeraBR

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 16/07/11Posts: 7

Valewww ae cara, ajudou muito o melhor script de compra de skill e esse, sem duvidas ;D

Assinatura removida devido as regras.

Atenciosamente,
Henrique Moura.

yyaaggoo

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 06/12/08Posts: 1

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 ): ?

sauvadur2

Cavaleiro
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 29/11/09Posts: 62Char 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:

Sauvadur Server!

Exp 200

Loot 2

Skill 100

Ml 100

SpawnR 1

 

NoLag

24/7 ONLINE!

 

Sistemas:

Reset

Vip

1kk p/skill

e Muito mais!

 

Map: styller yourots 8.6 Sem teleports (Sem modificações por enquanto)

1234322_2.png

mikedbr

EU QUE FIZ AQUELE POST O.o >>>>
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 03/10/11Posts: 47Char 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 ;\

Ateenciosamente, MiKeZeerA

 

15wmgjs.gif

 

Nao cai o Dedo Se eu Ajudei REP

rep_up.png

Markhoppous

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 26/10/11Posts: 3Char 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

Demonbholder

avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 13/10/08Posts: 1551Char 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é.

Oie :D

lemos99

Doutor
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 03/11/11Posts: 30Gênero: MasculinoChar 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

​_________________________________________

Em um mundo como este, devemos manter a mente ativa.

 

PowerBR Acesse já!

 

Informações:

Versão: 8.71

Mapa: RadBR

IP: powerbr.servegame.com

PORT: 7171

SITE:

PowerBR

_________________________________________