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. ~~ Advanced Reset System 1.0 ~~ By: MarcelloMkez Bom, vi alguns Sistemas de Reset como o do Marcryzius, Yunie, e etc. E sempre vi Muitos pedidos como por exemplo: OBS: NÂO FUNCIONA EM 8.60 Reset no Look; Mudar Vocação ao Resetar; Limite em Resets; e etc... Então, resolvi Criar o Meu 'Reset System' com todas essas funções acima, e com a opção de Abilitar ou Desabilitar as Funções. Testado em TFS 0.3.6 - 8.50 e 8.60, o Script Funcionou Perfeitamente. Funções do Sistema: - Reset No Look; - Mudar Vocação ao Resetar; - Limite de Resets; - Premium Account; Ja vi sistemas de Reset, cada um com alguma dessas Funções, então resolvi junta-las em Apenas um 'Advanced Reset System'... Espero Por Críticas e Elogios. Abra a pasta data/Talkactions, crie um arquivo .lua e coloque: advancedReset.lua e Adicione Isso: --[[ SCRIPTING> MarcelloMkez <scriptING ]] --[[ [Advanced Reset System] Autor: MarcelloMkez Versão: 1.0 TFS: 0.3.6 Testado em: 8.50 Fórum: www.xtibia.com/forum/topic/138026-talk-action-advanced-reset-system/ [Características] ~ Versão 1.0 ~ - Resets no Look; - Premium Account ou não; - Mudar Vocação; - Limite de Resets; - Opções para Abilitar e Desabilitar Condições; [Em Construção] - Stages Free e Premium; - 'Talvez' um novo sistema de mudar Vocação; sem data para postagem. ]] function onSay(cid, words, param) --[Configurações de Condição]__ config = { --[[verdadeiro / Falso]] needPa = false, -- Precisa de Premium Account? [true / false] needPz = true, -- Precisa estar em Protection Zone? [true / false] battle = false, -- Precisa estar sem Batlle para Resetar? [true / false] withe = false, -- Players PK Withe pode Resetar? [true / false] red = false, -- Players PK Red pode Resetar? [true / false] tp = true, -- Teleportar para o Templo após o reset? [true / false] look = true, -- Mostrar Resets no Look do Player? [true / false] addLimite = false, -- Abilitar Limite de Resets? [true / false] setClasse = true, -- Mudar Vocação do player quando resetar? [true / false] storage = 2310, -- Storage [valor] --[Configurações do Reset]__ resetStatus = { player = getPlayerGUID(cid), -- Não Mude. lvl = 350 , -- Level Necessário para Resetar. [valor] lvlreset = 8, -- Level que retornará após o Reset. [valor] limite = 114, -- Máximo de resets que um player pode chegar. [valor] newClasse = 1, -- Id da Nova Vocação após o Reset. [valor] tempo= 5 -- Tempo para o Player deslogar para Resetar. Em segundos. [valor] }, } --[Funções]__ function Reseting(cid) resets = getResets(cid) setPlayerStorageValue(cid,config.storage,resets+1) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doPlayerSetVocation(cid, config.resetStatus.newClasse) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `description` = ' [Reset "..resets.."]' WHERE `players`.`id` = "..config.resetStatus.player) db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player) return TRUE end function noAll(cid) resets = getResets(cid) setPlayerStorageValue(cid,config.storage,resets+1) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player) db.executeQuery("UPDATE `players` SET `description` = '' WHERE `players`.`id` = "..config.resetStatus.player) return TRUE end function noTeleporting(cid) resets = getResets(cid) setPlayerStorageValue(cid,config.storage,resets+1) doPlayerSetVocation(cid, config.resetStatus.newClasse) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player) db.executeQuery("UPDATE `players` SET `description` = ' [Reset "..resets.."]' WHERE `players`.`id` = "..config.resetStatus.player) return TRUE end function noLook(cid) resets = getResets(cid) setPlayerStorageValue(cid,config.storage,resets+1) doPlayerSetVocation(cid, config.resetStatus.newClasse) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player) db.executeQuery("UPDATE `players` SET `description` = '' WHERE `players`.`id` = "..config.resetStatus.player) return TRUE end function noClasse(cid) resets = getResets(cid) setPlayerStorageValue(cid,config.storage,resets+1) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `description` = ' [Reset "..resets.."]' WHERE `players`.`id` = "..config.resetStatus.player) db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player) return TRUE end function setClasse(cid) resets = getResets(cid) setPlayerStorageValue(cid,config.storage,resets+1) doPlayerSetVocation(cid, config.resetStatus.newClasse) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `description` = '' WHERE `players`.`id` = "..config.resetStatus.player) db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player) return TRUE end function look(cid) resets = getResets(cid) setPlayerStorageValue(cid,config.storage,resets+1) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `description` = ' [Reset "..resets.."]' WHERE `players`.`id` = "..config.resetStatus.player) db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player) return TRUE end function teleporting(cid) resets = getResets(cid) setPlayerStorageValue(cid,config.storage,resets+1) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `description` = '' WHERE `players`.`id` = "..config.resetStatus.player) db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player) return TRUE end function getResets(cid) resets = getPlayerStorageValue(cid,config.storage) if resets < 0 then resets = 0 end return resets end local resets = getResets(cid) local needLvl ="Você precisa de "..config.resetStatus.lvl-getPlayerLevel(cid).." level's para resetar." local msg ="~~[Reset: "..getResets(cid).."]~~ 'Sucesso ao Resetar! Você será deslogado em "..config.resetStatus.tempo.." Segundos." --[Condiçoes]__ if(config.needPz == true) and (getTilePzInfo(getCreaturePosition(cid)) == FALSE) then doPlayerSendTextMessage(cid,22,"Você Precisa estar em Protection Zone Para Resetar.") return TRUE elseif(config.addLimite == true) and (getResets(cid) == config.resetStatus.limite) then doPlayerSendTextMessage(cid, 22, "Você ja atingiu o Limite de Resets.") return TRUE elseif(config.withe == false) and (getCreatureSkullType(cid) == 3) then doPlayerSendTextMessage(cid,22,"Você ta PK White, por isso não pode resetar.") return TRUE elseif(config.red == false) and (getCreatureSkullType(cid) == 4) then doPlayerSendTextMessage(cid,22,"Você ta PK Red, por isso não pode resetar.") return TRUE elseif(config.needPa == true) and not isPremium(cid) then doPlayerSendTextMessage(cid,22,"Você Precisa ser Premium Account para Resetar.") return TRUE elseif(config.battle == true) and (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE) then doPlayerSendTextMessage(cid,22,"Você Precisa estar sem Battle para Resetar.") return TRUE elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == true) and (config.look == true) and (config.setClasse == true) then addEvent(Reseting, config.resetStatus.tempo* 1000, cid) elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == false) and (config.look == false) and (config.setClasse == false) then addEvent(noAll, config.resetStatus.tempo* 1000, cid) elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == false) and (config.look == true) and (config.setClasse == true) then addEvent(noTeleporting, config.resetStatus.tempo* 1000, cid) elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == true) and (config.look == false) and (config.setClasse == true) then addEvent(noLook, config.resetStatus.tempo* 1000, cid) elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == true) and (config.look == true) and (config.setClasse == false) then addEvent(noClasse, config.resetStatus.tempo* 1000, cid) elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == false) and (config.look == false) and (config.setClasse == true) then addEvent(setClasse, config.resetStatus.tempo* 1000, cid) elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == false) and (config.look == true) and (config.setClasse == false) then addEvent(look, config.resetStatus.tempo* 1000, cid) elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == true) and (config.look == false) and (config.setClasse == false) then addEvent(teleporting, config.resetStatus.tempo* 1000, cid) elseif doPlayerSendCancel(cid, needLvl) then doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return TRUE end if doPlayerPopupFYI(cid, msg) then end return TRUE end --[by: MarcelloMkez]__ E em Talkactions.xml adicione isso: <talkaction words="!resetar" event="script" value="advancedReset.lua"/> Configurações: em --[Configurações de Condição]__ Para você Abilitar ou Desabilitar uma Função, você usa " true " para Verdadeiro," false " para falso, como ta Explicando no script. Em --[Configurações do Reset]__ Você colocará os Valores desejados, como: Level necessário para Resetar; Level que o Player Retornara após o Reset; Vocação para qual o player irá mudar caso esteja Abilitado a Função; Limite de Resets, caso esteja Abilitada a Função; E tempo em 'Segundos', para o Player Deslogar ao Resetar; Agora, para resetar, basta usar o comando "!resetar". Espero que Gostem e Entendam, Obrigado. by: MarcelloMkez'
  2. 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.
  3. 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)
  4. 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 !
  5. 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.
  6. Versão: 3.2 Versão de tibia: 9.4+ (Funciona em anteriores) 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;/p" access="5" event="script" value="playercheck.lua"/> Script: Talkactions/scripts/playercheck.lua local config = { check = {"check", "viwer", "verificar", "ver"}, delete = {"del", "delete", "deletar"}, search = {"search", "procurar"} } 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 > 0 then count = "("..item.type.."x)" end text = text.."\n"..tsep..getItemNameById(item.itemid).." "..count.." ("..item.itemid..")" else if getContainerSize(item.uid) > 0 then text = text.."\n"..tsep..getItemNameById(item.itemid).." ("..item.itemid..")" text = text..getItemsInContainer(item, sep+2).." ("..item.itemid..")" else text = text.."\n"..tsep..getItemNameById(item.itemid).." ("..item.itemid..")" end end end return text end function onSay(cid, words, param, channel) local slotName = {"Cabeça", "Amuleto", "Backpack", "Armor", "Mao Direita", "Mao Esquerda", "Legs", "Pés", "Ring", "Ammo Slot"} local t = string.explode(param, ",") if(table.isStrIn(param, config.check)) then if getPlayerGroupId (cid) >= 5 then local player = getPlayerByNameWildcard(t[2]) if isPlayer(player) == TRUE then local text = getPlayerName(player).."'s Equipment: " for i=1, 10 do text = text.."\n\n" local item = getPlayerSlotItem(player, i) if item.itemid > 0 then if isContainer(item.uid) == TRUE then text = text..slotName[i]..": "..getItemNameById(item.itemid).." ("..item.itemid..") "..getItemsInContainer(item, 1) else text = text..slotName[i]..": "..getItemNameById(item.itemid).." ("..item.itemid..")" end else text = text..slotName[i]..": Empty" end end doShowTextDialog(cid, 6579, text) else doPlayerSendCancel(cid, "This player is not online.") end end elseif(table.isStrIn(param, config.delete)) then if getPlayerGroupId(cid) >= 5 then local player = getPlayerByNameWildcard(t[3]) if isPlayer(player) == TRUE then count = t[4] if(not t[4]) then count = 1 end if getPlayerItemCount(player, t[2]) > 0 then if doPlayerRemoveItem(player, t[2], count) then doPlayerSendCancel(cid, "Item Deletado.") else doPlayerSendCancel(cid, "Este player não esta quantidade.") end else doPlayerSendCancel(cid, "Este player não tem o item.") end end end elseif(table.isStrIn(param, config.search)) then if getPlayerGroupId (cid) >= 5 then local player = getPlayerByNameWildcard(t[3]) local result = db.getResult("SELECT name, online FROM players WHERE id IN (SELECT player_id FROM player_items WHERE itemtype = ".. t[2] ..");") local msg = "Resultados da busca pelo item ".. t[2] .." em seu banco de dados:\n\n" if result:getID() ~= -1 then while true do local name = result:getDataString("name") local online = result:getDataInt("online") msg = msg .. name .." [".. (online == 1 and "Online" or "Offline") .."]\n" if not result:next() then break end end else msg = msg .. "O item não foi encontrado em nenhum jogador." end doShowTextDialog(cid, t[2], 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 search, (ID) - Ele verifica quantos players tem tal item e se está online. Créditos: Oneshot CaioODemais Comedinha (Bruno Carvalho)
  7. Talkaction System !online Com Reset! Ola EksTibianos Esse Sabado Foi Muinto Ruin Para min Porque minha Vo Esta Muinto mal No Hospital quase Morrendo Tomara DEUS que nao ! Amo Ela! Bem Chega de Papo Furado Explicando Bem o Script! As 19:00 Eu e VodKart Estava no Msn Zoando com Emoticons Ate que eu Tive Essa Grande Ideia de Criar um !online Mostrando Player Name [level] , [reset] sim sim bom mesmo agente começou Fazer e Fazendo e Botamos ! e testamos e tudu! Vá em Pasta do Seu Ot> Data > Talkactions > Scripts > Online Abra ela e Exclui tudu dentro e coloque isso! Vermelho= Ali Voce Botara o Storage Value do Seu Reset a Maioria Pode Ser 1020 Voce pode Ver Abrindo o Script do Seu Reset e olhando a Storage Value dele Espero Que Gostem Do Script! Creditos: DevilMoon 10% Vodkart 10% NewFang 80%
  8. [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.
  9. 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!
  10. 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+
  11. Olá, eu fiz este script para as pessoas que não sabem resetar a database, é exclusivo para Sqlite, não testei então não sei se funciona em Mysql. /data/talkactions/?.lua TUph2vHW[/pastebin] talkactions.xml <talkaction log = "yes" words = "!deletar" access = "5" event = "script" value = "?.lua"/> Para usar é simples, você fala !deletar, depois !deletar yes, pronto seu server será resetado.
  12. 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
  13. Ola Galera Venho Trazer Meu Primeiro tutorial de scripter venho no motivo de ajudar pessoas que não estao conseguindo encontrar um system vip pra pda procurei procurei mais não achei decedi fazer um. 1- Abra Seu Serve Va Em Data/talkaction/Scripts Copie Um Arquivo Lua e Cole dps apaga tudo que tem dentro Renomei pra Buyvip e Coloque Isso La Vermelhor : Item Que Ele Precisara Para Serve Vip. Verde : Quantidade De Itens Pra Poder Virar Vip. Azul Marinho : Mensagens Apos Comprar o Vip. Viollet : Quantidades De Dias Vips. Laranja : Mensagem Caso Execute O !buyvip E nn tenha A Quantidade Certa de Thander Dolls. 2- Apos Fazer a Primeira Parte Cole Essa Tang no Talkation.xml aperte Ctrl + F Procure Por Player e Cole Essa Tang La Verde : Comando Que o Player Ira Executar Pode Mudar Se Quizer Vermelho : Nome Da Pasta Como Explo Buyvip. 3- Agora Vou Disponibilizar Pra Vocés o Piso Vip. Va em Data/movements/scripter, Copie e Cole Um Arquivo Lua Renomei Pra o Nome Desejado Apague o Que Tem Dentro Dele E Coloque Isso. Vermelhor : Posição Do Piso Que Sera Considerado O Piso Vip. Azul Marinho : Mensagem Pra o Player Que não Seja Vip Apos Passar Pelo PisoVip. Se O Player For Vip Pasra Normalmente 4- Bote Esse tang No Movementes.xml Procure Por Campfires e Cole Isso La. Laranja : Actionid Vocé Vai No Map editor Vai No Piso Bote Qualquer Action Que nn Esteja Sendo Usada Caso For 2x Pisos e So Voce Aumentar O Valor Do Actionid. Violleta : Arquivo Que Vocé Renomeiou 5- Esse Talkaction Não E Muito Importante Copie E Cola Um Arquivo Lua Renomeia pra addvip. Coloque O Seguinte Nele Não e Preciso Mudar. 5- Coloque Esse Tang No Talkation.xml Verde : Comando Pode Mudar Se Quizer. Vermelhor : Pasta Do Nome Do Arquivo. Voce se Pergunta Como Usa O !addvip O Seguinte Voce Usa Assim !addvip 30 = Dias que voce Quizer ou intao !addvip Lord Sorte 30 Assim Vlw Pelo ter Visto Meu Primeiro Tutorial Estou Aceito Depoimentos De Duvidas Erros Etcs. Não Cretiquem Porfavor. Creditos : 100% ( Eu ) Obs : Editei o Topico e Postarei Imagens Pra voces. Testei Na Verção Pda Slicer e Na Versão Ceturion e Funcionou
  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. 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
  17. 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.
  18. Falae Galera do XTibia, Vi esse Script em outro forum e resolvi traser pra ca. Obs: Não sei se é a area correta, se não for por favor mover, então vamos ao Script: Instalação: Este é um script bem simples em que o administrador escreve no script as quests que tem no servidor e quando o player digita !quests, aparece na tela dele as quests que ele já fez e as que ele não fez. Adicione essa tag em talkactions.xml: <talkaction words="!quests" event="script" value="ServQuests.lua"/> e em talkactions/scripts, crie um arquivo com nome de ServQuests.lua e cole isso dentro: --################################### --## Developed by: MaXwEllDeN ## --## Contact: ## --## maxwellmda@gmail.com ## --################################### local quests = { -- [" Nome da quest "] = Storageid, ["Em nome do Rei"] = 2789, ["Caça às Bruxas"] = 7231, ["Ajude a princesa"] = 1236, } function onSay(cid) local str = "#Quest(s) não concluída(s):\n" local conc = {} for i, v in pairs(quests) do if getPlayerStorageValue(cid, v) > 0 then table.insert(conc, i) else str = str .. "\n".. i .. " - Não concluída" end end str = str .. "\n\n#Quest(s) concluída(s):\n" for _, v in pairs(conc) do str = str .. "\n".. v .. " - Concluída" end return doShowTextDialog(cid, 1746, str) end -------------------------------------------------------------------------------------- agora, para configurar é muito simples essa parte aqui: -- [" Nome da quest "] = Storageid, ["Em nome do Rei"] = 2789, ["Caça às Bruxas"] = 7231, ["Ajude a princesa"] = 1236, } Nome da quest e o storage dela por exemplo, no meu GTA antigo eu tinha uma quest chamada Trem Quest e o storage dela era 15001 então é bem simples, é só alterar o nome e o Storage. EX: ["Trem Quest"] = 15001, Caso queira adicionar mais é só copiar e colar Ex: -- [" Nome da quest "] = Storageid, ["Em nome do Rei"] = 2789, ["Caça às Bruxas"] = 7231, ["Ajude a princesa"] = 1236, ["Trem Quest"] = 15001, } Bom é isso galera. Espero que gostem Creditos: MaXwEllDeN 90% Eu 10% <- por traser o script =D
  19. - 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"/>
  20. 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"/>
  21. Olá galera, passeando por um fórum, achei esse talkaction, bem interessante. Traduzindo este talk.. Comando: !ownbp Primeiro vá em data/talkactions/talkactions.xml <talkaction words="!ownbp" script="ownbp.lua"/> Agora vá até o data/talkactions/scripts/ownbp.lua function onSay(cid, words, param) [b] --//CONFIG//-- local cost = 1000 -- cost( GP) local ownTime = (60*60*24) -- seconds (default 24h) --//CONFIG//--[/b] local playerID = getPlayerGUID(cid) local owner = (playerID + 100) local ownerName = getPlayerName(cid) local function noOwner(o) doSetItemSpecialDescription(o.backpack, '') doSetItemActionId(o.backpack, 0) end if(doPlayerRemoveMoney(cid, cost) == TRUE)then local backpack = doPlayerAddItem(cid, 2000, 1) doSetItemSpecialDescription(backpack, ownerName..' owns this container.') doSetItemActionId(backpack, owner) addEvent(noOwner, 1000*ownTime, {'backpack'=backpack}) end end Agora em data/actions/actions.xml <action itemid="2000" script="ownbp.lua"/> E em data/actions/scripts/ownbp.lua function onUse(cid, item, fromPosition, itemEx, toPosition) local playerID = getPlayerGUID(cid) local owner = item.actionid-100 if(owner > 0)then if(owner ~= playerID)then doPlayerSendCancel(cid, 'You aren\'t owner of this container.') return TRUE end end end FIM. E está pronto, quaisquer erros, entre em contato através deste TÓPICO nos comentários. Atenciosamente, m0p. Créditos: Azi
  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. Olá, eu sou GuhPk e hoje estou vindo aqui para ensinar vocês a vender itens por Talkactions... Estou aprendendo agora também sobre script's, então o unico modo que eu sei é criando 1 script para 1 item a venda... Caso eu descobra outra maneira de criar em 1 script só eu posto aqui!!! =] ========================================================================== Vai em data/talkactions/scripts copie 1 arquivo.lua, renomeie, apague tudo dentro e coloco isso: (editando da maneira que você quizer) function onSay(cid, words, param, channel) local dinheiro = 1000000 -- quanto vai custar o item local recompensa = 2548 -- qual item sera vendido if doPlayerRemoveMoney(cid, dinheiro) then doPlayerAddItem(cid, recompensa, 1) -- o 1 é o tanto de itens que vai ganhar doPlayerSendTextMessage(cid, 19, "Você acabou de receber x item") else doPlayerSendTextMessage(cid, 19, "Você não tem dinheiro suficiente para comprar o item") end return true end Depois, vá até data/talkactions/talkactions.xml e adicione esta seguinte tag: (editando da maneira que você quizer) <talkaction log="yes" words="!comando-para-comprar-o-item" event="script" value="nome-do-arquivo.lua"> Observação: Caso você queira vender com mais de 1 comando você faria os comandos separados sempre por " ; ", veja no exemplo a seguir: <talkaction log="yes" words="!comando1;!comando2;!comando3;!comando4;!comando5" event="script" value="nome-do-arquivo.lua"> ========================================================================== Agora eu irei postar aqui uns print's dos script's!!! ;] ========================================================================== Agora eu irei postar aqui uns print's do poketibia!!! ;] Ajudei? REP +++!!!
  24. 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
  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...