Pesquisar na Comunidade
Mostrando resultados para as tags ''Action%2FTalkaction''.
Encontrado 44 registros
-
[Tutorial] Comando para fazer o player falar!
Bom galera estou trazendo aqui uma TalkAction bem legal pra vocês. Ela serve para fazer o PLAYER do seu OT falar o que você quiser com apenas um comando!, bom chega de enrolação e vamos começar logo! Va na pasta do seu OTserv e va em Data/Talkactions/Scripts e crie um arquivo chamado playersay.lua e adicione isso: ------------------------- function onSay(cid, words, param, channel) if(param == '') then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "É necessário um paramêtro."), TRUE end local prm = string.explode(param, ",") local pos = getCreaturePosition(cid) local plr = getPlayerByName(prm[1]) if (plr == nil) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "O player está offline ou não existe.") elseif (prm[2] == nil) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "É necessário a mensagem após a vírgula.") end return doCreatureSay(plr, prm[2], 1), TRUE end --------------------------------------- Depois va em talkaction.xml e adicione essa tag: <talkaction log="yes" words="!ps" access="5" event="script" value="playersay.lua"/> ---------------------------------------- Créditos: @Tricombi - Por trazer ao fórum. Créditos ao criador: Desconhecido. Te AJUDEI? Da um REP + !
-
Group Quest/ Tp em grupo
Group Quest // Tp em Grupo Introdução: Então galera, uns dias atras eu estava com a mesma dúvida, mas soque fuçando algumas coisas eu consegui aprender a como fazer um tp igual ao da main quest ( precisa de tantos players, um deles puxa a alavanca e todos são teleportados para um local ). Bora para o tutorial! Tutorial: Primeiramente digdin, segundamente vocês vão na pasta data/actions/scripts , copiem algum arquivo .lua e renomeiem ele para QuestTP. Após isso vocês coloquem a seguinte script no arquivo.lua criado: local posis = { {'Volcanic', {x=514, y=885, z=7}}, -- Aqui você altera onde fica o bloco que os players deverão estar para o tp funcionar {'Seavell', {x=516, y=884, z=7}}, {'Orebound', {x=518, y=885, z=7}}, } local toPosi = {x=1240, y=507, z=8} -- Pra onde os players serao teleportados function onUse(cid, item, frompos, item2, topos) for _, array in ipairs(posis) do local p = getRecorderPlayer(array[2]) if not isPlayer(p) or getPlayerClanName(p) ~= array[1] and getPlayerLevel(cid) <= 150 then -- Aqui você coloca qual o level necessário pro player ir no tp doPlayerSendTextMessage(cid, 27, "Um ou mais jogadores não estão no lugar correto ou não têm nível necessário !") return true end end doTransformItem(item.uid, (item.itemid == 19578 and 19578 or 19578)) for _, array in ipairs(posis) do local p = getRecorderPlayer(array[2]) if isPlayer(p) then doTeleportThing(p, toPosi) doSendMagicEffect(getThingPos(p), 21) end end return true end Instrução de onde alterar já esta no code /\ Depois de terem feito isso, vocês vão no arquivo actions.xml, e acrescentem isso: <action uniqueid="19578" script="QuestTP.lua"/> PS: Se o id já estiver sendo usado, altere o id para um que não esteja e mude também no arquivo .lua RME: Agora para a quest poder iniciar normalmente, coloque uma alavanca ou oque você achar legal, e mude a action id para 19578 e deixe perto de um player para que ele possa clicar nela e não sair do local. É só isso galera, esse é o meu primeiro post aqui no tk e queria a avaliação de vocês para que eu possa melhorar. Eu sei que isso não é algo grande, mas passei aperto pra fazer minha descoberta e achei legal compartilhar com vocês. Valeu ae :D. Não se esqueçam do REP++ FIM
-
Dar ou retirar item do player
Fala trutas! Firmeza total! Então, deixo aqui pra vocês um script que eu uso e acho muito útil para todos gms, cms e gods. Essa talkaction é usada para dar um item ao jogador ou remover o item dele; você não vai precisar mais ir até o player, criar o item e entregá -lo. Vamos ao código: Em Talkaction/scripts/ Crie um arquivo chamado "dip_rip" com extensão "lua", ficando assim: Agora, adicione esse código dentro dele: Agora em talkaction/talkactions.xml Adicione essa tag: É isso ae galera, espero que vocês curtam o sistema.
-
[TalkActions] Sistema de Loja
Versão : 1.0 Introdução Bem Este Script Foi Um Pouco Pensativo Ate Demais Para Fazer , Mas Ele Funciona Assim Quand Você Digitar /shop Ira Aparecer Uma Janela Onde Aparecerá Mais Comandos Tipo : /shop armas e /shop equipamentos , "Arma" São Espadas Etc.. Não Pensa Outra Coisa.. Dai Aparecerá Outra Janela Mostrando Ao Jogador As Ofertas Então Ele Poderá Comprar Uma Das Ofertas ! .. Bem Não Vou Explicar Muito Aqui , Explicarei Mais A Baixo... Não Sei se Existe Outro Sistema de Loja Igual Este , Mas Vamo Lá] Abra : Data/TalkActions/TalkActions.xml e adicione Está Tag : Depois Disto Abra : Data/TalkActions/Scripts e Copie Um Arquivo .lua e Renomeia Para SistemaDeLoja Remova Tudo Que Há Dentro e Coloque Isto : Configuração : (Script) (.lua) Simples , Abra Isto : Data/Items/Items.xml , Bem Ai Tem Alguns Items Do Seu Servidor No Caso Todos , Aperte Ctrl + F e Pesquise o Item Que Você Quer Bem Eu Escolhi Este: o Id Dele é 7402 , Então Pronto Feche o Items.xml , Agora Abra : Data/TalkActions/Scripts/SistemaDeLoja Agora Começa a Complicar Pra Min e Pra Vocês , Pois Vai Ser Duro De Explica Isto.. Lá No Inicio Do Script Contém Isto : No if (param == "buy flash kunai") then , Vocês Editam Está Parte Que Está em Negrito : if (param == "buy flash kunai") , e Edita Como Quiser , Tipo se Você Deixar Assim : if (param == "2") , o Jogador Tera Que Digitar /shop 2 , Para Aparecer Oque Vem Abaixo ! Mas Lembre Ele Serve Para Comprar Não Crie Uma Loja 2 Aqui , Crie Seilá Comprar Pokebola , Ai Compra Pokebola.. Assim Como Todos os if (param == "") , Bem Vamos Continuar Está Parte Agora : if doPlayerRemoveMoney(cid, 100000) == TRUE then Editam Está Parte Que Está Em Negrito : if doPlayerRemoveMoney(cid, 100000) == TRUE then , Ela é o Dinheiro Que Irá Sumir Do Player Pode Coloca 1, 100 , 600000 Seilá Cria Oque Achar Melhor, Façam Isto Com Todos if doPlayerRemoveMoney(cid, ) , Continuando Está Parte Agora : Elá é Um Pouco Grande Vou Deixar No Spoiler , Editem Está Parte : #-ARMAS-#Loja Naruto Master#-ARMAS-#\n\nParabéns Você Comprou Uma Flash Kunai \n\nSeu Dinheiro Agora é De : " .. getPlayerMoney(cid) .. "\n\n#-ARMAS-#Loja Naruto Master#-ARMAS-# , Coloquem Oque Quiser Mais Não Removam Os \n\n Como Disse No Meu Outro Script , Elas Servem Para Pular de Linha Não Iram Aparecer No Jogo.. Bem Está Quase Terminando Agora Está Parte: doPlayerAddItem(cid, 7382, 1) , Editem Apenas Está Parte em Negrito : doPlayerAddItem(cid, 7382, 1) , Bem o Número 7382 , é aquele Número Que Pegamos La No Items.xml , o Id Que eu Peguei Foi : 7402 , Agora So Trocar Por Isto : doPlayerAddItem(cid,7402, 1) , Viram ? So Coloquem o Id No Lugar do 7382 , Agora Aquele Número 1 Bem No Final é Tantos De Items Daquela ID , Que Irá Vim Se Colocar Dois Vai Vim Dois Items , O Meu Ficaria Assim : doPlayerAddItem(cid,7402, 2) , Irá Vim Dois Items Do ID 7402 , Agora: Else é se o Personagem Não Tiver o Dinheiro Que Você Colocou , Irá Aparecer Oque ? , Vamos Lá : Bem se Ele Não Tiver o Dinheiro Necessario Irá Aparecer Está Menssagem Vocês Editem Apartir Destá Parte : Outra Vez Falando Não Removam os \n\n Vocês Podem Trocar Eles de Lugar , Mas Eles Servem Para Pular Linhas Não Iram Aparecer No Seu Jogo Bem é Isto , a Explicação Não foi tão Boa , Mas Vocês Podem Editar Tudo , Tudo Que Coloquei Neste Tópico Vocês Podem Editar Comandos Originais do Script : /shop /shop equipamentos /shop armas Créditos : Zauster (100%) Deixa Rep+ se Gosto Vlw !
-
[TALKACTION] Caixa Postal
Bem, procurei aqui no Tibia King e não achei nada relacionado, então, criei um script de Caixa Postal, ou, Mensagem Offline, como preferirem. Versão: TFS 0.4 Autor: Kemmlly Como funciona: Enviar: O jogador usa o comando: !caixa "nome do jogador" - "Mensagem", sem as aspas. Se o jogador estiver Off, a mensagem ficará guardada na Caixa Postal dele, se não, o jogo te indicará a falar pelo PV. Receber: O jogador que recebeu a mensagem usa o comando: !recados ler, para ler as mensagens que tem disponíveis na caixa, ou, !recados apagar, para limpar a caixa postal se estiver muito cheia, pois acumula mensagens, segue exemplo: !recados ler !recados apagar Instalação: data/talkactions/scripts/caixapostal.lua function onSay(cid, words, param, channel) local t = string.explode(param, "-") if t[1] == '' or t[1] == nil then doPlayerSendTextMessage(cid, 19, "Comando invalido, use !caixa 'NOME DO JOGADOR' - 'MENSAGEM' sem as aspas.") return true else local player = db.getResult("SELECT `id` FROM `players` WHERE `name` = '"..t[1].."';"):getDataInt("id") if player == nil then doPlayerSendTextMessage(cid, 19, "Esse jogador nao existe!") return true elseif player ~= nil and t[2] == '' then doPlayerSendTextMessage(cid, 19, "A mensagem nao pode ser vazia!") return true elseif player ~= nil and t[2] ~= '' then if getPlayerByNameWildcard(t[1]) ~= nil then doPlayerSendTextMessage(cid, 19, "Esse jogador esta online, fale pelo PV!") return true else local origem = getCreatureName(cid) local caixa = getGlobalStorageValue(player) local data = os.date("%d/%b as %X") if caixa == -1 or caixa == "Voce nao tem nenhum recado!" then caixa = "\n" end doPlayerSendTextMessage(cid, 19, "A mensagem foi enviada com sucesso!") setGlobalStorageValue(player, "["..data.."] - "..origem..": "..t[2].." \n\n"..caixa.."") return true end end end end data/talkactions/scripts/recados.lua function onSay(cid, words, param, channel) local t = string.explode(param, ",") local player = db.getResult("SELECT `id` FROM `players` WHERE `name` = '"..getCreatureName(cid).."';"):getDataInt("id") local mensagens = getGlobalStorageValue(player) if t[1] == '' or t[1] == nil then doPlayerSendTextMessage(cid, 19, 'Comando invalido.') elseif t[1] == 'ler' then if mensagens == -1 then mensagens = "Voce nao tem nenhum recado!" doShowTextDialog(cid, words, '-- Recados --\n\n'..mensagens..'') else doShowTextDialog(cid, words, '-- Recados --\n\n'..mensagens..'') end elseif t[1] == 'apagar' then doPlayerSendTextMessage(cid, 19, 'Mensagens apagadas com sucesso!') setGlobalStorageValue(player, "Voce nao tem nenhum recado!") end return true end data/talkactions/talkactions.xml <talkaction words="!caixa" event="script" value="caixapostal.lua"/> <talkaction words="!recados" event="script" value="recados.lua"/> Ultimo passo, porém, importante; em data/lib/004-database.lua vá até a linha 60 e mude: error("[Result:getDataInt] Result not set!") para: return nil Se no seu não for exatamente na linha 60, procure a função: function Result:getDataInt(s) if(self:getID() == -1) then error("[Result:getDataInt] Result not set!") end E faça a alteração. Isso é para não dar erro na hora de procurar um player pelo nome quando o jogador escrever um nome de player inválido. Espero que gostem, abraços.
-
Novos comandos para Guild: war, invite, broadcast
Testado no: TFS 0.4 Bom, esse script adiciona alguns comandos para auxiliar principalmente lideres de guildas, eu coloquei dois comandos padrões, porém se você tiver alguma ideia de comando, você pode adicionar na tabela. /guild - Mostra a lista de comandos. A lista de comandos aparece em um popup: O comando /guild mensagem é o broadcast, caso você desative-o nas configurações, ele irá sumir da lista de comandos. O preço também é configurável e caso você desative-o nas configurações, ele irá sumir da lista de comandos. - Instalação - Na pasta "OT/Data/Talkactions/Scripts", copie e cole um arquivo.LUA, renomeie para guildHelp.lua, apague tudo e cole: local config = { keys = { ["war"] = {msg = " está procurando por uma guerra", info = "Procurar por uma guerra."}, ["invite"] = {msg = " está procurando por membros", info = "Procurar por membros para sua guilda."}, }, needMoney = {on = true, price = 15000}, -- Ativar custo para usar comando. broadcast = true, -- Ativar mensagem livre, exemplo: /guild mensagem livre storage = 43095, -- Só altere caso seja necessário permission = {3, 2}, -- Permissões: 3 = Leader, 2 = Vice-Leader, 1 = Member cooldown = 5 -- Em minutos. } function onSay(cid, words, param) local key, inf = config.keys[param], '' for wa, kon in pairs(config.keys) do inf = inf ..words.. " " ..wa.. " - " .. kon.info .."\n" end if config.broadcast then inf = inf .. words .. " mensagem - Mensagem livre." end if config.needMoney.on == true then inf = inf .. "\n\nPreço: " .. config.needMoney.price end if not isInArray(config.permission, getPlayerGuildLevel(cid)) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você não tem permissão para usar esse comando.") and true elseif (param == "") then return doPlayerPopupFYI(cid, "Comandos:\n" ..inf) and true elseif getPlayerStorageValue(cid, config.storage) > os.time() then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde ".. math.ceil(getPlayerStorageValue(cid, config.storage) - os.time()) .." segundos para usar novamente.") and true elseif config.needMoney.on == true then if doPlayerRemoveMoney(cid, config.needMoney.price) == false then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você não tem ".. config.needMoney.price .." gold coins.") end end if key then doBroadcastMessage("O jogador [".. getCreatureName(cid) .."] da guild [".. getPlayerGuildName(cid) .."]".. key.msg ..".") setPlayerStorageValue(cid, config.storage, os.time() + config.cooldown * 60) elseif not key and config.broadcast == true then doBroadcastMessage("Player[".. getCreatureName(cid) .."] Guild(".. getPlayerGuildName(cid) .."): ".. param) setPlayerStorageValue(cid, config.storage, os.time() + config.cooldown * 60) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Comando inválido, digite apenas '.. words ..' para ver a lista de comandos.') end return true end Agora em "OT/Data/Talkactions", abra o arquivo talkaction.xml e adicione: <talkaction words="!guild;/guild" script="guildHelp.lua"/> É isso, caso tenha alguma sugestão ou encontre algum erro, me avise. Créditos: @Wakon
-
[TFS 0.4][TFS 1.x] TP wand
TP wand para GM/GOD TFS 1.x: http://i.imgur.com/ui2T1AV.mp4 <action itemid="12318" script="tpwand.lua" allowfaruse="1" blockwalls="0" checkfloor="0"/> function spellTP(cid, frompos, topos) Player(cid):teleportTo(topos) local f = Position(frompos) local t = Position(topos) t:sendMagicEffect(CONST_ME_PURPLEENERGY) t:sendMagicEffect(CONST_ME_ENERGYAREA) f:sendMagicEffect(CONST_ME_PURPLEENERGY) f:sendMagicEffect(CONST_ME_ENERGYAREA) end function onUse(player, item, frompos, item2, topos) if not(player:getAccountType() < ACCOUNT_TYPE_GAMEMASTER or player:getGroup():getAccess()) then return false end local cid = player:getId() local i = getThingPos(item2.uid) if i.x > 0 and i.x < 65000 and i.y > 0 and i.y < 65000 then if player:isInGhostMode() then player:teleportTo(i) return true else local f = player:getPosition() Position(f):sendMagicEffect(CONST_ME_THUNDER) Position(i):sendMagicEffect(CONST_ME_THUNDER) addEvent(spellTP, 500, cid, f, i) return true end end return false end TFS 0.4: http://i.imgur.com/2r7zErz.mp4 <action itemid="12318" event="script" value="tpwand.lua" allowfaruse="1" blockwalls="0" checkfloor="0"/> function spellTP(cid, frompos, topos) doTeleportThing(cid, topos) doSendMagicEffect(topos, CONST_ME_PURPLEENERGY) doSendMagicEffect(topos, CONST_ME_ENERGYAREA) doSendMagicEffect(frompos, CONST_ME_PURPLEENERGY) doSendMagicEffect(frompos, CONST_ME_ENERGYAREA) end function onUse(cid, item, frompos, item2, topos) if getPlayerAccess(cid) < 3 then return false end local i = getThingPos(item2.uid) if i.x > 0 and i.x < 65000 and i.y > 0 and i.y < 65000 then if isPlayerGhost(cid) then doTeleportThing(cid, i) return true else local f = getThingPos(cid) doSendMagicEffect(f, CONST_ME_POFF) doSendMagicEffect(i, CONST_ME_POFF) addEvent(spellTP, 500, cid, f, i) return true end end return false end
-
rune_soma
Olá! Vim trazer uma action que junta runas, útil para versões inferiores do 8.6. Vá em actions/script crie um arquivo .lua nomeando-o para rune_soma.lua Adicione isso dentro: function onUse(cid, item, frompos, item2, topos) if item2.itemid <= 2316 and item2.itemid >= 2261 then if item.itemid == item2.itemid then if item.uid ~= item2.uid then if item.type < 200 and item2.type < 200 and (item.type + item2.type) <= 200 then local total = item.type + item2.type doRemoveItem(item.uid) doTransformItem(item2.uid, item2.itemid, total) else doPlayerSendTextMessage(cid,22,"Você só pode juntar até 200 cargas.") end end end end return false end Agora vá em actions.lua e adicione essa tag: <action fromid="2261" toid="2316" script="rune_soma.lua" allowfaruse="1"/> Agora basta usar o lado direito do mouse na runa e depois clicar do lado esquerdo do mouse na runa que vc quer que junte. ;P
-
Talk Rank Frags
Então galera, vejo direto gente pedindo esse sistema de RankFrags~~Top Kills Os que eu encontrei estavam bugados.. Chega de blabla... Em data/talkactions/script crie um arquivo com o nome rankfrags.lua Adicione isso la dentro: function onSay(cid, words, param) local max = 20 local letters_to_next = 20 local name_now local name = "Top Frags\n" local rkn = 0 name = name.."\n" name = name.."Rank Frags - Nome do Jogador\n" local v = db.getResult("SELECT `p`.`name` AS `name`, COUNT(`p`.`name`) as `frags` FROM `killers` k LEFT JOIN `player_killers` pk ON `k`.`id` = `pk`.`kill_id` LEFT JOIN `players` p ON `pk`.`player_id` = `p`.`id` WHERE `k`.`unjustified` = 1 GROUP BY `name` ORDER BY `frags` DESC;") repeat if v:getID() == -1 then break end rkn = rkn+1 name_now, l = v:getDataString("name"), string.len(v:getDataString("name")) name = name..rkn..". ["..v:getDataInt("frags").."] - "..name_now.." ".." ".."".."\n" until v:next() == false if name ~= "" then doShowTextDialog(cid,1903, name) end return TRUE end Adicione essa tag em talkactions.xml <talkaction words="!rankfrags" event="script" value="rankfrags.lua"/> TESTADO EM TFS 0.4 È isso ai galera, espero q gostem.. Tenho esse mapa a mt tempo, não sei qm fez esse script '-'
-
[Talkaction] Comando que vê o ping
Script Ping: Crie um arquivo em data/talkactions/scripts/ chamado de verping.lua após isso adicione o seguinte código dentro dele: function onSay(cid, words, param, channel) local mystical = ping.CheckPing(cid) doPlayerSendTextMessage(cid,22,"Ping aproximado --> ["..mystical.."].") return true end em data/talkactions/talkactions.xml adicione a seguinte tag: <talkaction words="!ping" event="script" value="verping.lua"/> em data/lib/ crie um arquivo chamado lib-ping.lua e coloque adicione este código: ping = { _VERSION = "1.0"; pinger = function() if not getPlayerLastPong then print('Error!') return false else return true end end, CONST_WATING_RESPONSE = -3, CONST_DISCONECTED = -2, } function ping.CheckPing(cid) local c = getPlayerLastPong(cid) local l = getPlayerLastPing(cid) local ping = math.floor((c-l)) return ping end function ping.loop(cid,storage,f,...) if not isPlayer(cid) then return false end local p_ing = ping.CheckPing(cid) if p_ing ~= CONST_WATING_RESPONSE then if not tonumber(p_ing) then doPlayerSetStorageValue(cid,storage,ping.CONST_DISCONECTED) return else doPlayerSetStorageValue(cid,storage,p_ing) f(cid,storage,p_ing,...) return end end addEvent(ping.loop,100,cid,storage,f,...) end function ping.getPing(cid,storage,f,...) if ping.test() then doPlayerSetStorageValue(cid,storage,ping.CONST_WATING_RESPONSE) doPlayerSendPing(cid) ping.loop(cid,storage,f,...) end end Print demostrativo Espero ter ajudado Créditos: Mock -- Criar as funções Eu -- Por está postando
-
Comando Luz!
Fala Galera , vo mostrar o comando luz. esse comando já vem em qualquer poketibia! mas alguns não. então vo ta ensinando. Vai até em data/talkactions/scripts crie um arquivo chamado '' !luz.lua '' : Cole Isso --> Pronto,Agora vai até data/talkactions.xml Der um Espaço de uma tag e adicione essa: [ Tudo que jogam de negativo em cima de mim, eu domino no peito e devolvo em forma de paz e amor ] Der um Rep+ Se te Ajudei
-
Free week system
Olá galera , venho trazer pra voces aqui o free week system , que é um sistema que vai ajudar muitos tibias , vou explicar. O player irá puxar a alavanca , e ira ganhar um item , este item durara X dias e depois dele acabar , o player pode pegar ele novamente depois de 7 dias. Exemplo : O item SWORD , o player puxou a alavanca e ira ganhar ele , durara somente 2 dias , ai depois de 7 dias ele pode pegar o item novamente ( começa a contar desde quando ele puxou a alavanca , não de quando o item acabou ). O item duravel voces que vão criar. Qualquer erro comente no tópico , testei no Ot script live e não deu algum erro. Vamos lá Script -- crie um arquivo .lua com o nome freeweek e cole isso dentro dele XML -- vá em actions/actions.xml e cole essa seguinte linha Outro tipo de script , funciona normal igual ao de cima , só que é um pouco melhorada e mais facil de entender
-
Mega Evolution System 1.0
Hoje eu vim trazer um sistema de mega evolução (v1.0) Em data/actions/scripts crie uma pasta chamada Megas Lá dentro crie um Arquivo chamado CharizardX.lua e cole dentro: local level = LVL local megaout = Outfit Mega local vida = 10000 local megaeffe = Effect Mega local meganame = "Mega Charizard X" --Nome do pokémon evoluido, no Caso Mega Charizard X local megadesc = "Um Charizard em sua forma superior" -- Descrição local megaoldname = "Charizard" --Nome do Pokémon, no caso Charizard function onUse(cid, item, frompos, item2, topos) if not isMonster(item2.uid) or not isSummon(item2.uid) or #getCreatureSummons(cid) > 1 then return true end if getPokemonLevel(item2.uid) == level and getPokemonName(item2.uid) == megaoldname then setCreatureMaxHealth(item2.uid, vida) doCreatureAddHealth(item2.uid, vida) doSendMagicEffect(getThingPos(item2.uid), megaeffe) doSetCreatureOutfit(cid, megaout, -1) setCreatureName(cid, meganame, megadesc) doSendAnimatedText(getThingPos(cid), "MEGA EVOLUTION!!!", 180) doRemoveItem(item.uid, 1) else doPlayerSendCancel(cid, "Você não tem nível!.") end end Em actions.xml adicione a linha: <action itemid="ID MEGA STONE CHARIZARD X" event="script" value="Megas/Charizardx.lua"/> Bom, é uma versão 1.0, mais para frente eu irei simplificar ainda mais o sistema, por enquanto ele só dá 10k de vida para o pokémon, na v2.0 irei adicionar mais atributos. NÃO TESTADO EM PDA TESTADO SOMENTE EM DASH v8
-
[Talkactions] Changename /rename
Fala Galera vim trazer hoje o comando '' /rename '' Ele Server Para Muda Nickname de Player Sem isso até o Editor de Account! Vá até data\data\talkactions\scripts Crie um arquivo Chamado changename.lua Cole Isso: Agora vá em talkactions.xml e Adicione Essa tag: Ajudei? Rep+ Creditos: Pikeno Walker Por Criar o Script ! Eu Por trazer ao tibiaking. VERSÃO TESTADA: 1.0 [TFS]
-
[Talkactions] Verificação de Uso De bot 100% [TFS] 1.0
Fala Galera! Hoje vim trazer um Sistema Muito Bom,Creio que Seja o Único aqui no tibiaking. Ele Funciona da seguinte maneira, você mandara uma verificação de bot Para o Player , Uma Mensagem na tela dele ira alertar ele.. Essa: Caso Ele Responde algo séra liberado! Esse comando é util Para aqueles poketibia que tem o erro de double click no mar. !! Vá até data/talkactions/scripts crie um arquivo chamado CheckBot.lua e Adicione Isso dentro!: Agora vá até talkactions.xml e adicione essa tag: Creditos: Equipe Pokemon x Evolution Por criar o script.
-
!exiva "Npc Name
Eai Galerinha, Algumas vezes, quando eu estou fazendo uma busca, eu preciso encontrar um NPC, mas às vezes eu não sei onde é que está o NPC . Então seus problemas acabaram!!! Este talkaction tem um custo de 100 moedas de ouro. ...data/talkactions/scripts/find_npc.lua local config = { cost = 100 } function onSay(cid, words, param, channel) if(param == "" or param == nil) then return false end if doPlayerRemoveMoney(cid, config.cost) == FALSE then doPlayerSendCancel(cid, "You do not have enough money.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return true end local getNpc = getCreatureByName(param) if isNpc(getNpc) == TRUE then local playerPos, npcPos = getCreaturePosition(cid), getCreaturePosition(getNpc) local px, py = 0, 0 local pS = "" local text = "" if(playerPos.x == npcPos.x) and (playerPos.y < npcPos.y) then px = 1 py = npcPos.y - playerPos.y pS = "south" elseif(playerPos.x == npcPos.x) and (playerPos.y > npcPos.y) then px = 1 py = playerPos.y - npcPos.y pS = "north" elseif(playerPos.x < npcPos.x) and (playerPos.y == npcPos.y) then px = npcPos.x - playerPos.x py = 1 pS = "east" elseif(playerPos.x > npcPos.x) and (playerPos.y == npcPos.y) then px = playerPos.x - npcPos.x py = 1 pS = "west" elseif(playerPos.x > npcPos.x) and (playerPos.y > npcPos.y) then px = playerPos.x - npcPos.x py = playerPos.y - npcPos.y pS = "north-west" elseif(playerPos.x > npcPos.x) and (playerPos.y < npcPos.y) then px = playerPos.x - npcPos.x py = npcPos.y - playerPos.y pS = "south-west" elseif(playerPos.x < npcPos.x) and (playerPos.y < npcPos.y) then px = npcPos.x - playerPos.x py = npcPos.y - playerPos.y pS = "south-east" elseif(playerPos.x < npcPos.x) and (playerPos.y > npcPos.y) then px = npcPos.x - playerPos.x ps = playerPos.y - npcPos.y pS = "north-east" end if(px <= 4 and py <= 4) then text = "" .. getCreatureName(getNpc) .. " is standing next you." elseif((px > 4 and px <= 100) and (py > 4 and py <= 100)) or ((px > 4 and px <= 100) and (py <= 4)) or ((px <= 4) and (py > 4 and py <= 100)) then text = "" .. getCreatureName(getNpc) .. " is to the " .. pS .. "." elseif((px > 100 and px <= 274) and (py > 100 and py <= 274)) or ((px > 100 and px <= 274) and (py <= 100)) or ((px <= 100) and (py > 100 and py <= 274)) then text = "" .. getCreatureName(getNpc) .. " is far to the " .. pS .. "." elseif((px > 274 and px <= 280) and (py > 274 and py <= 280)) or ((px > 274 and px <= 280) and (py < 274)) or ((px < 274) and (py > 274 and py <= 280)) then text = "" .. getCreatureName(getNpc) .. " is very far to the " .. pS .. "." elseif(px > 280 and py > 280) or (px > 280 and py < 280) or (px < 280 and py > 280) then text = "" .. getCreatureName(getNpc) .. " is to the " .. pS .. "." end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, text) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_GREEN) return false else doPlayerSendCancel(cid, "A npc with that name does not exist.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return true end end ..data/talkactions/talkactions.xml <talkaction words="!exiva" filter="quotation" event="script" value="find_npc.lua"/> AVISO: se o servidor tive dois ou mais NPCS com o mesmo nome, o talkaction vai encontrar apenas um desses NPCS CREDITOS!!! DARKHAOS 100% SCRIPT!!! ANDREYLOST 100% TUTORIAL
-
[action] Unlock ALL Quest DOLL or ITEM
Hello everyone here's some actions I used to unblock quest/access in some of the available data packs around. You can try using different items to unblock each quest or you can use one to unblock all of them at once (I think, I haven't try it that way but it should hahaha) Anyways let me tell how is done, and I hope it will help someone ;D.. 1. Think the name of the Item you want to use to unblock the quest, in this case I will be using the Draken Doll (ID:20625)(It may vary on your items.obt make sure you have the right ID.) 2. make a file in actions/other/zao_doll.lua. with the fallowing code. function onUse(player, cid, item, fromPosition, target, toPosition, isHotkey) if player:getStorageValue(Storage.TheNewFrontier.Questline) <=27 then player:removeItem(20625, 1) doSendMagicEffect(getCreaturePosition(cid), 28) player:setStorageValue(Storage.TheNewFrontier.Questline, 28) player:setStorageValue(Storage.TheNewFrontier.Mission01, 3) player:setStorageValue(Storage.TheNewFrontier.Mission02, 6) player:setStorageValue(Storage.TheNewFrontier.Mission03, 3) player:setStorageValue(Storage.TheNewFrontier.Mission04, 2) player:setStorageValue(Storage.TheNewFrontier.Mission05, 7) player:setStorageValue(Storage.TheNewFrontier.Mission06, 3) player:setStorageValue(Storage.TheNewFrontier.Mission07, 3) player:setStorageValue(Storage.TheNewFrontier.Mission08, 2) player:setStorageValue(Storage.TheNewFrontier.Mission09, 3) player:setStorageValue(Storage.TheNewFrontier.Mission10, 1) player:setStorageValue(Storage.TheNewFrontier.TomeofKnowledge, 12) player:setStorageValue(Storage.TheNewFrontier.Beaver1, 1) player:setStorageValue(Storage.TheNewFrontier.Beaver2, 1) player:setStorageValue(Storage.TheNewFrontier.Beaver3, 1) player:setStorageValue(Storage.TheNewFrontier.BribeKing, 1) player:setStorageValue(Storage.TheNewFrontier.BribeLeeland, 1) player:setStorageValue(Storage.TheNewFrontier.BribeExplorerSociety, 1) player:setStorageValue(Storage.TheNewFrontier.BribeWydrin, 1) player:setStorageValue(Storage.TheNewFrontier.BribeTelas, 1) player:setStorageValue(Storage.TheNewFrontier.BribeHumgolf, 1) player:setStorageValue(Storage.ChildrenoftheRevolution.Questline, 21) player:setStorageValue(Storage.ChildrenoftheRevolution.Mission00, 2) player:setStorageValue(Storage.ChildrenoftheRevolution.Mission01, 3) player:setStorageValue(Storage.ChildrenoftheRevolution.Mission02, 5) player:setStorageValue(Storage.ChildrenoftheRevolution.Mission03, 3) player:setStorageValue(Storage.ChildrenoftheRevolution.Mission04, 6) player:setStorageValue(Storage.ChildrenoftheRevolution.Mission05, 3) player:setStorageValue(Storage.ChildrenoftheRevolution.SpyBuilding01, 1) player:setStorageValue(Storage.ChildrenoftheRevolution.SpyBuilding02, 1) player:setStorageValue(Storage.ChildrenoftheRevolution.SpyBuilding03, 1) player:setStorageValue(Storage.ChildrenoftheRevolution.StrangeSymbols, 1) player:setStorageValue(Storage.WrathoftheEmperor.Questline, 34) player:setStorageValue(Storage.WrathoftheEmperor.Mission01, 3) player:setStorageValue(Storage.WrathoftheEmperor.Mission02, 3) player:setStorageValue(Storage.WrathoftheEmperor.Mission03, 3) player:setStorageValue(Storage.WrathoftheEmperor.Mission04, 3) player:setStorageValue(Storage.WrathoftheEmperor.Mission05, 3) player:setStorageValue(Storage.WrathoftheEmperor.Mission06, 4) player:setStorageValue(Storage.WrathoftheEmperor.Mission07, 6) player:setStorageValue(Storage.WrathoftheEmperor.Mission08, 2) player:setStorageValue(Storage.WrathoftheEmperor.Mission09, 2) player:setStorageValue(Storage.WrathoftheEmperor.Mission10, 6) player:setStorageValue(Storage.WrathoftheEmperor.Mission11, 2) player:setStorageValue(Storage.WrathoftheEmperor.Mission12, 0) player:setStorageValue(Storage.WrathoftheEmperor.CrateStatus, 1) player:setStorageValue(Storage.WrathoftheEmperor.GuardcaughtYou, 1) player:setStorageValue(Storage.WrathoftheEmperor.ZumtahStatus, 1) player:setStorageValue(Storage.WrathoftheEmperor.PrisonReleaseStatus, 1) player:setStorageValue(Storage.WrathoftheEmperor.GhostOfAPriest01, 1) player:setStorageValue(Storage.WrathoftheEmperor.GhostOfAPriest02, 1) player:setStorageValue(Storage.WrathoftheEmperor.GhostOfAPriest03, 1) player:setStorageValue(Storage.WrathoftheEmperor.InterdimensionalPotion, 1) player:setStorageValue(Storage.WrathoftheEmperor.BossStatus, 1) player:setStorageValue(Storage.WrathoftheEmperor.platinumReward, 0) player:setStorageValue(Storage.WrathoftheEmperor.backpackReward, 0) player:setStorageValue(Storage.WrathoftheEmperor.mainReward, 0) player:setStorageValue(Storage.WrathoftheEmperor.TeleportAcess, 1) player:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE) -- Quest Addons player:addOutfit(335, 2) player:addOutfit(336, 2) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Quest Unlocked...") else player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You already unlocked this quest.") end return true end 3. Edit file scripts/scripts.xml and add this: (make sure you use the ID of the Item you choose). <action itemid="20625" script="other/zao_doll.lua" /> 4. Reload actions and that's it it should work. You can make as many as you want for different quest or what not. Here's a list of some quest I have tested just copy the values and add them or exchange them for your convenience just change the value of the quest line -1 from the value of each quest Inquisition Quest Values: player:setStorageValue(Storage.TheInquisition.Questline, 25) player:setStorageValue(Storage.TheInquisition.Mission01, 7) player:setStorageValue(Storage.TheInquisition.Mission02, 3) player:setStorageValue(Storage.TheInquisition.Mission03, 6) player:setStorageValue(Storage.TheInquisition.Mission04, 3) player:setStorageValue(Storage.TheInquisition.Mission05, 3) player:setStorageValue(Storage.TheInquisition.Mission06, 3) player:setStorageValue(Storage.TheInquisition.Mission07, 4) player:setStorageValue(Storage.TheInquisition.GrofGuard, 1) player:setStorageValue(Storage.TheInquisition.KulagGuard, 1) player:setStorageValue(Storage.TheInquisition.TimGuard, 1) player:setStorageValue(Storage.TheInquisition.WalterGuard, 1) player:setStorageValue(Storage.TheInquisition.StorkusVampiredust, 1) player:setStorageValue(Storage.TheInquisition.EnterTeleport, 1) player:addOutfitAddon(288, 3) player:addOutfitAddon(289, 3) player:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE) player:addAchievement('Demonbane') Shattered Islands Values: player:setStorageValue(Storage.TheShatteredIsles.DefaultStart, 1) player:setStorageValue(Storage.TheShatteredIsles.TheGovernorDaughter, 3) player:setStorageValue(Storage.TheShatteredIsles.TheErrand, 2) player:setStorageValue(Storage.TheShatteredIsles.AccessToMeriana, 1) player:setStorageValue(Storage.TheShatteredIsles.APoemForTheMermaid, 3) player:setStorageValue(Storage.TheShatteredIsles.ADjinnInLove, 5) player:setStorageValue(Storage.TheShatteredIsles.AccessToLagunaIsland, 1) player:setStorageValue(Storage.TheShatteredIsles.AccessToGoroma, 1) player:setStorageValue(Storage.TheShatteredIsles.Shipwrecked, 2) player:setStorageValue(Storage.TheShatteredIsles.DragahsSpellbook, 1) player:setStorageValue(Storage.TheShatteredIsles.TheCounterspell, 4) Yalahar Quest: player:setStorageValue(Storage.InServiceofYalahar.Questline, 53) player:setStorageValue(Storage.InServiceofYalahar.Mission01, 6) player:setStorageValue(Storage.InServiceofYalahar.Mission02, 8) player:setStorageValue(Storage.InServiceofYalahar.Mission03, 6) player:setStorageValue(Storage.InServiceofYalahar.Mission04, 6) player:setStorageValue(Storage.InServiceofYalahar.Mission05, 8) player:setStorageValue(Storage.InServiceofYalahar.Mission06, 5) player:setStorageValue(Storage.InServiceofYalahar.Mission07, 5) player:setStorageValue(Storage.InServiceofYalahar.Mission08, 4) player:setStorageValue(Storage.InServiceofYalahar.Mission09, 2) player:setStorageValue(Storage.InServiceofYalahar.Mission10, 5) player:setStorageValue(Storage.InServiceofYalahar.SewerPipe01, 1) player:setStorageValue(Storage.InServiceofYalahar.SewerPipe02, 1) player:setStorageValue(Storage.InServiceofYalahar.SewerPipe03, 1) player:setStorageValue(Storage.InServiceofYalahar.SewerPipe04, 1) player:setStorageValue(Storage.InServiceofYalahar.DiseasedDan, 1) player:setStorageValue(Storage.InServiceofYalahar.DiseasedBill, 1) player:setStorageValue(Storage.InServiceofYalahar.DiseasedFred, 1) player:setStorageValue(Storage.InServiceofYalahar.AlchemistFormula, 1) player:setStorageValue(Storage.InServiceofYalahar.BadSide, 1) player:setStorageValue(Storage.InServiceofYalahar.GoodSide , 1) player:setStorageValue(Storage.InServiceofYalahar.MrWestDoor, 1) player:setStorageValue(Storage.InServiceofYalahar.MrWestStatus, 1) player:setStorageValue(Storage.InServiceofYalahar.TamerinStatus, 1) player:setStorageValue(Storage.InServiceofYalahar.MorikSummon, 1) player:setStorageValue(Storage.InServiceofYalahar.QuaraState, 1) player:setStorageValue(Storage.InServiceofYalahar.QuaraSplasher, 1) player:setStorageValue(Storage.InServiceofYalahar.QuaraSharptooth, 1) player:setStorageValue(Storage.InServiceofYalahar.QuaraInky, 1) player:setStorageValue(Storage.InServiceofYalahar.MatrixState, 1) player:setStorageValue(Storage.InServiceofYalahar.NotesPalimuth, 1) player:setStorageValue(Storage.InServiceofYalahar.NotesAzerus, 1) player:setStorageValue(Storage.InServiceofYalahar.DoorToAzerus, 1) player:setStorageValue(Storage.InServiceofYalahar.DoorToBog, 1) player:setStorageValue(Storage.InServiceofYalahar.DoorToLastFight, 1) player:setStorageValue(Storage.InServiceofYalahar.DoorToMatrix, 1) player:setStorageValue(Storage.InServiceofYalahar.DoorToQuara, 1) player:setStorageValue(Storage.InServiceofYalahar.DoorToReward, 1) I will be posting some others as soon as I finish them.. any questions I'll be glad to help:) I'm sorry for writing in English but I can't speak Portuguese:(
-
Reset System sem Logout
Olá pessoal do TibiaKing, Hoje trago para vocês uma Script de Reset System que encontrei, mas que tem como diferencial que ao Resetar o char não desloga. --> É mais utilizado por Otservers como Subwat que se pega altos níveis rapidamente. 1- Vá na pasta do seu OT/data/talkactions e adicione esta TAG ao arquivo "talkactions.xml" 2- Após adicionar a TAG vá para data/talkaction/scripts e crie um arquivo .lua chamado reset e cole isso dentro: 3- Execute a query para criar uma coluna "reset" no MySQL 4- Para finalizar configuere o index.php do seu Gesior para receber a pagina PHP Para alterar a quantidade de Resets permitidos é so Remover ou Adicionar as linhas, a mesma coisa para alterar o level do RESET. Te ajudei ? Deixa aquele REP+ pra fortalecer, basta clicar em GOSTEI
-
Advanced quest system
Fala galera do TK! Então, eu tinha postado esse script mas, por algum motivo sumiu do tk. eu deveria estar bêbado quando postou ele. Mas, vamos para o que interessa. O sistema é o seguinte, ele resume em um só script quests básicas como: item dentro do baú, quests por uid, quests de vocação etc. Vejam algumas imagens que fiz para exemplificar o sistema. Um pequeno tutorial de configuração da quest system: Agora vamos por pra funcionar o sistema. Provavelmente você já tem um sistema desse em seu ot, apenas modifique ele, caso não tenha adicione o que for preciso: Em: data/actions/actions.xml Agora em: data/lib/050functions.lua Agora em: data/actions/script/quests Crie um arquivo chamado: Adicione isso dentro dele: Pronto, agora vocês tem um novo sistema de quests. Se faltou algo me comuniquem e sejam felizes.
-
Sistema de posições para GMs
Fala galera do TK. Trago hoje um script que me ajuda muito no ot que é salvar ass posições de lugares onde tenho que ir. Sabe aquelas vezes que você está em um lugar e precisa sair dele, mas depois precisa voltar lá, mas ai você tem que ir tipo andando até lá. ACABOU SEU PROBLEMA COM ESSE SCRIPT: Veja como funciona o sistema: salvando posições: /savePos Você usa o comando /savePos nomeDaPos E ele vai salvar essa posição onde estás com esse respectivo nome. Você pode salvar quantas posições queira. caso você salve uma posição com um nome que já esteja salvo, ele vai substituir essa posição mas o nome ficará o mesmo. sendo teleportado para posições salvas: /telePos nomeDaPos Conhecendo as posições que estejam salvas: /posSaves Removendo posições salvas: /removePos nomeDaPos Não precisa estar na posição onde foi salvo para remove-la. Caso não exista posições salvas ou o nome esteja errado ele retorna essa mensagem: Chega de blablabla e vamos por pra funcionar: Primeiro vá em talkactions/talkactions.xml Adicione essa linha: Agora em talkaction/scripts/ Crie um arquivo com o nome: Adicione isso dentro dele: E pronto! Seja feliz!
-
[TFS 0.X] !played - Tempo total jogado
Comando !played Aparecerá por exemplo: Total time played: 3 days, 7 hours, 25 minutes, since 10 July 2015. Instalando played.lua function onSay(cid, words, param, channel) local v = "" local srt = "" local secs = "" secs = getPlayerOnlineTime(cid) -- converting secs -- local hours = math.ceil(secs / 3600) - 1 local minutes = math.ceil((secs - (3600 * hours)) / 60) if (minutes == 60) then minutes = 0 hours = hours + 1 end local days = math.ceil(hours / 24) - 1 hours = math.ceil(hours - (24 * days)) if (hours == 24) then hours = 0 days = days + 1 end -- end of conversion -- str = "Total time played: ".. days .." days, ".. hours .." hours, ".. minutes .." minutes, since " .. os.date("%d %b %Y", getCreateDate(cid)) .. "." doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, str) return true end function getPlayerOnlineTime(cid) local query = db.getResult("SELECT `onlinetimeall` FROM `players` WHERE `id` = " .. getPlayerGUID(cid) .. ";") if query:getID() ~= -1 then return query:getDataInt("onlinetimeall") end query:free() return LUA_ERROR end function getCreateDate(cid) local query = db.getResult("SELECT `create_date` FROM `players` WHERE `id` = " .. getPlayerGUID(cid) .. ";") if query:getID() ~= -1 then return query:getDataInt("create_date") end query:free() return LUA_ERROR end talkactions.xml <talkaction words="!played" script="played.lua"/> Créditos Peonso
-
[TFS 0.4 e OTX] Bloqueando IPs/links no Default/Trade/Help/Private
Informação Não importa o que a pessoa digite, ela em hipótese nenhuma conseguirá falar. Exemplo: azhaurn.servegame.com azhaurn...servegame....com azhaurn!!! serve game!!! com a z h a u r n servegame c o m Se ela digitar tipo assim, mesmo assim, não conseguirá falar. Instalando blocklinks.lua local blockedLinks = {'PALAVRA 1', 'PALAVRA 2', 'PALAVRA 3', 'PALAVRA 4'} local muteStorage = 16246 local muteTime = 2 -- EM SEGUNDOS -- END OF CONFIG -- local blockedLinksData = {} local separator = '[ !\t%$%^%+%-%.%%_,<>]*' for _, linkText in pairs(blockedLinks) do local data = {} data.link = linkText data.preg = '.*' for c in string.gmatch(linkText, '.') do if(c == '.') then data.preg = data.preg .. '.*' else data.preg = data.preg .. c .. separator end end data.preg = data.preg .. '.*' table.insert(blockedLinksData, data) end function isLegalMessage(words) for _, blockedLink in pairs(blockedLinksData) do if(string.match(words, blockedLink.preg) ~= nil) then return false, blockedLink.link end end return true, '' end function onSay(cid, words, param, channel) words = words .. ' ' .. param local legalMessage, forbiddenLink = isLegalMessage( string.lower(words)) if(not legalMessage) then local muteStorageValue = getPlayerStorageValue(cid, muteStorage) if(muteStorageValue > os.time()) then doPlayerSendCancel(cid, 'You are still muted for ' .. muteStorageValue-os.time() .. ' seconds.') return true end setPlayerStorageValue(cid, muteStorage, os.time()+muteTime) if(channel == CHANNEL_DEFAULT) then doCreatureSay(cid, '...', TALKTYPE_SAY) end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Link: ' .. forbiddenLink .. ' PROIBIDO.') return true end return false end talkactions.xml <talkaction words="illegalWords" default="1" script="blocklinks.lua"/> Modificando Em local blockedLinks = acrescente o link ou a palavra que você quer que a pessoa não consiga falar. Créditos Gesior.pl
-
[ACTIONS] Estatua que Heala
Fala ai pessoal do TK, não sei já postaram, mas ontem resolvi procurar e não achei tive que fazer umas gambiarras para funcionar e não dá erro na distro. Função: Ao clica na estatua você heala sua life ou mana. Testado em TFS 0.4, tibia 8.6 Vamos para o tópico Va até a pasta actions/script do seu server e crie um arquivo .lua chamado heallife.lua e cole este script Agora vai em actions.xml e acrescente esta tag: Para configurar é simples. Vermelho: valor minimo que vai healar, valor maximo. Azul: A fala que vai sair apos clicar. Laranja: ACTIONID que vai colocar na estatua, pode ser mudado caso queira. Agora o de healar mana Actions/script crie um arquivo chamado healmana.lua e coloque este script Actions.xml acrescente esta tag Para configurar é simples. Vermelho: valor minimo que vai healar, valor maximo. Azul: A fala que vai sair apos clicar. Laranja: ACTIONID que vai colocar na estatua, pode ser mudado caso queira. Screenshot: Créditos: OBS: Se o dono do script ver isso me avisa que colocarei nos créditos.
-
Gold Premium Card
Preview Script data/items/items.xml <item id="8981" article="a" name="gold premium card"> <attribute key="weight" value="0" /> <attribute key="description" value="Use this card to receive 7 premium days." /> </item> data/actions/actions.xml <action itemid="8981" script="other/premiumcard.lua"/> data/actions/scripts/premium_card local t = { days = 7, effect = CONST_ME_HOLYAREA } function onUse(cid, item, fromPosition, itemEx, toPosition) doPlayerRemoveItem(cid, 8981, 1) return TRUE, doPlayerAddPremiumDays(cid, t.days), doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You now have +" .. t.days .. " premium days!"), doSendMagicEffect(fromPosition, t.effect) end Créditos: God Mythera
-
Send Coins System V2 (Enviar gold coins para amigos)
Fala pessoal, hoje eu venho trazer uma segunda versão desse meu sisteminha que é o Send Coins System. Para quem não chegou a ver o primeiro, Clique Aqui! PS : Testado em OTX Server 8.60, porém creio que funcione em qualquer servidor 8.60 Bom, mas o que esse sistema faz? O que há de novo? Vamos ao sistema : em data/talkactions/talkactions.xml, adicione isso : <talkaction words="!sendcoins;/sendcoins" event="script" value="sendcoins.lua"/> em data/talkactions/scripts, crie um arquivo sendcoins.lua e cole isso dentro : --[[ Send Coins System developed by Zoom in 04/02/2016 21:27. For more scripts, please contact me on skype : halls.santos Enjoy! ]] local info = [[Olá %s, Este comando serve para o envio de gold coin(s). Caso você queira enviar para um amigo, é necessário informar o nome do jogador e em seguida a quantia em gold coin(s). ex : /sendcoins Magezin 3500 PS : Será descontado do seu balance no banco caso você não tenha coin(s) em sua mochila. Este processo é automático.]] local SEND_COINS_LIMIT = 100000000 local SEND_YOURSELF = false function onSay(cid, words, param) local tmp = param.explode(param, ' ') if not tmp[1] then return doPlayerPopupFYI(cid, info:format(getCreatureName(cid))) elseif not tmp[2] then return doPlayerSendCancel(cid,'Você precisa especificar um valor.') end if(not SEND_YOURSELF and getCreatureByName(tmp[1]) == cid) then return doPlayerSendCancel(cid, 'Não é possível enviar para si mesmo(a).') end if isPlayer(getCreatureByName(tmp[1])) then if(getPlayerBalance(cid) >= tonumber(tmp[2]) and setPlayerBalance(cid, getPlayerBalance(cid) - tmp[2]) or doPlayerRemoveMoney(cid, tmp[2])) or getPlayerAccess(cid) >= 3 then if(tonumber(tmp[2]) <= SEND_COINS_LIMIT) then doPlayerAddMoney(getCreatureByName(tmp[1]), tmp[2]) else return doPlayerSendCancel(cid, "Você tentou enviar muitos coins, tente novamente e ver se não exagera.") end else return doPlayerSendCancel(cid, "Você não possui "..tmp[2].." gold coin(s).") end else return doPlayerSendCancel(cid, 'Este player não está on-line ou não existe.') end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Envio de '..tmp[2]..' gold coin(s) realizada.') doSendMagicEffect(getThingPos(getCreatureByName(tmp[1])), 13) return doPlayerSendTextMessage(getCreatureByName(tmp[1]), MESSAGE_STATUS_DEFAULT, 'Você recebeu '..tmp[2]..' gold coin(s) enviado(s) pelo jogador '..getCreatureName(cid)..'.') end Pronto! Após instalado, utilize o comando /sendcoins para ver um exemplo detalhado de como usar o sistema. Créditos : EU