Ir para conteúdo
  • Cadastre-se

Posts Recomendados

aulamapping.png

Básico: Tutorial Swamp

By: VictorFT & DuMal

divisor.png

Eai pessoal tudo bom? Hoje to trazendo um tutorial de Swamp aqui para vocês. Primeiramente peço desculpas de não ter postado mais tutoriais, realmente fiquei um tempo parado. Mas eu estava Mappeando Online com o DuMal e resolvi fazer um Tutorial Ultra Rápido. Então o Tutorial que nós fizemos não demorou nada , faz uma semana mais o menos ou mais que estou pretendendo bota-lo aqui no #####. Então Irei por Hoje, realmente o Tutorial Não está nada de abrir a Boca, o Motivo é só para vocês entenderem o Tutorial, está muito Simples.

Vamos Começar.

Primeiramente pesquisei na Wikpédia Oque seria uma zona de Swamp (Pântano) então abaixo está oque é uma zona de Swamp.

Wikpédia:

Um pântano (Swamp) é uma zona húmida que é arborizada. Pântanos se localizam perto dos rios de grande porte, onde eles são criticamente dependentes de flutuações do nível da água. Outros pântanos ocorrem nas margens de grandes lagos. Alguns pântanos têm redes ou seca-terra saliências, cobertas por vegetação aquática , ou vegetação que tolera inundação periódica. Nas regiões boreais do Canadá, o pântano é popularmente usado para o que é mais corretamente chamado de turfeira ou muskeg . A água de um pântano pode ser de água doce , salobra ou salgada . Algumas das maiores pântanos do mundo são encontradas ao longo dos principais rios. Exemplo : Amazônia , Mississipi e etc.

divisor.png

Fotos de um Pântano (Swamp)

Swamp na vida real:

Florida_freshwater_swamp_usgov_image.jpg

Swamp No Tibia:

pantanocpia.png

divisor.png

Fazendo Sua Área de Swamp

Dica: Dou esta dica em todo os meus tutoriais. Nunca fez uma área de Swamp? Repita como está no tutorial para te dar uma noção e logo em seguida faça sua própria.

Primeiramente começando: Bote as bordas do Swamp é bem simples. As bordas de Swamp podem ser encontradas nos seguintes ID's : 4713 até 4736 (se eu não me engano).Ficando Assim:

nndiqnunuid.png

Segundo Passo: Este paço é mais simples que o Primeiro pois você terá que por Grass (morta) seu id é 9044. Mas isto é uma opção de por esse tipo de Grass, pois você pode variar também pondo a normal e esta grass 'morta'.

jqwiqjew.png

Terceiro Passo: Adicione Arbustos (Id: 2767, 2768,2708) também adicione Grass Tuffs (Id: 6216 até 6219), Adicione alguns Slime Table Mushroom (Id: 4174 até 4177).

Adicione algumas Plantas de Swamp Mud Whip e etc. (Id: 2773,2778 e etc.)

Claro que você tem que dar uns Toques pondo Algumas Teias, porque geralmente Área de Swamp contém alguns bixos como Aranhas. (Id da Teia : 7546 até 7548)

Se você quiser faça uma árvore Grande.

Dica: Use um 'rascunho' ,para faze-la . Exemplo Faça em uma parte que não tenha nada pois se ficar feia só apagar e refaze-la até ficar boa. Também adicione algumas Stones e etc.

daskjmdajda.png

Quarto Passo: Este passo é o Final , não tem nada demais só adicione mais detalhes e termine sua árvore e Adicione a sua árvore no seu mapa, se quiser pode aumentar a área. Também terá que adicionar mais Spider Web nas Plantas e etc. E Principalmente adicione Spider Web na árvore.

dpaijdpij.png

É isso galera eu e o DuMal fizemos um Tutorial bem rápido só para vocês terem uma noção espero que tenham Gostado. Obrigado por lerem espero ajudar muitos , Obrigado

Créditos: DuMal/ VictorFT

Att.

VictorFT

elysiumsign.jpg

"Embora ninguém possa voltar atrás e fazer um novo começo, qualquer um pode começar agora e fazer um novo fim"

Link para o post
Compartilhar em outros sites

Se fosse uma cave de aranha tals tudo bem esse tanto de teia neh mais uma floresta exagerou mesmo

Nto Generations

Breve online

Quer participar da equip staff?

Envie um email PARA [email protected]

Explicando PORQUE VC quer ser da staff,e suas abilidades,exemplo mapper....

208249_401162269967740_260154321_n.jpg

Link para o post
Compartilhar em outros sites

Floresta? Swamp é a entrada de caves acho melhor mudar seus conceitos antes de comentar ...

@Edit

Provavelmente nem leu o tópico melhor ler e depois comentar...

Editado por VictorFT (veja o histórico de edições)

elysiumsign.jpg

"Embora ninguém possa voltar atrás e fazer um novo começo, qualquer um pode começar agora e fazer um novo fim"

Link para o post
Compartilhar em outros sites

Floresta? Swamp é a entrada de caves acho melhor mudar seus conceitos antes de comentar ...

@Edit

Provavelmente nem leu o tópico melhor ler e depois comentar...

As teias ficou esquisito mesmo se fosse entrada de cave, é apenas minha opinião, a opinião de uma iniciante em mapping!!

Olha meu Show Off: ;D

Editado por Vampira (veja o histórico de edições)

Sdds old times!  :starblack: 


70a06222.gif?6e08eb47

[show Off] Vampira
Bt79gzJ.png

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