Ir para conteúdo
Propaganda

food_eater [Módulo + servidor clean, para entender e compreender o funcionamento]


Posts Recomendados

  • Moderador

Um script simples sobre alimentação: você clica no botão e ele consome o alimento que está no seu inventário. O script é bem básico, mas vai ajudar vocês a entender como funciona o ExtendedOpcode e como começar a construir outros sistemas. (Pelo menos, foi o que me serviu de guia!)

CREDITOS: Ascuas Funkeln



DOWNLOAD:

Spoiler

This is the hidden content, please

SCAN: 

This is the hidden content, please


VIDEO DEMONSTRATIVO:

Spoiler

------------------------------------------------------------------------------------------------------------

📜 Implementação do Opcode no Servidor

Se você ainda não implementou suporte para Opcode no lado do servidor, será necessário adicioná-lo na sua source para que scripts com opcode funcione corretamente.

📌 Siga este tutorial e adicione o suporte à sua source do TFS 1.x+: 

This is the hidden content, please
This is the hidden content, please

⚠️ Atenção: Não sou responsável por possíveis danos à sua source. Faça as alterações por sua conta e risco.

------------------------------------------------------------------------------------------------------------


VAMOS COMEÇAR O TUTORIAL:

Abram a pasta do OTClient de vocês, vão até a pasta modules e adicionem o "food_eater" dentro dela.

Ficando assim:

Spoiler

image.png.b16d7b18e36c74df32543a83dd805933.png

Após isso, vão até a pasta do servidor de vocês e acessem o seguinte destino: data/creaturescripts/creaturescripts.xml.

Adicionem esta tag:

<event type="extendedopcode" name="foodeater" script="foodeater.lua" />

Ficando assim.

Spoiler

image.png.d64b9d06b2ab7d8254c5e12a83015755.png

Após isso, vá até data/creaturescripts/scripts, crie um arquivo chamado "foodeater.lua" e adicione o seguinte código dentro dele:

Spoiler

function onExtendedOpcode(player, opcode, buffer)
    local banana = player:getItemCount(2676)
    local cake = player:getItemCount(6278)
    local melon = player:getItemCount(2680)
    local grape = player:getItemCount(2681)  -- Adicionando a uva
    local buf = tonumber(buffer)

    if opcode == 14 and buf == 1 and banana >= 1 then
        player:feed(180)
        player:say("Omn, omn~! Banani!", TALKTYPE_MONSTER_SAY)
        player:removeItem(2676, 1)

    elseif opcode == 14 and buf == 3 and cake >= 1 then
        player:feed(180)
        player:say("Omn, omn~! Fat Boosting!", TALKTYPE_MONSTER_SAY)
        player:removeItem(6278, 1)

    elseif opcode == 14 and buf == 2 and melon >= 1 then
        player:removeItem(2680, 1)
        player:feed(180)
        player:say("Omn, omn~! He?!", TALKTYPE_MONSTER_SAY)

    elseif opcode == 14 and buf == 4 and grape >= 1 then  -- Nova condição para uva
        player:feed(180)
        player:say("Omn, omn~! Uvinha!", TALKTYPE_MONSTER_SAY)
        player:removeItem(2681, 1)
    end
end
 

Após isso, abram o login.lua, que também está dentro de data/creaturescripts/scripts, e adicionem esta linha: player:registerEvent("foodeater"), ficando assim.

Spoiler

image.png.cd3fa4c306f03665ec928b118fe09284.png

Pronto! Ao abrir o OTClient, o módulo já estará funcionando em conjunto com o servidor. Seguindo essa ideia, você pode criar diferentes tipos de sistemas.

Lembre-se de que você pode utilizar o ChatGPT para te ajudar nessas ideias. Existem diversas bibliotecas sobre .lua focadas em Tibia. Recomendo procurar com cuidado e aprender a utilizá-las a seu favor.

Spoiler

image.png.20dff550eed3ae2eba33cbe83f0f742b.png

 

  • Like 32
  • Thanks 3
  • Sad 1
Link para o comentário
https://tibiadevs.com/forums/topic/877-food_eater-m%C3%B3dulo-servidor-clean-para-entender-e-compreender-o-funcionamento/
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
  • Criar Novo...