Jump to content
×
×
  • Create New...
  • 0

talkaction [PEDIDO] Novo Reload


Question

10 answers to this question

Recommended Posts

  • 0

Tava tentando fazer um script POO pra um sistema de torneio e descobrir que a pasta lib/ eh recarregada para cada outra pasta do servidor (acabando complemente com minha ideia)...

Então oque tu pode fazer é simplesmente dar 'reload' no resto ;p Tipo...

/reload talkactions

/reload creatureevents

/reload actions

...

Link to post
Share on other sites
  • 0
Como mudo nas sources pra pegar a lib?
   
case ID_MENU_RELOAD_CREATUREEVENTS:
    {
     if(g_game.getGameState() != GAME_STATE_STARTUP)
     {
      if(g_game.reloadInfo(RELOAD_CREATUREEVENTS))
       std::cout << "Reloaded creature events." << std::endl;
     }
 
     break;
    }
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.


    Administrador |  Diretor |  Coordenador |  Moderador |  Suporter |  Estagiário |  Herói
  • Similar Content

    • By R e d
      Galera, encontrei um dive por talk que está funcionando porém quando eu mergulho o pokemon morre e quando eu volto pra superficie eu não vou direto pro surf
       
      Script que faz o player mergulhar
       
       
      Script que faze o player emergir
       Se alguém puder me ajudar além do REP vai ganhar um Lugarzinho no meu coração haha ❤️
    • By Yan Oliveira
      Olá amigos do Xtibia, venho trazer um tutorial simples, mas interessante, que exibe uma caixa de diálogo com texto contendo todas as quests do seu servidor.
       
      Atenção: Testado somente em TFS 0.3/0.4
       
      Vamos lá!
       
      Vá em Data/Talkactions/Scripts e crie um arquivo.lua chamado quest_log.lua e adicione o script:
       
      ---------------- QUEST LOG BY YAN18 ----------------- -- NOME DA QUEST NO ÍNDICE, O NÍVEL E STORAGE NO VALOR -- local quests = { ["Cerulean City"] = {level = 30, storage = 32500}, ["Fire Stone"] = {level = 50, storage = 32501}, ["Boost Machine"] = {level = 100, storage = 32502} } function onSay(cid, words, param) local quest_completada = "- Quests completadas: \n\n" local quest_incompleta = "\n- Quests não completadas: \n\n" for i, _ in pairs (quests) do if (getPlayerLevel(cid) >= quests[i].level) and (getPlayerStorageValue(cid, quests[i].storage) < 1) then quest_incompleta = quest_incompleta .. "* " ..i.. " - Nível: " ..quests[i].level.. " \n" elseif (getPlayerLevel(cid) >= quests[i].level) and (getPlayerStorageValue(cid, quests[i].storage) >= 1) then quest_completada = quest_completada .."* " ..i.. " - Nível: " ..quests[i].level.. " \n" end end if quest_completada == "- Quests completadas: \n\n" then quest_completada = quest_completada .. " Nenhuma quest foi completada ainda. \n\n" elseif quest_incompleta == "\n- Quests não completadas: \n\n" then quest_incompleta = quest_incompleta .. " Todas as quests foram completadas." end local quest = quest_completada .. quest_incompleta return doShowTextDialog(cid, 1811, quest) end  
      Agora abra o talkactions.xml que fica em Data/Talkactions/talkctions.xml e adicione a tag:
      <talkaction words="!quest" event="script" value="quest_log.lua"/> Deixei o comando !quest ali em words na tag xml, mas você pode colocar outro comando de sua preferência.
       
      Explicação: Adicione todas as quests do servidor na tabela quests, colocando o nome dela como índice, o level e storage (preste bem atenção para colocar a storage correta) como valores. Em caso de dúvidas, só seguir o exemplo que fiz. Também fiz verificação para ver se todas as quests do jogo (que você colocar na tabela) foram feitas ou não, e também fiz verificação de nível do jogador por quest, ou seja, os jogadores só verão as quests que eles tem nível para fazer. De resto não tem muito o que mexer, só se quiser reduzir ou aumentar a quantidade de espaço entre as linhas, mas ai é da preferência de cada um. Caso queira retirar a verificação de nível do jogador (pare verem todas as quests) só mudar isso:
       
      for i, _ in pairs (quests) do if (getPlayerLevel(cid) >= quests[i].level) and (getPlayerStorageValue(cid, quests[i].storage) < 1) then quest_incompleta = quest_incompleta .. "* " ..i.. " - Nível: " ..quests[i].level.. " \n" elseif (getPlayerLevel(cid) >= quests[i].level) and (getPlayerStorageValue(cid, quests[i].storage) > 1) quest_completada = quest_completada .."* " ..i.. " - Nível: " ..quests[i].level.. " \n" end end Para isso:
      for i, _ in pairs (quests) do if getPlayerStorageValue(cid, quests[i].storage) < 1 then quest_incompleta = quest_incompleta .. "* " ..i.. " - Nível: " ..quests[i].level.. " \n" else quest_completada = quest_completada .."* " ..i.. " - Nível: " ..quests[i].level.. " \n" end end  
      Se fizer tudo corretamente, é para aparecer essa janela com as informações e nível da(s) quest(s):
       

       
      Essa janela é criada na função doShowTextDialog, e o segundo parâmetro dela é um item que aparece como ícone, geralmente deixam 0 (e recomendo deixar 0 como padrão), mas tem base que o id do item 0 aparece como algum item do jogo (as vezes montanhas ou outros itens de ambiente), então deixei um blackboard, até para ficar mais coerente hehe. Você também pode criar um item para representar essa janela, mas vai da preferência e criatividade de cada um. 
       
      Se você tiver source, pode até criar uma janela com título de "Quests" para ficar mais bonito a interface, mas vai de cada um.
       
      OBS: Em alguns servidores pode ser que dê crash na distro por conta do item passado no segundo parâmetro da função doShowTextDialog(cid, id_item, texto), precisa ficar atento nisso.
       
       
      Qualquer dúvida só perguntar!
       
      Abraços e fiquem com Deus!
    • By Yan Oliveira
      Tutorial refeito em: https://www.xtibia.com/forum/topic/251549-quest-log-em-janela/?tab=comments#comment-1759135
                 
    • By Stigal
      Vá até "Data > Talkactions" no arquivo "Talkactions.xml" adicione a seguinte linha:
      <talkaction words="/emptyhouses" script="mhi.lua" />  
      Em seguida "Data > Talkactions > Scripts" e crie "mhi.lua" e adicione:
      function onSay(player, words, param) if not player:getGroup():getAccess() then return true end for _, house in ipairs(Game.getHouses()) do if house:getOwnerGuid() == 0 then -- else house:setOwnerGuid(0) house:setAccessList(256, "") house:setAccessList(257, "") house:setAccessList(1, "") end end print("Items moved to depot.") return false end Verifique se o jogador que executa o comando tem acesso.
      Quando o proprietário é definido como "0", todos os itens são movidos para o depósito do proprietário.
       
       
      Créditos: kito2
       
      .
    • By Farathor
      Galera, esse talkaction funciona da seguinte forma, se você não tiver dinheiro no inventario do personagem e tiver no banco, o talkaction remove o dinheiro do banco automaticamente e te dá as blessings.
       
      --[[ Desenvolvido por Farathor (Eduardo Rodrigues) ]] --local bless = {1, 2, 3, 4, 5} local cost = 100000 function onSay(cid, words, param)         for i = 1, table.maxn(bless) do                 if(getPlayerBlessing(cid, bless[i])) then                         doPlayerSendCancel(cid, "Você já comprou todas as blessings possíveis.")                         return true                 end         end         if getPlayerMoney(cid) >= cost then                 doPlayerRemoveMoney(cid, cost)                 for i = 1, table.maxn(bless) do                        doPlayerAddBlessing(cid, bless[i])      [         end                doCreatureSay(cid, "Blessed!" ,19)                 doSendMagicEffect(getPlayerPosition(cid), 49)             elseif getPlayerBalance(cid) >= cost then                     doPlayerSetBalance(cid, getPlayerBalance(cid) - cost)                    for i = 1, table.maxn(bless) do                             doPlayerAddBlessing(cid, bless[i])                    end                     doCreatureSay(cid, "Blessed!" ,19)                     doSendMagicEffect(getPlayerPosition(cid), 49)            else                     doPlayerSendCancel(cid, "Você não possuí dinheiro suficiente para pagar a bless (100k).")             end         return true end