Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''TALKACTION''.



Mais opções de pesquisa

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • A Cidade OTBR
    • OTServ Brasil
    • Atendimento
    • Taverna
  • Projetos Open Source
    • Canary
    • OTServBR-Global
    • Mehah OTClient
    • MyAAC
  • OpenTibia
    • Notícias e Discussões
    • Suporte - Dúvidas, Bugs, Erros
    • Downloads
    • Tutoriais
    • Show-Off
  • Outros
    • Design

Encontrado 22 registros

  1. [Revscriptsys][OTBR] Reset System - Talkaction

    Achei esse script de Reset System com ajuda do grande @LeoTK e funcionou perfeitamente para mim, então vou disponibilizar aqui. Código: Instruções Basta criar um arquivo em scripts/talkactions/player chamado reset.lua e depositar este código dentro. Pronto só isso. No jogo utilize !reset para resetar. Créditos
  2. Antes de fazer a sua pergunta, tenha certeza de ter lido as regras da seção e o guia abaixo: https://forums.otserv.com.br/index.php?/forums/topic/168583-regras-da-seção/ https://forums.otserv.com.br/index.php?/forums/topic/165121-como-fazer-uma-pergunta-ou-o-grande-guia-do-usuário-com-dúvidas/ Obs: não delete esse formulário pré-definido, preencha-o corretamente para postar o seu tópico! Descreva em algumas palavras a base utilizada. (Nome do servidor / Nome do cliente / Nome do website / etc.). Base: OTSERVBR-GLOBAL Qual é a sua pergunta? Meu código atualizado conforme evoluo: https://github.com/dzfellon/revscriptsys-resetsystem/blob/main/reset.lua Estou tentando adaptar um script de Reset System para a base do OtservBr-Global em Revscriptsys porém há diversas syntax que não sei converter. Quem puder dar uma mão, agradeço demais! Último erro recebido: Lua Script Error: [Scripts Interface] C:\otservbr-global\data\scripts\talkactions\player\reset.lua:callback ...tservbr-global\data\scripts\talkactions\player\reset.lua:157: attempt to index global 'player' (a nil value) stack traceback: [C]: in function '__index' ...tservbr-global\data\scripts\talkactions\player\reset.lua:157: in function <...tservbr-global\data\scripts\talkactions\player\reset.lua:25> Você tem o código disponível? Se tiver poste-o na caixa de código que está dentro do spoiler abaixo: Você tem alguma imagem que possa auxiliar no problema? Se sim, anexe-a dentro do spoiler abaixo:
  3. Antes de fazer a sua pergunta, tenha certeza de ter lido as regras da seção e o guia abaixo: https://forums.otserv.com.br/index.php?/forums/topic/168583-regras-da-seção/ https://forums.otserv.com.br/index.php?/forums/topic/165121-como-fazer-uma-pergunta-ou-o-grande-guia-do-usuário-com-dúvidas/ Obs: não delete esse formulário pré-definido, preencha-o corretamente para postar o seu tópico! Descreva em algumas palavras a base utilizada. (Nome do servidor / Nome do cliente / Nome do website / etc.). Base: OTSERVBR-GLOBAL Qual é a sua pergunta? Meu código atualizado conforme evoluo: https://github.com/dzfellon/revscriptsys-autopotion/blob/main/autopotion.lua Estou tentando fazer um script de Auto Potion em revscriptsys. Porém com dificuldade pra finalizar. Você tem o código disponível? Se tiver poste-o na caixa de código que está dentro do spoiler abaixo: Você tem alguma imagem que possa auxiliar no problema? Se sim, anexe-a dentro do spoiler abaixo:
  4. Antes de fazer a sua pergunta, tenha certeza de ter lido as regras da seção e o guia abaixo: https://forums.otserv.com.br/index.php?/forums/topic/168583-regras-da-seção/ https://forums.otserv.com.br/index.php?/forums/topic/165121-como-fazer-uma-pergunta-ou-o-grande-guia-do-usuário-com-dúvidas/ Obs: não delete esse formulário pré-definido, preencha-o corretamente para postar o seu tópico! Descreva em algumas palavras a base utilizada. (Nome do servidor / Nome do cliente / Nome do website / etc.). Base: OTSERVBR-GLOBAL Qual é a sua pergunta? Meu código atualizado conforme evoluo: https://github.com/dzfellon/revscriptsys-autoatk/blob/main/autoatk.lua To tentando fazer um script que achei de autoattack monsters (link), mas to com dificuldade pra fazer funcionar No momento atacar todas as criaturas parece mais facil de fazer, mas pretendo melhorar para o player criar uma lista de criaturas porém também não sei usar storage ainda Outra função que quero tentar é um modo de Distance (onde o char deve seguir o monstro mas manter determinada distancia) Você tem o código disponível? Se tiver poste-o na caixa de código que está dentro do spoiler abaixo: Você tem alguma imagem que possa auxiliar no problema? Se sim, anexe-a dentro do spoiler abaixo:
  5. Base: The OTX Server Version: (2.100 - 6000) - Codename: (FINAL) Qual é a sua pergunta? Estou disponibilizando um script muito interessante mas preciso de um ajuste final, nessa talkaction, quando você digita /info nome.monstro ele trás as informações de vida, exp e loot. Quando você digita um nome incorreto, ele abre uma janela dizendo que o nome do monstro está incorreto e trás a lista de monstros. Tudo está funcional, porém quando a pessoa digita o nome do monstro incorreto, dá um erro na minha console: [24/3/2021 13:56:46] [Error - TalkAction Interface] [24/3/2021 13:56:46] data/talkactions/scripts/info.lua:onSay [24/3/2021 13:56:46] Description: [24/3/2021 13:56:46] (LuaInterface::luaGetMonsterInfo) Monster not found Apesar do alerta funcionar corretamente: Poderiam me ajudar para remover esse erro da console? Segue script da talkaction, obrigado. Você tem o código disponível? Se tiver poste-o na caixa de código que está dentro do spoiler abaixo: Você tem alguma imagem que possa auxiliar no problema? Se sim, anexe-a dentro do spoiler abaixo:
  6. Scripting TalkAction - Spells

    Descreva em algumas palavras a base utilizada. (Nome do servidor / Nome do cliente / Nome do website / etc.). The OTX Server Version: (2.100 - 6000) - Codename: (FINAL) 7.6 Qual é a sua pergunta? Tenho uma talkaction que deveria mostrar as spells que os players possuem, mas ela retorna em branco, seguem scripts. talkactions\talkactions.xml <talkaction words="/spells" event="script" value="spellbook.lua" /> talkactions\scripts\spellbook.lua Quando uso o comando, retorna o spellbook vazio
  7. [8.0+] !pet <> O pet system chegou!

    Pet System Você fala !pet e terá um cachorrinho de estimação, falando !pet outra vez ele sumirá, não é possível fazer pets em zonas de proteção. Se seu pet morrer não importa, é possível fazer ele quantas vezes quiser. No futuro estarei adicionando mais tipos de pet como gatos e esquilos, mas por enquanto é só o cachorro. Na pasta data/talkactions/scripts de seu ot crie um arquivo com nome de pet.lua e coloque isto: function doPlayerAddSummon(cid, name, pos) local creature = doSummonCreature(name, pos) doConvinceCreature(cid, creature) return creature end function onSay(cid, words, param) local petUid = 0 local pos = getCreaturePosition(cid) local store = getPlayerStorageValue(cid, 1000) if words == "!pet" then if store == -1 then if getTilePzInfo(pos) == FALSE then petUid = doPlayerAddSummon(cid, "Dog", pos) setPlayerStorageValue(cid, 1000, petUid) else doPlayerSendCancel(cid, "You can not call your pet in a protection zone.") end else if isCreature(store) == TRUE then doRemoveCreature(store) setPlayerStorageValue(cid, 1000, 0) else if getTilePzInfo(pos) == FALSE then petUid = doPlayerAddSummon(cid, "Dog", pos) setPlayerStorageValue(cid, 1000, petUid) else doPlayerSendCancel(cid, "You can not call your pet in a protection zone.") end end end end end Agora só falta adicionar esta tag no talkactions.xml na pasta data/talkactions: <talkaction words="!pet" script="pet.lua"/> Não era necessário colocar isto abaixo no script, mas para futuras modificações que farei será importante: Até a próxima e se doarem OT$ ficarei muito feliz. E não esqueçam das sugestões, elas são importantes mas nada muito difícil por favor.
  8. Em talkactions/scripts crie um arquivo chamado set_actionid.lua com o seguinte código: function onSay(cid, words, param) local player = Player(cid) if not player then return false end if not player:getGroup():getAccess() then return true end if not tonumber(param) then player:sendCancelMessage("Need a number param.") return false end local position = player:getPosition() position:getNextPosition(player:getDirection()) local tile = Tile(position) if not tile then player:sendCancelMessage("Object not found.") return false end local thing = tile:getTopVisibleThing(player) if not thing then player:sendCancelMessage("Thing not found.") return false end if thing:isCreature() then player:sendCancelMessage("You can't give an action id to a creature.") elseif thing:isItem() then local actionid = tonumber(param) if actionid <= 0 then thing:removeAttribute(ITEM_ATTRIBUTE_ACTIONID) else thing:setActionId(actionid) end end position:sendMagicEffect(CONST_ME_MAGIC_RED) return false end E em talkactions.xml ponha a seguinte tag: <talkaction words="/aid" separator=" " script="set_actionid.lua" /> Para utilizar, ponha o item no chão na sua frente e escreva /aid action_id, sendo action_id um umero
  9. talkaction Reset System

    Olá pessoal, adivinha quem voltou Então, vou recomeçar minha vida nesse mundo de scripting em Lua depois de quase 6 meses praticamente parado. E o primeiro script a ser postado será meu Reset System. Fiz ele porque quase todos os outros que tem por aí na net são porcarias bugadas. Vamos lá: Talkactions.xml: <talkaction words="/reset;!reset" script="reset.lua"/> <talkaction log="yes" access="5" words="/addresets" script="reset.lua"/> data/talkactions/reset.lua: Configurações: Sim, sei que o script tá gambiarrado, mas como tô com preguiça de fazer uma v2 dele agora, vai ficar assim mesmo por enquanto. Comandos: /reset !reset /addresets nome,quantidade O comando /addresets é só para staff, e a quantidade é opcional. Bom uso, até.
  10. Crie um arquivo em talkactions/scripts chamado storage.lua e ponha o seguinte código: function onSay(cid, words, param, type) local player = Player(cid) if not player or not player:getGroup():getAccess() then return true end if player:getAccountType() < ACCOUNT_TYPE_GAMEMASTER then return false end -- Extract the specified parameters. local parameters = param:split(",") if words == "/getstorage" and parameters[2] == nil then player:sendCancelMessage("Insufficient parameters, usage: !getstorage playerName, key") return false end if words == "/setstorage" and parameters[3] == nil then player:sendCancelMessage("Insufficient parameters, usage: !setstorage playerName, key, value") return false end -- Remove trailing/leading white spaces from parameters. local playerName = (parameters[1] or ""):trim() local storageKey = tonumber(parameters[2]) or 0 -- Get meta player. local checkedPlayer = Player(playerName) if not checkedPlayer then player:sendCancelMessage(string.format("Could not find player '%s'.", playerName)) player:getPosition():sendMagicEffect(CONST_ME_BUBBLES) return false end local storageValue = tonumber(parameters[3]) or checkedPlayer:getStorageValue(storageKey) local msg = string.format("Storage key '%s' %s set to '%d' for player '%s'.", storageKey, "%s", storageValue, checkedPlayer:getName()) if words == "/setstorage" then -- Set specified storage value on player. checkedPlayer:setStorageValue(storageKey, storageValue) msg = string.format(msg, "is now") else -- Get specified storage value from player. msg = string.format(msg, "is currently") end -- Print the message in Local Chat in orange (only self can see). player:sendTextMessage(MESSAGE_EVENT_ORANGE, msg) player:getPosition():sendMagicEffect(CONST_ME_BUBBLES) end Em talkactions.xml ponha as seguintes tags: <talkaction words="/getstorage" separator=" " script="storage.lua"/> <talkaction words="/setstorage" separator=" " script="storage.lua"/>
  11. TALKACTION /commands para TFS 1.1

    Bom, eu estou começando a usar o TFS 1.1 e percebi que, ele não contém o comando /commands, que me ajuda bastante, então, resolvi criá-lo, como no TFS 1.1, não é definido "tutor, gm, god" pelo talkactions.xml e sim em todos os arquivos Lua, esse comando vai mostrar tudo para qualquer grupo de acesso: Em talkactions.xml adicione: <talkaction words="/commands" script="commands.lua" /> Em talkactions/scripts crie um arquivo chamado commands.lua e adicione: function onSay(cid, words, param) local p = Player(cid) local file = io.open("data/talkactions/talkactions.xml", "r+") local str = "" local text = "" for line in (file:lines()) do str = str.."\n"..line end file:close() for a in string.gmatch(str, '<talkaction words="(.-)"') do text = text..'\n'..a end p:showTextDialog(2160, text) return true end Agora é só usar Print: ↓↓↓
  12. talkaction Teleport para hunt

    Trouxe um script que já vi diversas pessoas pedindo. Funciona assim: você diz !teleport nome do monstro, e é teleportado para um determinado local por um preço. Script: data/talkactions/scripts/hunt_tp.lua: data/talkactions/talkactions.xml: <talkaction words="!teleport;/teleport" script="hunt_tp.lua"/> Configurações: local price = false -- Preço para usar o comando (caso, queira um preço específico para cara local, deixe local price = false) local locations = { -- [nome do monstro] = {posição, preço (caso o price seja false)}, ["demon"] = {pos = {x = 140, y = 120, z = 7}, price = 1000}, ["black knight"] = {pos = {x = 220, y = 500, z = 7}, price = 125}, } Bom uso.
  13. Comando !backpack

    Bom gente eu postei meu tópico na área errada sem querer, não sei apagar rs, algum moderador poderia fazer a gentileza? Acho que essa é a área certa, então vamos lá: Gente não é chato ficar indo toda hora no NPC comprar backpack ? Pois é, seus problemas acabaram...! 1° Abra a pasta do seu server -> data -> talkactions -> scripts 2° Depois duplique qualquer arquivo que esteja no scripts (.LUA) e apague o que tem dentro e coloque isso: function onSay(cid, words, param) if doPlayerRemoveMoney(cid, [color=#ffa500]20[/color])then doPlayerAddItem(cid, [color=#ee82ee]9774[/color], [color=#0000ff]1[/color]) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_BATS) else doPlayerSendCancel(cid, '[color=#ff0000]Você não tem dinheiro suficiente![/color].') end return true end O que está em vermelho: O que aparece quando você não tem dinheiro para comprar a backpack. O que está em laranja: É o preço da backpack, lembrando que sempre em gold. O que está em rosa: É o ID da backpack. Nesse caso ai está a Brocade backpack. O que está em azul: É a quantidade. 3° Depois vá em Talkactions.xml e adicione isso, feche e salve: Duvidas?? Comente abaixo :laugh:
  14. Explicação dos Comandos /attr

    Oi pessoal, eu estava vendo um tutorial de um usuário que ele ensina os comandos /attr Então fiz esse post só para complementar o dele, que é pra que serve aqueles comandos: Comandos que podem ser usados em itens : *OBS: alguns OTS precisam usar " set " atualmente, por exemplo o /attr attack, hj em dia para ele pegar tem que digitar assim : /attr set attack 999 Comandos que podem ser usados nos players: Caso vocês não entendam algum deles é só postar aqui a sua duvida que respondo o mais rápido possível... Espero ter ajudado ^^
  15. Mensagem em PopUp

    Irei postar um script de minha total autoria, que apesar de não ser grandes coisas, pode ser útil para bastante gente. Nome do Sistema ou Script: Mensagem em PopUp Nome do Autor: Jrbx (eu) Servidor Testado e/ou Versão do Tibia: 8.54 a 8.60 O que ele faz: Envia uma mensagem em PopUp para um determinado jogador como no exemplo abaixo: ~~ Vamos la: 1º) Vá até a pasta data/talkactions/scripts e crie um arquivo chamado popup.lua. 2º) Abra o novo arquivo e coloque o seguinte código: function onSay(cid, words, param) if(param == "") then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Name and message required.") return TRUE end local t = string.explode(param, ";") local player = getPlayerByNameWildcard(t[1]) if(not t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Add a ; and then add your message.") elseif(doPlayerPopupFYI(player, "Sender: " .. getCreatureName(cid) .. "nRank: " .. getPlayerGroupName(cid) .. "n".. t[2] .."")== LUA_ERROR) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Bad message color type.") return TRUE end return TRUE end 2º) Vá até data/talkactions/talkactions.lua e adicione a seguinte linha: 3º) Prontinho... Agora sempre que quiser utilizálo em seu OTServer, basta seguir o modelo: Ex: /popup mystic;Script Funcionando corretamente Qualquer dúvida é só postar ai que eu respondo...
  16. Mensagem anônima de GM's.

    A pedidos, fiz uma talkaction pra mandar uma mensagem à um determinado player sem aparecer o nome do GM, aparecendo apenas "Gamemaster", para que o player não floode o GM. Pode ser útil, então, aqui vai. Coloque isso num script dentro de talkactions\scripts e salve com o nome de amsg.lua function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Coloque o nome do personagem e a mensagem.") return true end local t = string.explode(param, ",") msg = t[2] tid = getPlayerByNameWildcard(t[1]) if(not tid or (isPlayerGhost(tid) and getPlayerGhostAccess(tid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player " .. t[1] .. " not found.") return true end doPlayerSendTextMessage(tid, MESSAGE_STATUS_CONSOLE_ORANGE, "Gamemaster: "..msg.."") return true end Depois vá em talkactions.xml e adicione essa tag: <talkaction log="yes" words="/amsg" access="3" event="script" value="amsg.lua"/> E pronto, dai é só falar: /amsg player, msg Abraços a todos!
  17. Shop Dinâmico (fácil configuração)

    #Instalando Crie um arquivo lua chamado "buyitem" dentro de data/talkactions/scripts e em seguida adicione o seguinte texto: -- script by Notorious items = { ["torch"] = { cost = 10, count = 1 }, } function onSay(cid, words, param) local parameter = param:lower() if param == "items" then for index, value in pairs(items) do index = index:sub(1, 1):upper()..index:sub(2) msg = "Name: "..index..", Price: "..value.cost..", Count: "..value.count.."" str = (str or "We are selling:") .. "\n" .. "- " .. msg end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, str) str = nil return true end if items[parameter] then if doPlayerBuyItem(cid, getItemIdByName(parameter), items[parameter].count, items[parameter].cost) then doSendMagicEffect(getThingPos(cid), math.random(27, 29)) else doPlayerSendCancel(cid, "You don't have enough money.") end else doPlayerSendCancel(cid, "This item doesn't exist or is not buyable. Say '!buy items' to view avaliable items.") end return true end Adicione a seguinte TAG (linha) dentro de talkactions.xml: <talkaction words="!buy" event="script" value="buyitem.lua"/> #Configurando Para adicionar novos itens adicione uma nova tag dentro de "items = {}" com os dados do item a ser vendido, exemplo: ["magic sword"] = { cost = 10000, count = 1 }, Lembrando que o nome do item deve existir, estar correto e ser escrito em letras minusculas. Agora é só usar o comando !buy dentro do jogo ^^
  18. Reward by Comand

    Reward by Comand Funcionamento: Esse script ele é bem simples, ele é apenas um comando que te possibilita editar qualquer item e adicionar diretamente ao outro player. Para fazer isso basta você falar o comando e por as coisas que você quer que ele tenha. Lembre-se que não tem uma ordem para adicionar os atributos assim você pode adicionar apenas o que precisa !! Nome*: Aqui você coloca o nome do jogar que vai receber o item .Id*: O id do item ou nome do item que o player vai receber. Quantidade: Aqui é a quantidade do item que o player vai receber. Atributos: O que o item vai ter de especial. * OBRIGATÓRIO Por exemplo: Tags: Script: Vá em data/talkaction/scripts e crie um arquivo chamado: additem.lua Após feito isso adicione o seguinte codigo nele: function onSay(cid, words, param, channel) local compater = { ['aid'] = 'aid', ['arm'] = 'armor', ['name'] = 'name', ['atk'] = 'attack', ['def'] = 'defense', ['eatk'] = 'extraattack', ['edef'] = 'extradefense', ['defense'] = 'defense', ['extradefense'] = 'extradefense', ['attack'] = 'attack', ['armor'] = 'armor', ['desc'] = 'description' } local sep = "=" if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.") return true end local t = string.explode(param, ",") local k = {} local sta local o local target = getPlayerByNameWildcard(t[1]) if(not target) then target = getCreatureByName(t[1]) if(not target) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Creature not found.") return true end end if(isPlayerGhost(target) and getPlayerGhostAccess(target) > getPlayerGhostAccess(cid)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Creature not found.") return true end local id = tonumber(t[2]) if(not id) then id = getItemIdByName(t[2], false) if(not id) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Item wich such name does not exists.") return true end end local amount = 100 if (type(t[3]) == "number") then amount = t[3] sta = 3 else sta = 2 end for s = 1, #t-sta do o = string.explode(t[sta+s], sep) table.insert(k, o[1]) table.insert(k, o[2]) end local item = doPlayerAddItem(target, id, amount) for i = 1, #k do if compater[k[i]] then doItemSetAttribute(item,compater[k[i]],k[i+1]) end end return true end
  19. Criando lista das quests do seu servidor

    Bom... primeiramente vou falar, sou bem iniciante nessa area de script, e como eu nunca vi nada parecido por aqui eu vou compartilhar com vocês. [b]Nome do Script:[/b] Quest Log [b]Função:[/b] Exibe para o jogador todas as quests do servidor, e tambem mostra as completas e incompletas. [b]Autor:[/b] Paulix [b]Servidor Testado:[/b] Aries 0.4.0 XML Bom... vou explicar como o script funciona. Sabe aquelas quests que quando voce clica no baú ganha algum item?, a action daquele baú muda o valor do seu storage value de -1 para 1. Este meu script verifica se a quest ja foi feita ou nao e exibe para o jogador. Iniciando: 1- Copie um arquivo da pasta data>talkactions>scripts mude o nome para quests.lua e cole isto: function onSay(cid, words, param) if getPlayerStorageValue(cid,[color=DarkOrange][b]1111[/b][/color]) == 1 then [color=Lime][b]first[/b][/color] = '[color=Red][b]Complete[/b][/color]' else [color=Lime][b]first[/b][/color] = '[color=Red][b]Incomplete[/b][/color]' end if getPlayerStorageValue(cid,[color=DarkOrange][b]2222[/b][/color]) == 1 then [color=DeepSkyBlue][b]second[/b][/color] = '[color=Red][b]Complete[/b][/color]' else [color=DeepSkyBlue][b]second[/b][/color] = '[color=Red][b]Incomplete[/b][/color]' end if getPlayerStorageValue(cid,[color=DarkOrange][b]3333[/b][/color]) == 1 then [color=Navy][b]third[/b][/color] = '[color=Red][b]Complete[/b][/color]' else [color=Navy][b]third[/b][/color] = '[color=Red][b]Incomplete[/b][/color]' end if getPlayerStorageValue(cid,[color=DarkOrange][b]4444[/b][/color]) == 1 then [color=Purple][b]fourth[/b][/color] = '[color=Red][b]Complete[/b][/color]' else [color=Purple][b]fourth[/b][/color] = '[color=Red][b]Incomplete[/b][/color]' end doPlayerSendTextMessage(cid,16, '[color=DarkGreen][b]Quest 1 = [/b][/color]'..[color=Lime][b]first[/b][/color]..'.') doPlayerSendTextMessage(cid,16, '[color=DarkGreen][b]Quest 2 = [/b][/color]'..[color=DeepSkyBlue][b]second[/b][/color]..'.') doPlayerSendTextMessage(cid,16, '[color=DarkGreen][b]Quest 3 = [/b][/color]'..[color=Navy][b]third[/b][/color]..'.') doPlayerSendTextMessage(cid,16, '[color=DarkGreen][b]Quest 4 = [/b][/color]'..[color=Purple][b]fourth[/b][/color]..'.') end 2-Agora vá em data>talkactions>talkactions.xml e adicione isto: <talkaction words="[color=Silver][b]!quests[/b][/color]" script="quests.lua"/> 3- Agora pegue os storages values das quests do seu servidor, para encontrar o storage value basta ir no cript do baú e procurar pela linha: setPlayerStorageValue(cid, [color=DarkOrange][b]XXXX[/b][/color], 1) 4- Pegue o id dos storages e coloque no lugar de cada id escrito em Laranja e pronto, seu script esta quase pronto. Explicando: Em Verde, Azul Claro, Azul Escuro e Roxo é o nome das variaveis, você pode colocar nas variaveis, qualquer nome a sua escolha. Em Vermelho são as mensagens que o jogador receberá quando a quest estiver completa ou incompleta. Em Verde Escuro é a mensagem que aparecerá em cada quest, de preferencia coloque o nome da quest para facilitar o entendimento dos jogadores. Em Cinza é o que o jogador vai precisar digitar (no jogo) para executar o script. Finalizando: --> Nunca se esqueça, as variaves de cada quest tem q ser diferente das outras, pois se for a mesma o script nao vai funcionar. --> Os id's em Laranja tem um grande relacionamento com os storages do baú, se você errar o valor o script não vai funcionar. --> Nunca apague os pontos( . ) nem as apostrofes ( ' ) perto das variaveis, pois eles sao essenciais para o funcionamento do script. --> Para adicionar outra quest é nescessario adicionar otra parte como esta: if getPlayerStorageValue(cid,[color=DarkOrange][b]XXXX[/b][/color]) == 1 then [color=Purple][b]variavel[/b][/color] = '[color=Red][b]Complete[/b][/color]' else [color=Purple][b]variavel[/b][/color] = '[color=Red][b]Incomplete[/b][/color]' end e outra como esta: doPlayerSendTextMessage(cid,16, '[color=DarkGreen][b]Nome da quest = [/b][/color]'..[color=Purple][b]variavel[/b][/color]..'.') ao script. --> Você pode adicionar ao script quantas quests quiser, basta adicionar o conteudo acima e edita-lo corretamente. Este script é exclusivo aki na Ot Net, favor nao postar em outro forum. Peço aos mods que se eu estiver esquecendo de alguma coisa, ou tiver algum erro que me avisem por pm que eu arrumo Espero que gostem do meu script OiaeuMae Obrigado a todos e até a proxima:coolface: Comentem plxxx
  20. Comando que abre/fecha portão

    Função: Comando que Abre/Fecha portão (remove/cria item) Autor: Oxyflavor Versão Testada: New Styller Yourots 0.6.5 (8.54) Informações Adicionais Meu primeiro script! >.< Oi pessoal.. To criando um OT Serv, e então decidi aprender um pouco de script.. Este é meu primeiro script, e sei que ja existem alguns com a mesma ideia, mas vou tentar fazer este bem explicado. ------------------------- Este script faz com que, ao executar tal comando(*), ele remova o item(*) que esteja na posição(*). Ao usar o comando novamente, ele cria o mesmo item de novo na mesma posição! Tipo um abre/fecha.. *Configurado(a) por você. Bom, vamos ao codigo! \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\ Crie um arquivo .lua com o nome que quiser, ou pegue um ja existente da pasta talkactions/scripts, apague tudo oque tem dentro, renomeie para o nome que quiser, e cole isto dentro do novo arquivo: -------------------------------- --[[ Script by Oxyflavor 1st script! ]]-- --[[ Script by Oxyflavor 1st script! ]]-- function onSay(cid, words, param) local doorpos = {x=[color=Red][b]POSX[/b][/color], y=[color=Red][b]POSY[/b][/color], z=[color=Red][b]POSZ[/b][/color], stackpos=1} -- POSX = Posição X da porta POSY = Posição Y da porta POSZ = Posição Z da porta local accessmin = [b][color=Green]x[/color][/b] -- Aqui você coloca no lugar do X o access minimo para usar o comando. local portaid = [color=Blue][b]x[/b][/color] -- No lugar do X você poe o ITEM ID (nao é action nem unique, é ITEM!) da porta que vai ser removida ao usar o comando. local msg1 = 'Porta removida com sucesso!' local msg2 = 'Porta colocada com sucesso!' local getid = getThingfromPos(doorpos) if getPlayerAccess(cid) >= accessmin and getid.itemid == portaid then doRemoveItem(getid.uid,1) doPlayerSendTextMessage(cid, 22, msg1) elseif getPlayerAccess(cid) >= accessmin and getid.itemid == 0 then doCreateItem(portaid, 1, doorpos) doPlayerSendTextMessage(cid, 22, msg2) else doPlayerSendCancel(cid,"Você não pode usar este comando.") end return 1 end Se nao entenderam por ai, entao vo explicar por aqui: [color=Red][b]POSX, POSY, POSZ[/b][/color] = { Em [b]POSX[/b], você poe a posição [b]X[/b] de onde esta a porta a ser removida/aberta, em [b]POSY[/b] põe a posição [b]Y[/b] da mesma, e em [b]POSZ[/b] a posição [b]Z[/b] da mesma. } [b] accesmin =[/b] [color=Green][b]x[/b][/color] -- { No lugar do [b]x[/b] você põe o nível mínimo de acesso que a pessoa vai ter que ter para usar o comando. (por exemplo, colocar 6 significa que só Gods poderão usar este comando.) [b]portaid = [color=Blue]x[/color][/b] -- { no lugar do x você põe o ID da porta que vai ser removida/aberta (o ITEM ID da porta que está na posição que você colocou em POSX,POSY,POSZ ,lembra?) ---------------------------------------------- Agora vá em talkactions/ talkactions.xml, e cole isso no final (mas antes do </talkactions> <talkaction words="[b]!abrirporta[/b]" event="script" value="[color=DarkOrchid][b]NomeDoSeuScript[/b][/color].lua"/> NomeDoSeuScript = Ponha no lugar disso o nome do arquivo que você criou, quando estava lendo o comecinho deste tópico. !abrirporta = Isso é opcional. Se quiser mudar o comando para abrir a porta, mude isso para oque quiser. Se quiser que, quando fale Abrakadabra a porta abra, ponha Abrakadabra no lugar disso. ---------------------------------------------------------------- Bom, é isso. Foi meu primeiro script, por isso, se tiver erros, me avisem por favor! Eu testei aqui, e deu tudo certo. -------------------------------------------------
  21. Nome: !stats - Check you status! Tipo: Talkaction Autor: Roku Versão Testada: TFS 8.54 Informações Adicionais Quer ter uma informação completa sobre seu personagem? Por exemplo, voce vê seu level e magic level sem abrir os skills, voce ve premium, sem logar da conta pra ver no character list, voce vê vida, e outras coisas! ______________________________________________________________ Vá em talkactions/scripts e crie um arquivo novo em .lua com o nome de stat e cole isso: --[[ Script by Roku 2009 - for Otserv Networks]] function onSay(cid, words, param) local msg = 'Status of '..getCreatureName(cid)..'\nName: '..getCreatureName(cid)..'\nLevel '..getPlayerLevel(cid)..'\nHealth: '..getCreatureHealth(cid)..'/'..getCreatureMaxHealth(cid)..'\nMana: '..getCreatureMana(cid)..'/'..getCreatureMaxMana(cid)..'\nGold Balance: '..getPlayerBalance(cid)..'\nPremium Days: '..getPlayerPremiumDays(cid)..'\nMagic Level: '..getPlayerMagLevel(cid)..'\nIP: '..getPlayerIp(cid)..'\nFree Cap: '..getPlayerFreeCap(cid)..'.' if isPlayer(cid) and words == '!stats' then doPlayerPopupFYI(cid, msg) return TRUE end return TRUE end Feito isso salve o script, e vá em talkactions.xml e adicione esta tag: <talkaction words="!stats" event="script" value="stat.lua"/> Agora é so salvar, ligar o server e falar !stats para checar seus status! #Contribuindo com o Tópico: Esse script foi feito rapidamente, e embora seja facil de escrever é árduo o trabalho de pensar em estatisticas. Ex: mana, vida, etc. Se voce teve alguma ideia para estatistica, poste no topico. Se simplesmente gostou do script, clique no botão Thanks na diagonal inferior direita do post. #Atualizações: Adicionado Free Cap (nao consta na imagem.) 18/01/2009 Comentário: Alguem me ajude se possivel, eu tentei fazer com sexo e vocation, mas nao consigo fazer o script retornar no For Your Information um nome, como Male, Female, Sorcerer, etc. ________________________________________________________________ cYa Roku~
  22. Compra p/ Talkaction

    Bem galera, 1º post .. :cry: Vamo lá... Titulo: [8.4+] Comprando Por Talkaction [spoiler=Informações] Nome: !buy . Versão: 8.4 . Tipo do script: Talkaction . Servidor Testado: Forgotten Server 0.34 . Autor: juuniooor 1- Pra que serve 2- Como Instalar 3- Editando do Seu jeito 1- Pra que serve 1- Esse script é para quem é folgado e esta no meio do hunt e acaba "Determindo item" e tem preguiça de ir ate cidade para compra-lo. É um script bem simples porem mto elogiado em meu ot 2- Como Instalar 2- Vamo ao que interessa Primeiramente, crie um documento de texto na pasta do seu ot, nao na data e sim onde fica o Ot, junto com a config.lua, crie e ponha o nome de vendas.txt Dentro dele coloque isso : !Aol - AOL -Preço: 10K !buysd - BP SD -Preço: 2K !bphp - BP health potions -Preço: 900 !bpmp - BP Mana potions -Preço: 1k !bpuhp - BP Ultimate health potions -Preço: 6.2k !bpgsp - BP Great Spirit potions -Preço: 3.8k !bpgmp - BP Great Mana potions -Preço: 2.4k Isso é para qdo o player falar !Buy, ira aparecer estas informações de como comprar. Pode ser editado por voce. Segundo passo : Va ate o talkactions/scripts e crie uma pasta chamada buy, dentro da pasta crie um arquivo lua chaamado buy.lua. Coloque o codigo dentro dele e salve --- Script by JuuniooR~--- --- Compra por TA --- function onSay(cid, words, param) file = io.open('vendas.txt','r') notice = file:read(-1) doShowTextDialog(cid,7528,notice) file:close() end Terceiro passo: Crie 4 arquivos lua Com os nomes Abra o aol.lua e coloque este codigo e salve function onSay(cid, words, param, channel) if(doPlayerRemoveMoney(cid, 10000) ~= TRUE) then doPlayerSendCancel(cid, "You don't have enough money.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return TRUE end doPlayerAddItem(cid, 2173) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Thanks.") return TRUE end Com este script voce compra Aol Em Roxo é o preço Em Vermelho é o id do Aol Agora abra o bpgsp.lua e coloque este codigo e salve function onSay(cid, words, param, channel) --configs local preco = doPlayerRemoveMoney(cid, 3800) -- Preço do Item (mude apenas o numero) local numero = 0 -- NÃO MUDAR --end configs if preco == TRUE then local backpack = doPlayerAddItem(cid, 1988, 1) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Thanks.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_STUN) repeat doAddContainerItem(backpack, 8472, 1) numero = numero +1 until numero == 20 -- 20 = NUMERO DE POTIONS QUE O PLAYER VAI GANHAR else doPlayerSendCancel(cid, "Você não tem dinheiro suficiente.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) end end return TRUE Com este Script vc compra Bp de great spirit potions Roxo = preço Vermelho = id GSP Agora abra o bpuhp.lua e coloque este codigo e salve function onSay(cid, words, param, channel) --configs local preco = doPlayerRemoveMoney(cid, 6200) -- Preço do Item (mude apenas o numero) local numero = 0 -- NÃO MUDAR --end configs if preco == TRUE then local backpack = doPlayerAddItem(cid, 1988, 1) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Thanks.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_STUN) repeat doAddContainerItem(backpack, 8473, 1) numero = numero +1 until numero == 20 -- 20 = NUMERO DE POTIONS QUE O PLAYER VAI GANHAR else doPlayerSendCancel(cid, "Você não tem dinheiro suficiente.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) end end return TRUE Com este, voce compra um bp de Ultimate Health potion Roxo = preço Vermelho = id UHP Por fim abra o arquivo bpsd.lua esalve esse codigo: function onSay(cid, words, param, channel) --configs local preco = doPlayerRemoveMoney(cid, 1000) -- Preço do Item (mude apenas o numero) local numero = 0 -- NÃO MUDAR --end configs if preco == TRUE then local backpack = doPlayerAddItem(cid, 1988, 1) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Thanks.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_STUN) repeat doAddContainerItem(backpack, 2268, 1) numero = numero +1 until numero == 20 -- 20 = NUMERO DE POTIONS QUE O PLAYER VAI GANHAR else doPlayerSendCancel(cid, "Você não tem dinheiro suficiente.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) end end return TRUE Compra BP de sd Roxo = preço Vermelho = id SD ----------------------------------------------------------------------------------- Para finalizar. Abra o talkactions.xml e adicione isso no final dele: <!-- Vendas --> <talkaction words="!buy" script="./buy/buy.lua" /> <talkaction words="!aol" script="./buy/aol.lua" /> <talkaction words="!bpsd" script="./buy/bpsd.lua" /> <talkaction words="!bpuhp" script="./buy/bpuhp.lua" /> <talkaction words="!bpgsp" script="./buy/bpgsp.lua" /> Pronto!!! 3- Editando do Seu jeito Agora voce pode por o item q voce escolher a venda eh so pegar a Id e trocar por uma existente. Espero que Gostem
×