Jump to content

Search the Community

Showing results for tags 'talkaction'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • xTibia - Notícias e Suporte
    • Regras
    • Noticias
    • Soluções
    • Projetos Patrocinados
    • Tutoriais para Iniciantes
    • Imprensa
  • OTServ
    • Notícias e Debates
    • OTServlist
    • Downloads
    • Recursos
    • Suporte
    • Pedidos
    • Show-Off
    • Tutoriais
  • OFF-Topic
    • Barzinho do Éks
    • Design
    • Informática

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Sou

  1. Estava Eu Tentando Ajudar Um Amigo, Quando Ele Me Deu Uma Ideia De Solucionar Meu Prorpio Problema. Ele Pedia Que Queria Um Script Tipo !spells Que Mostrasse Todas Spells Da Vocação Do Player! Só Que Uma Era !informacao Para Que Pudesse Ver As Informações Do Servidor Em Texto! E Então Gostei e Resolvi Tentar Juntar As Duas, Pois Não Estava Satisfeito do Jeito Que Minhas Informações De Spells Eram Vistas! E Então Testei e Ficou Otimo! E Deu Nisso ; Isso Fica Em Data / Talkactions > Script Crie Um Arquivo .Lua e Renomie Para spells.lua Data / Talkactions / Talkactions.xml Testado e Aprovado Por Mim No Servidor Yurots 8.1 Creditos; 40% MasterDino! 40% Esqueci Aonde Peguei, e o Membro Está Inativo Desde 2011! 20% Eu Por Juntar Os Dois e Fazer Algo Um Pouco Melhor!
  2. Eae galera do xtibia, assim, eu gostaria de um script, de uma talkaction bem simples, Voce usa o comando, e aparece informaçoes em sua tela, tipo !spells, mas em vez das magias apenas informaçoes(Configuravel)... É uma coisa que será útil para mim, e eu nunca me interessei muito por isso nao tenho conhecimento de como fazer, espera que possam me ajudar, serei muito grato!
  3. Duuhzinhow

    Talkaction

    Eae xtibianos, eu to com uma duvida aqui, que se alguem me ajudar vai ser muito útil para mim (y), Bem eu gostaria de saber como eu faço para que apenas uma vocaçao possa usar "x" talkaction... rep+ pra qem ajudar!
  4. Aviso Esse script precisa do Advanced Guild System instalado corretamente para funcionar. Informações Essa talkaction reúne as informações de todos os jogadores que tem guild. Depois, separa os 10 lvls mais altos de cada guild e soma, fazendo um ranking. No final, o jogador que usar o comando recebe uma janela com as 10 guilds (se existirem) mais fortes do servidor, rankeadas pela soma dos 10 levels mais altos (se existirem). Código Salve como guildrank.lua em talkactions/scripts: Agora, registre a talkaction em talkactions.xml: <talkactions words="/guildrank" access="0" event="script" value="guildrank.lua"/>
  5. Olá Xtibianos, estou precisando de umas talkactions de house , e gostaria que vcs me ajudassem. Quando algum player comprar uma house , ele venderia ela falando !sellhouse "nome do player que vai comprar, e então aparecia um trade com um folhetinho (que teria os dados da casa , número , cidade, etc.) que eu ja tenho aki, e o player comprador daria trade normal no dono da casa. OBS: Se o dono da casa tivesse deixado itens ( qualquer item ) dentro da house e vendido msm assim, os itens ficariam na casa para o comprador. Quando um player compra uma casa , ele quer que outras pessoas entrem na casa dele , então ele falaria Aleta sio, e apareceria uma janela , onde ele escreveria ou apagaria nomes de quem poderia entrar na house . OBS: mas somente entrar , abrir a porta NÃO ! Se o dono da casa quisesse que algum player tivesse a liberdade , de abrir a porta de sua house , entrar sair e até mesmo usar o comando Aleta sio, ele falaria Aleta som e abriria outra janela aonde ele escreveria e apagaria nomes de que ele quisesse dar essa tal liberdade. Agradeço muito a quem ajudar. Vlw !
  6. Fala XTibianos, vim aqui postar um script muito simples, porem criativo e que eu nunca vi aqui no XTibia. É uma talkaction em que você faz um player falar, npc ou monstro. Obs: Os monstros ou NPC, se tiver mais de 1 criatura com o mesmo nome, somente uma vai falar, que é a primeira que seu char vai ir até ele por /goto Foto da talkaction: Vamos ao código, vá em talkactions/scripts e dê ctrl + c e ctrl + v em um arquivo qualquer e renomeie para criaturasfalar.lua, e coloque isso dentro: function onSay(cid, words, param) local t = string.explode(param, ",") doCreatureSay(getCreatureByName(t[1]), t[2], 1) return true end Agora abra o talkactions.xml e coloque essa tag: <talkaction log="yes" words="/falar" access="5" event="script" value="criaturasfalar.lua"/> É isso galera, abraços!
  7. Na verdade é basicamente uma função a parte, mas o modo mais fácil de ativar ela é uma talkaction. Ela vai criar um arquivo de texto ordenando todos os storages que já foram usados por pelo menos algum jogador dentro do seu servidor. Somente chaves numéricas serão consideradas. Código storagelist.lua em talkactions/scripts function getUsedStoragesList() local storages = db.getResult("SELECT DISTINCT key FROM player_storage ORDER BY key") if not storages or storages:getID() == -1 then return false end local str = "Essas são as storages que foram usadas pelo menos uma vez no seu servidor:\n\n" local count = 1 repeat local key = storages:getDataInt("key") if tonumber(key) > 0 then str = str .. count .. " - " .. key .. "\n" count = count + 1 end until not storages:next() if str then local file = io.open("Used Storage List.txt", "w+") file:write(str) file:close() return true end return false end function onSay(cid, words, param) if getUsedStoragesList() then doPlayerSendTextMessage(cid, 27, "Lista criada com sucesso na pasta do seu servidor.") else doPlayerSendTextMessage(cid, 27, "Não foi possível criar a lista.") end return true end Tag Em talkactions.xml, adicione: <talkaction words="/storagelist" access="5" event="script" value="storagelist.lua"/> Use com o GOD/Admin e olhe na pasta do seu servidor. Abra o arquivo Used Storage List.txt. A cada novo uso, a lista é atualizada.
  8. Versão: 4.0 Distro: 1.0+ Descrição: Existem muitos scripts que ajudam o administrador do servidor a cuidar dele, um deles é saber coisas sobre quem está jogando e se está sendo honesta. Eu peguei alguns scripts e estou juntando em um para diminuir o tamanho e ter uma fácil verificação. TAG: <talkaction log="yes" words="/p" separator=" " script="playercheck.lua" /> Script: Talkactions/scripts/playercheck.lua function getItemsInContainer(cont, sep) local text = "" local tsep = "" local count = "" for i=1, sep do tsep = tsep.."-" end tsep = tsep..">" for i=0, getContainerSize(cont.uid)-1 do local item = getContainerItem(cont.uid, i) if isContainer(item.uid) == FALSE then if item.type > 1 then count = " ("..item.type.."x)" end text = text.."\n"..tsep..getItemName(item.itemid)..""..count.." ("..item.itemid..")" else if getContainerSize(item.uid) > 0 then text = text.."\n"..tsep..getItemName(item.itemid).." ("..item.itemid..")" text = text..getItemsInContainer(item, sep+2).."" else text = text.."\n"..tsep..getItemName(item.itemid).." ("..item.itemid..")" end end end return text end function onSay(cid, words, param) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return false end local slotName = {"Cabeça", "Amuleto", "Backpack", "Armor", "Mao Direita", "Mao Esquerda", "Legs", "Pés", "Ring", "Ammo Slot"} local t = param:split(', ') if(t[1] == 'check') then if getPlayerGroupId(cid) >= 2 then local p = Player(t[2]) if p then local text = p:getName().."'s Equipment: " for i=1, 10 do text = text.."\n\n" local item = getPlayerSlotItem(p:getName(), i) if item.itemid > 0 then count = '' if item.type > 1 then count = " ("..item.type.."x)" end if isContainer(item.uid) == TRUE then text = text..slotName[i]..": "..getItemName(item.itemid)..""..count.." ("..item.itemid..") "..getItemsInContainer(item, 1) else text = text..slotName[i]..": "..getItemName(item.itemid)..""..count.." ("..item.itemid..")" end else text = text..slotName[i]..": Empty" end end doShowTextDialog(cid, 6579, text) else doPlayerSendCancel(cid, "This player is not online or not exist.") end end elseif(t[1] == 'delete') then if getPlayerGroupId(cid) == 3 then local p = Player(t[2]) if p then count = t[4] if(not t[4]) then count = 1 end if getPlayerItemCount(p:getName(), t[3]) > 0 then if doPlayerRemoveItem(p:getId(), t[3], count) then doPlayerSendCancel(cid, "Deleted Item.") else doPlayerSendCancel(cid, "This player does not have this amount of item.") end else doPlayerSendCancel(cid, "This player does not have the item.") end else doPlayerSendCancel(cid, "This player is not online or not exist.") end end else if getPlayerGroupId(cid) == 3 then id = getItemIdByName(t[1]) if not id then doPlayerSendCancel(cid, "The "..t[1].." not exist. ") return false end local result = db.getResult("SELECT name FROM players WHERE id IN (SELECT player_id FROM player_items WHERE itemtype = ".. id ..");") local msg = "Search results by item ".. getItemName(id) .." in your database:\n\n" if result:getID() ~= -1 then while true do local name = result:getDataString("name") msg = msg .. name .."\n" if not result:next() then break end end else msg = msg .. "The item was not found in any player." end doShowTextDialog(cid, id, msg) end end return true end Explicação: Quando o god digita: /p check, (PNAME) - Ele verifica os items que o player tem. /p del, (ID), (PNAME), (COUNT) - Ele deleta o item de determinado player (Se não colocar o count ele irá remover somente 1). /p (ID) - Ele verifica quantos players tem tal item. Créditos: Oneshot CaioODemais Comedinha (Bruno Carvalho)
  9. Bom editei um script de pda, o de mudar de clan, o objetivo é que: Após mudar de clan a primeira vez, as próximas custem 1kk, mas não funcionou como deveria, acho que a variável declarada não está tendo seu valor alterado. function onSay(cid, words, param, channel) if param == "" then return sendMsgToPlayer(cid, 20, "Estao faltam os parametros! [clan name], [rank]") end local t = string.explode(param, ",") local clans = {'Volcanic', 'Seavell', 'Orebound', 'Wingeon', 'Malefic', 'Gardestrike', 'Psycraft', 'Naturia', 'Raibolt'} if not isInArray(clans, t[1]) then return sendMsgToPlayer(cid, 20, t[1].." nao é uma clan valido!") elseif not tonumber(t[2]) then return sendMsgToPlayer(cid, 20, "Parametros errados! [clan name], [rank].") end local rank = tonumber(t[2]) local clan = t[1] local javirou = 0 if doPlayerRemoveItem(cid, 2160, 100) then javirou = 0 return false end if javirou == 1 then doPlayerSendTextMessage(cid, 20, "Você já tem um clan, Custa 1kk para mudar.") return true end if javirou == 0 then if setPlayerClan(cid, clan) then setPlayerClanRank(cid, rank) javirou = 1 return sendMsgToPlayer(cid, 20, "Troca de clan feita. Agora voce pertence ao clan: "..clan) else return sendMsgToPlayer(cid, 20, "Voce tem que terminar todas as tasks antes de sair do clan!") end end return true end "javirou" é a variável que estou tentando usar, não gosto de storages '-' O que acontece é que, está mudando de clan de graça o tempo todo.
  10. [uRGENTE] Então galera to com um problema bem pertinente no meu servidor. Os players matam, matam, e matam, e quando digita !frags está ZERADO... O problema é que eu fui pesquisar, achei varios comandos pra executar no phpmyadmin, e nada. Simplesmente ele não sai do 0 frags. Pode matar 1,2, 5, 20, fica em ZERO. Quem puder me ajudar, agradeço e Rep +. Obrigado Ah, o servidor é um Hollister Baiak que baixei...se precisar postar algo peçam ai. @edit problema resolvido, era so colocar TRUE no config.lua em DeathListEnabled. Obrigado.
  11. Olá Xtibianos . Esse é meu primeiro script e está bem 'rustico' por não conhecer muito sobre o mesmo então, caso houver erros ou criticas construtivas, estarei aberto a sugestões e ajuda. Esta talkaction permite a você compre a segunda promotion (desde que tenha no seu vocations.xml as mesmas já configuradas) de suas respectivas vocações por dias de premium ou por dinheiro. Primeiro vá em: data\talkactions\scripts e faça uma copia de qualquer arquivo e renomeie como secondprom.lua Abra o mesmo e apague todo o seu conteúdo e cole isto no lugar: Edite somente esta parte a seu gosto. local level = 100 -- level necessário para comprar a promotion local premdays = 5 -- dias que serão debitados da premium do player agora é só ir na pasta data\talkactions e adicionar esta linha no talkactions.xml: a parte em vermelho (second) é o que o player ira dizer para comprar a promotion, também edite ao seu gosto. Caso queira que seja comprada por dinheiro então use este script: Apenas edite estas partes: local level = 100 -- level necessário para comprar a promotion local cost = 50000 -- valor em gps que sera debitado do player não esqueça de adicionar a linha de comando no talkactions.xml bom, é isso! caso acharem necessário modificar algo para um melhor funcionamento ou 'estética', fiquem a vontade. um abraço!
  12. Gente, sou novo aqui, e estou com um server editado do Slicer. Eu adicionei uns pokemons aqui, e eles não estão dando loot, mesmo mechendo no .xml deles. Gostaria que alguém me ajudasse a arrumar. Aqui está um .xml de um pokemon adicionado recentemente e que não esta dando loot. <?xml version="1.0" encoding="UTF-8"?> <monster name="Aggron" nameDescription="an aggron" race="bug" experience="484" speed="130" manacost="0"> <health now="90" max="90"/> <look type="1472" head="40" body="60" legs="95" feet="113" corpse="105"/> <targetchange interval="10000" chance="0"/> <strategy attack="100" defense="0"/> <flags> <flag summonable="1"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="1"/> <flag convinceable="1"/> <flag pushable="1"/> <flag canpushitems="0"/> <flag canpushcreatures="0"/> <flag targetdistance="1"/> <flag staticattack="97"/> <flag runonhealth="0"/> <flag hungerdelay="21"/> </flags> <attacks> <attack name="melee" interval="2000" chance="100" range="1" min="-50" max="-100"/> <attack name="Scratch" interval="2570" chance="31" range="1"/> <attack name="Poison Sting" interval="2805" chance="29" range="1"/> <attack name="Sleep Powder" interval="5164" chance="20" range="1"/> <attack name="Slash" interval="2805" chance="29" range="1"/> <attack name="Stun Spore" interval="4920" chance="20" range="6"/> <attack name="Poison Powder" interval="2946" chance="28" range="1"/> <attack name="Absorb" interval="2805" chance="29" range="1"/> <attack name="Poison Bomb" interval="2805" chance="23" range="4"/> <attack name="Fury Cutter" interval="3105" chance="25" range="4"/> <attack name="X-Scissor" interval="3805" chance="25" range="5"/> </attacks> <defenses armor="0" defense="0"/> <voices interval="5000" chance="10"> <voice sentence="ARII!"/> <voice sentence="RIAADOS!"/> <voice sentence="ARIADOS!"/> </voices> <loot> <item id="12164" chance="5000" countmax="50"/> <item id="12176" chance="4000" countmax="5"/> <item id="12198" chance="3000" count="1" countmax="1"/> <item id="11444" chance="100" count="1" countmax="1"/> </loot> <script> <event name="Spawn"/> </script> </monster> Muito Obrigado ! Valendo rep+
  13. Fala ae galera, a um tempo eu pedi para que alguem fizesse um comando de clan para mim e o amigo Zipter98 criou esse comando para mim, entao vim posta-lo aqui para vcs. Talkaction.xml tag: <talkaction log="yes" words="!entrarclan;!rankclan;!trocarclan" event="script" value="clan.lua"/> Clan.lua talkactions/scripts: Comando funciona da seguinta forma: FAQ: Aonde que eu edito para trocar a quantidade de dinheiro que precisa pra trocar de clan ? R: Só procurar por essa parte no script: local item = 2160 --ID do item. local qnt = 50 --Quantidade do item. 2160 = Ten Thousand Dollar 50 = Quantidade ( 500k ) Creditos: Zipter98
  14. Bom galera, eu queria uma talkaction pra que o player falasse !vida, e ele mostrasse a quatidade de vida total e vida atual do player, ou somente vida total, tanto faz xD
  15. Olá, eu estava testando meu serv, quando vi que os tutores tinham os poderes de um ADM, podiam fazer pokes, podiam criar itens e várias coisas. Eu já fui ver lá no Talkactions.xml, mas estava tudo certinho! Se me ajudarem e conseguirem, ganharão 3 reps. Ah eu errei onde coloco esse tópico, me desculpem, só percebi na hora. Quem puder arrasta ele?
  16. Olá galera tibiana, queria que vocês fizessem uma talkaction que ao usar o comando /item 2160 (ID 2160 é apenas um exemplo) mostrasse uma lista com todos os players que tem este item, mostrando o nome do player que possui o item e a quantidade. OBS: Apenas GODs podem usar este comando. Quero que isso seja exibido dentro uma caixa de texto de livro, aquela que ao clicar em um spellbook para ver as magias aparece, (doShowTextDialog). Outro ponto importante é que ao usar esse comando ele verifique na data base e não apenas nos players online. Se puderem incrementar o script com um /removeitem 2160, quantidade, nomedoplayer ficaria ainda mais agradecido. Tenho uma duvida quanto aos itens de house e queria que vocês min esclarecessem onde que fica salvo os itens que são guardados em casas, qual o local da data base? É na aba Items player? onde fica salvo com o ID do dono da casa. Se não for pedir de mais já pedindo, caso o script solicitado a cima não verifique os itens que tem nas houses, poderiam fazer outro em que usasse o comando /itemhouse 2160 seria a mesma função basicamente, só que neste queria que mostrasse a quantidade, o ID da house e o nome do dono da casa. E para ficar perfeito poderiam fazer este tambem: /removeitemhouse 2160, quantidade, ID da house ele teria a mesma função do /removeitem citado a cima, só que ele iria remover X quantidade do item (2160 por exemplo) da house de ID Y. Bom galera é isso.
  17. Informações Baseado no antigo /ban, mas esse comando irá banir apenas contas. Ou seja, você não poderá banir jogadores separados(para isso use o comando v.1.0) nem contas. Existem algumas maneiras de usá-lo: !ban nome_do_jogador, x Você irá banir a conta do jogador por um número x de dias. O comentário padrão é "no comment was added" e a razão será "destructive behaviour". !ban nome_do_jogador, x, porque ele era feio Você irá banir a conta do jogador por um número x de dias. O comentário será "porque ele era feio" e a razão será padronizada (destructive behaviour) !ban nome_do_jogador, x, comentário, 1-4 Tudo acima, mas com a razão especificada (de 1 a 4). Você pode conferir as razões disponíveis abaixo: !ban reasons Para saber quais as razões possíveis use esse comando. O resultado será 1 - unsuitable name, 2 - spamming, 3 - use of unnoficial software, 4 - destructive behaviour. !unban nome_do_jogador Desbane a conta do jogador, permitindo-o logar novamente. OBS.: com esse comando você pode banir jogadores tanto online quanto offline. Código Salve esse código como banunban.lua em talkactions/scripts: E adicione essa tag em talkactions.xml: <talkaction log="yes" words="!ban;!unban" access="5" event="script" value="banunban.lua"/> Testado em OTserver 8.6 - banco de dados SQLite.
  18. Não consigo arrumar um ja procurei e dois que achei tava errados. Se alguém tiver um e explicar como adiciono pra eu garantir que não fiz nada errado agradeço. @Edit e um !promotion seria bem útil também hehehe
  19. function onSay(cid, words, param) local shop = compra[param] local minlevel = 50 -- level minimo para usar o comando local idmoeda = 12372 -- id da moeda para comprar os itens -- 2148 é gold coin local compra = { ["megastaff"] = {id = 7424, count = 1, price = 10}, --- [nome do item que aparecerá na loja] = id do item, quantidade, preço em idmoeda ["megaclub"] = {id = 7423, count = 1, price = 10}, ["megasword"] = {id = 7417, count = 1, price = 10}, ["megaaxe"] = {id = 2441, count = 1, price = 10}, ["megadistance"] = {id = 5907, count = 1, price = 10}, ["megaarmor"] = {id = 8877, count = 1, price = 12}, ["megarobe"] = {id = 12618, count = 1, price = 12}, ["megashield"] = {id = 12194, count = 1, price = 12}, ["megaorb"] = {id = 12608, count = 1, price = 12}, ["megaboots"] = {id = 2358, count = 1, price = 15}, ["megapacc1"] = {id = 6087, count = 1, price = 7}, ["megapacc2"] = {id = 6088, count = 1, price = 10}, ["megapacc3"] = {id = 6089, count = 1, price = 20}, ["scoin"] = {id = 2159, count = 1, price = 1}, ["keyvip"] = {id = 8978, count = 1, price = 5}, ["ringxp"] = {id = 7708, count = 1, price = 1}, ["pkclean"] = {id = 5350, count = 1, price = 1}, } if (shop) then if getPlayerLevel(cid) >= minlevel then if doPlayerRemoveItem(cid, idmoeda, compra[param:lower()].price) == TRUE then doPlayerAddItem(cid, compra[param:lower()].id, compra[param:lower()].count) doSendMagicEffect(getCreaturePosition(cid),13) doCreatureSay(cid, "Voce comprou " .. compra[param:lower()].count .." " .. param:lower() .. "!", TALKTYPE_ORANGE_1) else doPlayerSendTextMessage(cid, 22,"Você deve ter ".. compra[param:lower()].price .." ".. getItemNameById(idmoeda) .." para comprar esse item.") end else doPlayerSendTextMessage(cid, 22,"Você deve ter level " .. minlevel .. " ou mais para poder comprar na loja.") end end return true end function onSay(cid, words, param) if param == "" then local itensCompra = {"megastaff", "megaclub", "megasword", "megaaxe", "megadistance", "megaarmor", "megarobe", "megashield", "megaorb", "megaboots", "megapacc1", "megapacc2", "megapacc3", "scoin", "keyvip", "ringcp", "pkclean"} local text = "" for i=1, #itensCompra do if i == 1 then text = i.." - ".. itensCompra[i] .."\n" else text = text.. i .." - ".. itensCompra[i] .."\n" end end doShowTextDialog(cid,9004,text) return TRUE end end Peguei esse script para vendei itens por uma moeda própria. Porém, ele não compra nada. Se eu digitar só !buy ele mostra a lista dos itens, mas quando coloco buy e algum nome de um item, não ele n troca '-' Alguém pode me dizer o que tá errado? Esse é a tag no xml do talk <talkaction log="yes" words="!buy" event="script" value="shoplothus.lua"/>
  20. Olá, uso PDA com Level, e estou fazendo algumas modificações e queria mudar as stones e transforma-las em talkactions por exemplo, Fire Stone - !FIRE Ao dizer !FIRE ele checa se o Charmander está no level 18 e se estiver evolui.
  21. - versão sem bugs e você pode configurar do teu jeito local configSpell = { exaust = 40, -- tempo de exaustão st = 19020, -- não mexe level = 150, -- level para usar min = 1000, -- ataque minimo max = 2000, -- ataque maximo voc = {1, 5}, -- vocações mana = 800, -- mana } -- SPELL EVIL SPIRIT BY: XOTSERVX -- function isWalkable(pos, creature, proj, pz)-- by Nord if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end if getTopCreature(pos).uid > 0 and creature then return false end if getTileInfo(pos).protection and pz then return false, true end local n = not proj and 3 or 2 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if tile.itemid ~= 0 and not isCreature(tile.uid) then if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then return false end end end return true end function getPosDirs(p, dir) return dir == 1 and {x=p.x-1, y=p.y, z=p.z} or dir == 2 and {x=p.x-1, y=p.y+1, z=p.z} or dir == 3 and {x=p.x, y=p.y+1, z=p.z} or dir == 4 and {x=p.x+1, y=p.y+1, z=p.z} or dir == 5 and {x=p.x+1, y=p.y, z=p.z} or dir == 6 and {x=p.x+1, y=p.y-1, z=p.z} or dir == 7 and {x=p.x, y=p.y-1, z=p.z} or dir == 8 and {x=p.x-1, y=p.y-1, z=p.z} end function posIgual(pos1, pos2) return pos1.x == pos2.x and pos1.y == pos2.y and pos1.z == pos2.z and true or false end effect = 34 distance = 31 damage = COMBAT_DEATHDAMAGE evilspirit = { walk = function (cid, min, max, pos, rounds, ultimapos) if rounds == 0 then return true end if not isCreature(cid) then return true end posdisp = {} for _, dir in pairs({1, 5, 7, 3}) do if isWalkable(getPosDirs(pos, dir)) and not posIgual(getPosDirs(pos, dir), getThingPos(cid)) and not posIgual(getPosDirs(pos, dir), ultimapos) then table.insert(posdisp, getPosDirs(pos, dir)) end end if #posdisp < 1 then return true end posesc = posdisp[math.random(1, #posdisp)] ultimapos = pos doSendDistanceShoot(pos, posesc, distance) if min > 0 then min = -min max = -max end doAreaCombatHealth(cid, damage, posesc, 0, min, max, effect) addEvent(evilspirit.walk, 140, cid, min, max, posesc, rounds - 1, ultimapos) end } function onSay(cid, word) if getPlayerAccess(cid) < 3 then if getPlayerLevel(cid) < configSpell.level then return doPlayerSendCancel(cid, "You need level " .. configSpell.level .. " to use this spell.") end if not isInArray(configSpell.voc, getPlayerVocation(cid)) then return doPlayerSendCancel(cid, "Your vocation dont use this spell.") end if exhaustion.check(cid, configSpell.st) then return doPlayerSendCancel(cid, "You is exhausted.") end if getCreatureMana(cid) < configSpell.mana then return doPlayerSendCancel(cid, "You dont have mana.") end doCreatureAddMana(cid, -configSpell.mana) exhaustion.set(cid, configSpell.st, configSpell.exaust) end evilspirit.walk(cid, configSpell.min, configSpell.max, getThingPos(cid), 40, {x=1, y=1, z=1}) for i = 1, 13 do addEvent(evilspirit.walk, i * math.random(300, 500), cid, configSpell.min, configSpell.max, getThingPos(cid), 40, {x=1, y=1, z=1}) end return true end talkaction: <talkaction words="evil spirit" filter="word-spaced" event="script" value="evilspirit.lua"/>
  22. - Flechas de todos elementos vão cair do céu ! rs local configSpell = { exaust = 40, -- tempo de exaustão st = 19020, -- não mexe level = 150, -- level para usar min = 500, -- ataque minimo max = 1000, -- ataque maximo voc = {3, 7}, -- vocações mana = 600, -- mana } function elementalArrowAttack(cid, min, max) local tipos = { [1] = {distance = 32, efeito = 11, damage = COMBAT_ENERGYDAMAGE}, [2] = {distance = 33, efeito = 6, damage = COMBAT_FIREDAMAGE}, [3] = {distance = 34, efeito = 43, damage = COMBAT_ICEDAMAGE}, [4] = {distance = 39, efeito = 8, damage = COMBAT_EARTHDAMAGE}, } if not isCreature(cid) then return true end local tipoarrow = tipos[math.random(1, 4)] local pos = getThingPos(cid) local novapos = {x = pos.x + math.random(-4, 4), y = pos.y + math.random(-4, 4), z = pos.z} local distancepos = {x = novapos.x, y = pos.y - 8, z = pos.z} doSendDistanceShoot(distancepos, novapos, tipoarrow.distance) doAreaCombatHealth(cid, tipoarrow.damage, novapos, 0, -min, -max, tipoarrow.efeito) end function onSay(cid) local min, max = configSpell.min, configSpell.max if getPlayerAccess(cid) < 3 then if getPlayerLevel(cid) < configSpell.level then return doPlayerSendCancel(cid, "You need level " .. configSpell.level .. " to use this spell.") end if not isInArray(configSpell.voc, getPlayerVocation(cid)) then return doPlayerSendCancel(cid, "Your vocation dont use this spell.") end if exhaustion.check(cid, configSpell.st) then return doPlayerSendCancel(cid, "You is exhausted.") end if getCreatureMana(cid) < configSpell.mana then return doPlayerSendCancel(cid, "You dont have mana.") end doCreatureAddMana(cid, -configSpell.mana) exhaustion.set(cid, configSpell.st, configSpell.exaust) end doSendDistanceShoot(getThingPos(cid), {x = getThingPos(cid).x, y = getThingPos(cid).y - 8, z = getThingPos(cid).z}, 2) for x = 1, 12 do for i = 1, 50 do addEvent(elementalArrowAttack, 300 * i, cid, min, max) end end return true end talkaction: <talkaction words="elemental arrow" filter="word-spaced" event="script" value="elementalarrow.lua"/> configure do seu jeito
  23. Ola tenho 1 script de troca de outfit e adiciona efeito na outfit, ela em si funciona perfeitamente porem quando o player loga/morre da erro no console creature not found se possivel poderiam me ajudar a arruma transfs = { --Naruto [69] = {stor = 202020, out = 64, skillq = 1, speed = 5, eff = 10, effs = 18}, [64] = {stor = 202021, out = 31, skillq = 2, speed = 5, eff = 24, effs = 12}, [31] = {stor = 202022, out = 90, skillq = 3, speed = 5, eff = 24, effs = 15}, [90] = {stor = 202023, out = 89, skillq = 4, speed = 5, eff = 24, effs = 11}, --Sasuke [5] = {stor = 1230, out = 6, skillq = 2, speed = 5, eff = 25, effs = 9}, [6] = {stor = 1229, out = 7, skillq = 2, speed = 5, eff = 23, effs = 14}, [7] = {stor = 1228, out = 8, skillq = 2, speed = 5, eff = 14, effs = 14}, [8] = {stor = 1227, out = 8, skillq = 2, speed = 5, eff = 14, effs = 13}, --Sakura [9] = {stor = 1226, out = 10, skillq = 2, speed = 5, eff = 2, effs = 19}, [10] = {stor = 1225, out = 11, skillq = 2, speed = 5, eff = 50, effs = 19}, [11] = {stor = 1224, out = 12, skillq = 2, speed = 5, eff = 33, effs = 14}, [12] = {stor = 1223, out = 12, skillq = 2, speed = 5, eff = 35, effs = 11}, } function onSay(cid, words, param) local fix = transfs[getCreatureOutfit(cid).lookType] if getPlayerStorageValue(cid, fix.stor) < 1 then doPlayerSendTextMessage(cid, 20, "Você ainda não completou a quest necessária para sua transformação.") return true end doSendMagicEffect(getThingPos(cid), fix.eff) attribute(cid, fix.eff, fix.effs) doSetCreatureOutfit(cid, {lookType = fix.out}, -1) doChangeSpeed(cid, getCreatureSpeed(cid) + fix.speed) return true end --[[ Função criada por Roksas - Acesse já XTibia.com ]]-- function attribute(cid, skillq, speed, eff, effs) local fix2 = transfs[getCreatureOutfit(cid).lookType] if not isCreature(cid) then return true end doSendMagicEffect(getThingPos(cid), fix2.effs) return addEvent(attribute, 1 * 1000, cid, skillq, speed, eff, effs) and true end obg
  24. Falae Galera do XTibia, Quantos de vocês tentaram criar 1 GTA mais paravam por causa da "Maldita" arma que não trocava de Munição? creio que todos nois, então depois de muitos pedidos, 1 MEMBRO decidiu ajudar e ajudou mesmo, ele criou a arma do TibiaGTA perfeitamente igual!! Trago este script para ca por que ele está no outro topico do membro Matador18 e alguns não acha ele ai já viu neh... OBS: Quem baixou meu servidor de GTA, lá tinha a "MORTAL GUN" é só você trocar o script dela por este aqui que ela irá trocar as munições, ou até mesmo colocar no AK-GOLD. Em talkactions.xml adicione a tag abaixo: Pronto, em talkactions já finalizamos. Agora vamos em Spells, adicione esta tag em seu spells.xml: Pronto, agora é só abrir o server e testá-la. Para configurar é simples, pois deixei todas configurações no início... mas caso haja necessidade, clique no spoiler abaixo e veja como fazer: Eu testei várias e várias vezes com cautela e não houve erros, pois corrigi todos que encontrei. Qualquer erro ou dúvida, favor postar para que possamos solucionar juntos. Galera Dei um Ctrl+c e Ctrl+v para nao ter que ficar fasendo Spoilers =D O verdadeiro membro que merece o Like é o "Adriano Swatt"!!!! @edit Organizei o Topico com Spoilers =D
  25. Olá, hoje venho postar um sistema que bolei ontem e terminei hoje – ele se chama: Auto Task System. O que faz? O player pode escolher qualquer monstro, definido no script, para fazer a task. No final da mesma ele ganha Experiência, de acordo com o nível que está. Exemplo: Se o player escolher a task de rat, no nível 1, ele vai precisar matar 60, no nível 2, ele mata 120 e assim prossegue. COMANDOS: !autoTask – aparece a janela com todos os comandos !autoTask info – mostra todos os monstros na autoTask !autoTask i – mostra em qual autoTask você está registrado !autoTask sair/leave – sai da autoTask atual Vamos aos códigos: Primeiro vá em (data/talkactions/scripts) e crie um arquivo chamado “autoTask.lua” e cole isto dentro: Cole está tag em (data/talkactions/talkactions.XML): <talkaction words="!autoTask" event="script" value="autoTask.lua"/> Agora em (data/creaturescripts/scripts) crie um arquivo chamado “autoTask.lua” e cole isto dentro: Cole está tag em (data/creaturescript/creaturescripts.XML): <event type="kill" name="autoTask" script=" autoTask.lua "/> Agora em (data/creaturescripts/scripts/login.lua) cole isso, antes do ultimo “return true”: registerCreatureEvent(cid, " autoTask ") Agora em (data/lib) crie um arquivo chamado “autoTask.lua” e cole isto dentro: OBS: Todas as suas configurações são feitas na LIB. Para adicionar mais monstros basta copiar uma linha e mudar os valores. Espero que tenham gostado. Até mais.
×
×
  • Create New...