Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Tutorial Mapping

Tema: Deserto

108dcox.png

Hoje, vou estar fazendo um tutorial de como criar a parte nature de um deserto. Não é tão complexo, e é muito fácil, bem mais do que se pensa, pois não é nescessário exageraa..aar nos detalhes, mas tentar manter o mais jogável possivel. Estou usando o remere's, caso você use outro editor não fará diferença nenhuma. Juntamente as imagens estarei postando os Ids's fique tranquilo. Estarei postando também alguns tutoriais complementares caso você tenha dúvida em alguma parte. Chega de conversa e vamos ao Tutorial:

1# Crie sua base:

Bom, primeiramente você tem que criar o continente, algo não muito difícil de ser criado. Eu fiz a minha não ficou tudo isso mas serve como exemplo:

base.png

O continente ta meio "feinho", mas não é um tutorial de continente né, hehe!

______________________

2# Acressente tufinhos de gramas:

Sua missão agora e colocar uns tufinhos de grama, para deichar o ambiente mais agradável, um local mais bunito, essa é a parte do detalhamento inicial:

tufosdegrama.png

Dica:

Recomendo não colocar muito dessas "maiorzinhas" (ids: 6216 e 6217), elas em exesso ficam um tanto estranhas.

________________

3# Adicionar a grama, deichar o lugar mais vivo:

Porque não deichar o local mais vivo? Bom, nessa parte eu deichei um pouquinho vivo de mais, fica à seu critério o quão de 'vida' você dará ao local, eu coloquei bastante vida, deichei um deserto mais habitavel:

matinhos.png

_______________

4# Cactos e areia fina:

Como dito antes, coloquei bastante vida no meu deserto. Agora acrescentei cactos e arvores (hambiente), e a areia fina, aqueles grãozinhos de areia. e isso você deve fazer, pouco ou muito, tudo fica a seu critério, eu puis uma quantia agradável:

Cactoseareiafina.png

_________________

5# Lixos, e pedras: - Adicional/Opcional -

Esta quinta parte, é pra você dar aquele geral no local, fazer as adições necessárias, arrumar "aqui", "ali", dar aquele #Up, antes de finalizar:

Lixospedrasdetalhesadicionais.png

Essa parte, é a hora que você usa total criatividade sua, acrescente o que quiser, deis de que fique adequado ao local.

______________

6# Final:

Depois ter realizado os 5 passos anteriores, é finalizar o mapa, terminar de fazer o "aqui", o "ali", terminar o "up" dar a catada final no mapa, está aí:

finaldarumgeralemtudo.png

Ids útilizados:

ids.png

Os outros items semelhantes estão na casa dos ids acima, basta procurar.

Créditos: 100% Guizito

Qualquer dúvida que tenham em relação a mapping podem estar tirando comigo, através desse tópico ou por pvt mesmo!

Editado por Guizito (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

deserto é bem difícil, o seu é bem massa só achei que teve muito verde nesse deserto, muito bom!

16/11/2014

23/11/2014

 

RIP AnneMotta 21/01/2012 - 15/01/2014

Liga das lendas: DIAMOND É A META

6qpqBbJ.png

Link para o post
Compartilhar em outros sites

deserto é bem difícil, o seu é bem massa só achei que teve muito verde nesse deserto, muito bom!

Voltei pra uma parte mais viva do deserto. Fica do gosto de cada um o quanto será vivo o deserto ou não.

Belo tutorial. Parabéns!

Reputado.

Adoraria ver mais tutoriais seus. (y)

Abraços,

Renato.

Estarei trazendo mais tutoriais sim! Já tenho diversos em outro fórum. Estarei trazendo os mesmo e criando mais...Aguardem!

Editado por Guizito (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Underewar
      Tutorial: Criando um Sistema de Enviar efeito com OTClient.


       
      Neste tutorial, vamos criar um sistema simples de Enviar efeito no OTClient.
      Este sistema permitirá que os jogadores ativem um efeito especial e vejam uma janela ao clicar em um botão específico.
      Pré-requisitos:
      Ambiente de Desenvolvimento:
      Certifique-se de ter um ambiente de desenvolvimento configurado com OTClient Edubart. Conhecimento Básico em Lua:
      Familiaridade com a linguagem de script Lua.
       
      Passo 1: Estrutura do projeto
       
      Organize seu projeto conforme abaixo:

      OTC / MODS



      Passo 2: Criando a Interface Gráfica (OTUI)

      game_pass.otui
      Repare que em nossa interface nossos botões de ação entram no caminho do module e iniciam uma função que esta disponivel em nosso game_pass.lua (Client-Side)

       



      Passo 3: Criando funções Client-Side

      Agora com as funções criada podemos chamar elas de acordo com a necessidade em nosso arquivo de interface.
      Por exemplo a função effect() que foi chamada em nosso arquivo de interface.otui agora é criada aqui para mostrar o efeito ao jogador.

      game_pass.lua
       
       
      Passo 4: Registrando o novo Mod

      Agora podemos registrar e iniciar nosso modulo usando o arquivo de configuração

      game_pass.otmod
       

      Feito isso ja podemos ver nosso module no client e enviar opcodes através do gameprotocol e também receber o buffer para manipular os dados podemos utilizar :
      protocolGame:sendExtendedOpcode(14, "1")
      Basicamente oque estamos fazendo é armazenando o valor 1 na variaval 14 do ExtendedOpcode e futuramente podemos recuperar esse valor.

      Recuperamos esse valor em nosso server side data/creatuerscript/otc/game_pass.lua

      Verificando se o opcode é 14 se for 14 então fazemos x ação.

      Show, tendo isso em mente para que o nosso client-side consiga receber com sucesso o efeito enviado ao jogador então utilizamos 

      Passo 5: Criando o Server-side responsavel por enviar o efeito correto ao jogador dependendo do opcode selecionado no nosso cliente.

      data/creaturescripts/otc/game_pass.lua
       
      Passo 6: Registrando o evento para evitar erros futuros!
      Para que tudo funcione corretamente sem erros é  necessário registrar o evento no creaturescript.xml / login.lua

      creaturescript.xml
      <event type="extendedopcode" name="GamePass" script="otc/game_pass.lua" />
      login.lua
          player:registerEvent("GamePass")  


      Ótimo agora ao selecionar o menu recompensa o jogador recebera um efeito.

      Espero que tenha ficado claro como usar Opcodes/ExetendedOpcodes.

      Arquivos usados no tutorrial:
      OTC MODULE
      game_pass.rar
      Creaturescript
      game_pass.lua

      Vi muitos tutoriais desatualizado então resolvi trazer esse!
      Reparem que nesse caso passamos creature como parametro do buffer isso porque precisamos enviar um efeito no player.

      Melhorando a formatação com JSON Encoder

       
       
    • Por Mateus Robeerto
      este é um tutorial de como usar um cliente com spr/dat estendido e protegido pelo CAB.
       
      fiz um video mostrando como usar um client com spr/dat estendido sem o error, basta seguir passo a passo o que eu fiz, em resumo voce precisara copiar seu dat estendido pra outro local para poder editar ele, salvando ele como não estendido e dps renomeando para poder usar junto com o original e compilando tudo com o programa cab...
       
      A DLL ajuda o cliente a ler as 2 dat (compilada pelo programa cab) , sem ela o cliente não abre, caso o teu cliente tenha o bug do ctrl+n ou alguns outros bugs que eu vi em alguns casos, a DLL tem a função de arrumar a maioria deles.
       
       
       
       
       
      LINK DOWNLOAD
       
       
      https://www.mediafire.com/file/kxqkywxeijk8hn2/programa_para_oldclient.rar/file
      ou
      creator cab
      https://drive.google.com/file/d/19b-EqpS-RmOQ_1o7ubb2a7j6RKcijjUa/view?usp=sharing
      scan https://www.virustotal.com/gui/file/4398e414d680ac26addbedc1f20bd59a82b546a1633abbb02b13d2f7150e950e/detection
      DLL
      https://drive.google.com/file/d/1T8XgwgHJAO9sgw5WR809GjMfej2NvP3n/view?usp=sharing
      SCAN https://www.virustotal.com/gui/file/539f0f7187c668457a14d87603e075ab5d1b6f6ac6a17aabf2b591fc3c177741/detection
       stup-pe hoohar o client
      https://drive.google.com/file/d/1cwR1wj3M8IsvxmIt5pQhZ4-DlFSMQVal/view?usp=sharing
      scan https://www.virustotal.com/gui/file/d06889d61474ee9480947956e52916fb997a3717e9f59d3ed830b5c780e81340/detection
       
       
       
    • Por oclipper
      Nesse video eu ensino como encontrar os Address e Offsets basicos para OTClient, eu usei meu bot como exemplo, com essses dados voce pode atualizar e conseguir utilizar bastantes funçoes do bot (heal, mana train, auto utamo/hur, etc)

      tipos de variaveis pra cada offset:
      name = string
      hp = double
      mana = double
      light = 1 byte
      color = 1 byte
      flags = 4 byte
      speed = 4 byte
      pos x = 4 byte
      pos y = 4 byte
      pos z = 1 byte
      id = 4 byte 
      hp% = 1 byte
      direcao = 4 byte
      skull = 1 byte
    • Por EddyHavoc
      Resumo
      A maneira atual para implementar Modal Window é um pouco complicada. Atualmente precisamos cria-la em algum lugar, registrar o evento, adicionar os botões em uma ordem específica, definir o ID da janela, dos botões e da escolha. Isso não é o ideal, então esta biblioteca foi criada pelo Non Sequitur para ajudar nisso. E eu estou trazendo para a OtServBrasil.

      Exemplo/ Tutorial Usando Modal Window
       
      Instalando
      Adicionar em data/lib/lib.lua dofile('data/lib/modalwindow.lua') Crie o arquivo modalwindow.lua com o seguinte conteúdo em data/lib if not modalWindows then modalWindows = { modalWindowConstructor = ModalWindow, nextFreeId = 500, windows = {} } end local MT = {} MT.__index = MT function ModalWindow(...) local args = {...} if type(args[1]) == 'table' then local self = setmetatable(args[1], MT) local id = modalWindows.nextFreeId self.id = id self.buttons = {} self.choices = {} self.players = {} self.created = false modalWindows.nextFreeId = id + 1 table.insert(modalWindows.windows, self) return self end return modalWindows.modalWindowConstructor(...) end function MT:setDefaultCallback(callback) self.defaultCallback = callback end function MT:addButton(text, callback) local button = {text = tostring(text), callback = callback} table.insert(self.buttons, button) return button end function MT:addButtons(...) for _, text in ipairs({...}) do table.insert(self.buttons, {text = tostring(text)}) end end function MT:addChoice(text) local choice = {text = tostring(text)} table.insert(self.choices, choice) return choice end function MT:addChoices(...) for _, text in ipairs({...}) do table.insert(self.choices, {text = tostring(text)}) end end function MT:setDefaultEnterButton(text) self.defaultEnterButton = text end function MT:setDefaultEscapeButton(text) self.defaultEscapeButton = text end function MT:setTitle(title) self.title = tostring(title) end function MT:setMessage(message) self.message = tostring(message) end local buttonOrder = { [4] = {3, 4, 2, 1}, [3] = {2, 3, 1}, [2] = {1, 2}, [1] = {1} } function MT:create() local modalWindow = modalWindows.modalWindowConstructor(self.id, self.title, self.message) local order = buttonOrder[math.min(#self.buttons, 4)] if order then for _, i in ipairs(order) do local button = self.buttons[i] modalWindow:addButton(i, button.text) button.id = i if button.text == self.defaultEnterButton then modalWindow:setDefaultEnterButton(i) elseif button.text == self.defaultEscapeButton then modalWindow:setDefaultEscapeButton(i) end end end for _, choice in ipairs(self.choices) do modalWindow:addChoice(_, choice.text) choice.id = _ end self.modalWindow = modalWindow end function MT:sendToPlayer(player) if not self.modalWindow then self:create() end player:registerEvent('ModalWindowHelper') self.players[player:getId()] = true return self.modalWindow:sendToPlayer(player) end Adicionar em data/creaturescripts/craturescripts.xml <event type="modalwindow" name="ModalWindowHelper" script="modalwindowhelper.lua" /> Crie o arquivo modalwindowhelper.lua com o seguinte conteúdo em data/creaturescripts/scripts/ function onModalWindow(player, modalWindowId, buttonId, choiceId) local modalWindow for _, window in ipairs(modalWindows.windows) do if window.id == modalWindowId then modalWindow = window break end end if not modalWindow then return true end local playerId = player:getId() if not modalWindow.players[playerId] then return true end modalWindow.players[playerId] = nil local choice = modalWindow.choices[choiceId] for _, button in ipairs(modalWindow.buttons) do if button.id == buttonId then local callback = button.callback or modalWindow.defaultCallback if callback then callback(button, choice) break end end end return true end  
      Pronto!
       
      Espero que gostem. Posteriormente irei postar um tutorial de como usar/ aplicar e alguns scripts utilizando a Biblioteca.
    • Por Endless
      Olá meus senhores, hoje venho trazer pra vocês 1 tutorial que li a muito tempo atrás e me ajudou muito. O tutorial não é meu, mas vejo que muita gente, muita gente mesmo não conhece esse módulo do apache, então achei válido trazer pra comunidade. Espero que ajude alguém!!
      O módulo que venho apresentar a vocês é o mod_evasive do Apache.
       
      Sobre ele:
       

      Instalando o mod_evasive:

       

      Configurando o mod_evasive:
       

      Carregando o módulo mod_evasive no apache:
       

      Teste da proteção DDoS
       

      Conclusão
       

      Créditos:

      https://sempreupdate.com.br/mod_evasive-no-apache-oferece-protecao-contra-ataque-de-ddos/
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo