Ir para conteúdo

nahapa

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    nahapa deu reputação a Ryzor em Matematica + LUA.   
    Faaaala galera! Tudo bem? Espero que sim, pois precisarão de muita atenção para entender algumas partes deste tutorial.

    A matemática é algo que nos acompanha no dia-a-dia, realmente muito importante, principalmente na programação. É indiscutível e concordável entre todos os programadores que um dos fatores de um bom profissional da área é o domínio da matemática!

    Bom, este tutorial vai ser para mostrar um pouco apenas da importância desta na linguagem LUA, ainda que se você tem experiência, provavelmente já percebeu isto.


    Sinais matemáticos simples


    Começando com os sinais matemáticos, o básico de lua e da matemática, são eles:


    Codigo:
    + Soma
    - Subtração
    * Multiplicação
    / Divisão
    ^ Exponenciação
    % Módulo
    Onde o módulo é definido como: x % y = x – math.floor(x/y)*y

    A raiz quadrada pode ser definida como: x^(1/2).
    Pode-se chegar ao valor da raiz cúbica deste jeito: x^(1/3) .
    E assim por diante.

    Os sinais de comparação também são básicos em lua, ainda sim, são bem importantes e são usados para comparar bool, strings e numeros.


    Código:
    == significa dizer que é equivalente a tal string, number ou bool. Você está afirmando tal valor é igual a outro valor.
    ~= quer dizer que é diferente de tal string, number ou bool.

    Atenção, = não é igual a ==

    Porcentagem


    Porcentagem é bastante usada em lua, pois é um artifício a ser usado em várias funções que envolvem valores numéricos.

    A porcentagem não é nada mais que regra de três, exemplo:



    Código:
    100% - 200
    25% - x
    Neste caso, temos o valor de cem por cento e queremos o valor de vinte cinco por cento. Para isso, cruzamos os valores.

    Então a seguinte conta é feita:


    Código:
    100x = 5000
    x = 5000/100
    x = 50
    Logo, 25% de 200 é 50.


    tonumber


    Existe uma função em lua, que tenta fazer a conversão de alguma string para valor numérico, esta função é chamada de tonumber.
    É uma função clássica de lua, onde ela faz a conversão, de uma string, para um valor numérico, por exemplo: tonumber(“2”), ela converte para 2.

    Simples, no entanto útil. Vamos usar dando um exemplo de Ot Server. Em um comando de talkaction, os parâmetros são strings, mesmo se forem números, assim, para compará-los com outros números, é necessário esta conversão.

    Para curiosidade, a função tostring faz o inverso, exemplo: tostring(2), retorna “2”.


    Biblioteca math


    Para mostrar a importância da matemática em lua e em outras programações, existem as funções math que são funções matemáticas ou diretamente relacionadas a ela.

    Sinceramente eu não domino todas, então vou explicar as mais importantes por agora, são elas:


    Código:
    Math.ceil
    math.deg
    math.exp
    math.floor
    math.ldexp
    math.log
    math.log10
    math.modf
    math.pi
    math.pow
    math.rad
    math.random
    Bom, estas serão as bibliotecas explicadas neste tutorial, onde eu não explicarei as funções de seno, cosseno e tangente para não deixar o tutorial uma apostila.

    Primeiro, antes de começar a explicar estas funções, vou explicar o que seria um logaritmo, explicando como resolver-lo por definição, explicar o Número de Euler e explicar o que é um radiano.

    Logaritmo:

    Logaritmo é um conteúdo do ensino médio considerado um tanto complicado. Portanto, ensinarei apenas o método da resolução pela definição, vamos lá:

    Um logaritmo contém três partes, são elas a base, o expoente e o próprio logaritmo. Dado o logaritmo abaixo:


    Código:
    Log100 = x
    10
    A base é 10, x é o expoente e o logaritmo é log100. A conta deve ser feita deste jeito:

    Base elevada ao expoente é igual a logaritmo.

    Ou seja



    Código:
    x
    10 = 100

    x = 2
    Pronto, o logaritmo de 100 na base 10 é 2. Esse é o método da definição do logaritmo.


    Número de Euler:


    O número de Euler é um número dado em homenagem a um matemático chamado Leonard Euler, suíço, nascido no século XIII.

    É um número irracional, aproximadamente é 2,718281828459045, ou, às vezes apenas 2,718281828459.

    O número de Euler é comum ser chamado de e.

    Também é à base do logaritmo natural.


    Radiano:


    Um radiano é a unidade de medida no Sistema Internacional de Unidades de um ângulo plano.

    Usando um circulo como exemplo, nós teríamos o eixo da circunferência, sendo a circunferência a linha traçada em volta do circulo. A distancia desde o eixo deste circulo até a circunferência é o raio.

    Quando a distancia entre duas linhas traçadas a partir do eixo até a circunferência for igual ao raio, o ângulo entre estas duas linhas vai ser 1 radiano.

    É importante saber que 1 radiano é, aproximadamente, 57.295779513082º.


    math.ceil


    Explicado como funcionam os logaritmos, um radiano e o número de Euler, vamos começar explicando as funções matemáticas.

    O math.ceil faz uma abreviação de qualquer número decimal, arredondando este para o próximo numero inteiro maior que ele.

    Usamos assim: math.ceil(1.5), ele retornará 2. Portanto, o math.ceil retorna o inteiro maior que o número decimal em seu parâmetro.

    Exemplos:


    Código:
    math.ceil(7/2) - 4
    math.ceil(16/3) – 6
    math.deg


    O math.deg faz a conversão de um ângulo dado em radianos para grau.

    Por exemplo, 1 radiano é, aproximadamente, 57.295779513082º.

    Exemplos:


    Código:
    math.deg(2) - 114.59155902616º
    math.deg(4) - 229.18311805233º

    math.exp


    Considerando que o número de Euler é chamado de e, esta função faz o número de Euler elevado a um expoente x.

    Usando o math.exp(x), ele eleva o e na potencia de x. Por exemplo, math.exp(x) faz a seguinte operação:



    Código:
    x
    e
    Exemplos:

    Código:
    math.exp(2) - 7.3890560989307
    math.exp(10) - 22026.465794807

    math.floor


    O math.floor é semelhante ao math.ceil, ele ignora os valores fracionários de números decimais e considera apenas o valor integral.

    No entanto, esta função arredonda o número para um valor menor, inteiro, que este. Por exemplo: math.floor(1.5), retorna 1.

    Exemplos:


    Código:
    math.floor(20/3) – 6
    math.floor(9/2) – 4
    math.ldexp


    Esta função é originada de uma fórmula, contendo dois parâmetros.

    A função eleva o número 2 a potencia do segundo parâmetro, feito isso, o multiplica pelo primeiro parâmetro.

    Por exemplo, math.ldexp(5, 3), primeiro é elevado 2 na potencia 3 e depois multiplicado por 5.


    Código:
    2³ = 8
    8*5 = 40
    math.ldexp(5, 3) = 40
    Exemplos:

    Código:
    math.ldexp(10, 7) = 1280
    math.ldexp(40, 2) = 160

    math.log


    Ao contrário do que o senso comum diz, esta função não lhe permite escolher um logaritmo e retornar o expoente a qual sua base deve ser elevado para ser igual e ele, no entanto, retorna a quanto o número de Euler deve ser elevado para que resulte no seu logaritmo.

    Por exemplo, math.log(148.41315910258), retornará 5, pois 2,718281828459045 elevado na 5º potencia é igual a 148.41315910258.

    Definição do logaritmo acima:



    Código:
    Log148.41315910258 = x
    2,718281828459045

    x
    2,718281828459045 = 148.41315910258

    x = 5


    math.log10

    Esta função é uma função relativamente simples comparada com a de cima. Pois ao invés de assumir o número de Euler como base do logaritmo, ela assume 10 como esta.

    Por exemplo: math.log10(100), seria processado assim:



    Código:
    Log100 = x
    10

    x
    10 = 100

    x = 2
    Exemplos:

    Código:
    math.log10(1000) – 3
    math.log10(0.1) – (-1)

    math.modf


    Esta é outra função simples de se compreender, ela retorna dois valores, o primeiro é a parte intregal do parâmetro e o segundo é a parte fracionária.

    Dado o exemplo: math.modf(1.5), ele retorna primeiro 1 e depois 0,5 pois 1 é a parte integral do número e 0,5 é a parte fracionária.

    Exemplos:



    Código:
    math.modf(7.5) - 7 & 0,5
    math.modf(92.8) – 92 & 0,8

    math.pi


    A função retorna o valor de PI é um número como o número de Euler, ou seja, um número importante e único na matemática. É usado para medir várias figuras geométricas.

    É referente a letra p no alfabeto grego, e tem o valor aproximado de: 3,14159265


    math.pow


    A função representa a seguinte conta:



    Código:
    y
    x
    Ou seja, x elevado na potencia y, onde x é o primeiro parâmetro e y o segundo.

    Por exemplo, math.pow(2, 3) resulta 8.

    Exemplos:



    Código:
    math.pow(3, 2) - 9
    math.pow(5, 3) – 125


    math.rad


    É a função contrária de math.deg, faz a conversão de um ângulo dado em graus para radianos.

    Por exemplo, 1º é aproximadamente, 0.01745329 radianos.

    Exemplos:


    Código:
    math.rad(30) - 0.5235987755983
    math.rad(360) - 6.2831853071796



    math.random



    Para finalizar, a função math.random escolhe um número inteiro entre o arredondamento do primeiro parâmetro e o arredondamento do segundo. Sendo este arredondamento semelhante ao math.floor.

    Por exemplo, math.random(1, 5), processaria o seguinte:



    Código:
    20% - 1
    20% - 2
    20% - 3
    20% - 4
    20% - 5
    É importante ressaltar que lua é uma linguagem semi-randomica.

    Exemplos:


    Código:
    math.random(1, 100)
    math.random(5, 18)
    Fontes:

    Vou colocar aqui as fontes de onde eu recorri para escrever tudo isso acima:

    Manual Lua
    Wikipédia Logaritmo
    Wikipédia Radiano
    Wikipédia Número de Euler

    Espero que este tutorial possa ajudar alguem.



    Creditos :
    Shoeei

  2. Gostei
    nahapa deu reputação a Hadggar em [NEW] Listão de Talkactions e Actions 2014   
    Listão de Talkactions é Actions TK "2014"
     
    --2011--
     
    Nome do Tópico: Character Info
    Autor: Doughell
    Link do Tópico: http://tibiaking.com...character-info/
    Comentário:

     

    Nome do Tópico: Dungeon Finder
    Autor: Guilherme
    Link do Tópico: http://tibiaking.com...dungeon-finder/
    Comentário:

     

    Nome do Tópico: Gate System
    Autor: Doughell
    Link do Tópico: http://tibiaking.com...60-gate-system/
    Comentário:

     

    Nome do Tópico: Portal WoE
    Autor: Doughell
    Link do Tópico: http://tibiaking.com...353-portal-woe/
    Comentário:

     

    Nome do Tópico: Sistema de Forja
    Autor: Lpz
    Link do Tópico: http://tibiaking.com...stema-de-forja/
    Comentário:

     

    Nome do Tópico: [Action] Removedor de Frags
    Autor: Matheus
    Link do Tópico: http://tibiaking.com...vedor-de-frags/
    Comentário:

    Nome do Tópico: [Action] Stamina Doll
    Autor: AgaSsI
    Link do Tópico: http://tibiaking.com...s-stamina-doll/
    Comentário:

     

    Nome do Tópico: [Actions] Potions Baseadas no Level
    Autor: AgaSsI
    Link do Tópico: http://tibiaking.com...eadas-no-level/
    Comentário:

    Nome do Tópico: Gesior ACC - Postando Ticker in Game
    Autor: Renato
    Link do Tópico: http://tibiaking.com...ticker-in-game/
    Comentário:

     

    Nome do Tópico: Remover Pedra com Alavanca
    Autor: Kimoszin
    Link do Tópico: http://tibiaking.com/forum/topic/9261-action-remover-pedra-com-alavanca/
    Comentário:

    Nome do Tópico: [Action] Addons Em Quest
    Autor: AgaSsI
    Link do Tópico: http://tibiaking.com...dons-em-quests/
    Comentário:

    Nome do Tópico: Proibir Palavrões
    Autor: Matheus
    Link do Tópico: http://tibiaking.com...ibir-palavroes/
    Comentário:

    Nome do Tópico: Resete Sistem
    Autor: macnowfhael
    Link do Tópico: http://tibiaking.com...-resete-sistem/
    Comentário:

    Nome do Tópico: GOD que da BLESS
    Autor: Matheus
    Link do Tópico: http://tibiaking.com...bless-para-god/
    Comentário:

    Nome do Tópico: [Action] Scroll de Level
    Autor: Augusto
    Link do Tópico: http://tibiaking.com...croll-de-level/
    Comentário:

    Nome do Tópico: [Action] Sistema de Mineração
    Autor: Matheus
    Link do Tópico: http://tibiaking.com...a-de-mineracao/
    Comentário:

    Nome do Tópico: [TalkAction] Buy Aol
    Autor: Kimoszin
    Link do Tópico: http://tibiaking.com...action-buy-aol/
    Comentário:

    Nome do Tópico: [TalkAction] Addon Doll
    Autor: Kimoszin
    Link do Tópico: http://tibiaking.com...ion-addon-doll/
    Comentário:
      --2012,2013 & 2014--  
    [Action] Temple Cleaner Automatico
    Autor: GodFather
    Topico: Topico Official
    Tipo: Action

    [Action] Mount System 1.4 - 100% Inovador
    Autor: Matheus
    Topico: Topico Official
    Tipo: Action

    [Action] Item Que Da Experience e Dinheiro
    Autor: Slaake
    Topico: Topico Official
    Tipo: Action

    [Talkaction] Item Por Vocaçao
    Autor: TonyPlyson
    Topico: Topico Official
    Tipo: Talkaction

    [Talkaction] Shop System [!sell-!buy] Facil Configuraçao
    Autor: Matheus
    Topico: Topico Official
    Tipo: Talkaction

    [Talkaction] Comando Para Comprar Bless
    Autor: Matheus
    Topico: Topico Official
    Tipo: Talkaction

    [Talk] Comando Mute/Desmute
    Autor: Vodkart
    Topico: Topico Official
    Tipo: Talkaction

    [Talkaction] Pet System ! Tfs = 0.3.4
    Autor: DevilMoon
    Topico: Topico Official
    Tipo: Talkaction

    [Talkaction] Transformar
    Autor: AvuEnja
    Topico: Topico Official
    Tipo: Talkaction

    [Action] Quest Se O Player For Level (Desejado)+

    Autor: TonyPlyson
    Topico: Topico Official
    Tipo: Action

    [Action] Comprando Item Por Chest (Bau)
    Autor: Slaake

    Topico: Topico Official
    Tipo: Action

    [Action] Adquirindo Group Por Item
    Autor: Slaake

    Topico: Topico Official
    Tipo: Action

    [Action] Novo Gold
    Autor: Slaake

    Topico: Topico Official
    Tipo: Action

    [TalkAction] Magia Que Se Transforma Em Item
    Autor: Slaake

    Topico: Topico Official
    Tipo: Talkaction

    [Talkaction] Comprando Soul
    Autor: Slaake

    Topico: Topico Official
    Tipo: Talkaction

    [Talkaction] Comprando Premium Tile
    Autor: Slaake

    Topico: Topico Official
    Tipo: Talkaction

    [Talkaction] Comprando Uma Nova Vocation Por COmando
    Autor: Slaake

    Topico: Topico Official
    Tipo: Talkaction

    [Talkaction] Comprando ExperieNce Por Comando
    Autor: Slaake
    Topico: Topico Official
    Tipo: Talkaction


    [Talkaction] Addon Doll
    Autor: Kimoszin
    Topico: Topico Official
    Tipo: Talkaction

    [Action] Retirar Lixo e Ganhar Item
    Autor: Kimoszin
    Topico: Topico Official
    Tipo: Action

    [Action] Caça Niquel
    Autor: EddyHavoc
    Topico: Topico Official
    Tipo: Action

    [Action] Ramdom Box
    Autor: EddyHavoc
    Topico: Topico Official
    Tipo: Action

    [Talk] DeathList Para Server Sqlite 1.0
    Autor: Vodk
    art
    Topico: Topico Official
    Tipo: Talkaction

    [Action] Aqua System
    Autor: EddyHavoc
    Topico: Topico Official
    Tipo: Action

    [Action] Lenhador - Lumber Jack
    Autor: EddyHavoc
    Topico: Topico Official
    Tipo: Action

    [Action] Quest De Addons Funcionando
    Autor: EddyHavoc
    Topico: Topico Official
    Tipo: Action

    [Talkaction] Create Teleport
    Autor: SkyForever
    Topico: Topico Official
    Tipo: Talkaction

    [Action] Desenterrando Mortos
    Autor: Kimoszin
    Topico: Topico Official
    Tipo: Action

    [Action] Mining System
    Autor: Vittu
    Topico: Topico Official
    Tipo: Action

    [Action] Quest que Ganha Crystal Coins Equivalente Ao Level
    Autor: Renato
    Topico: Topico Official
    Tipo: Action
     
    [Action] Alavanca de Itens Aleatória!
    Autor: Halls Santos
    Topico: Topico Official
    Tipo: Action
     
    [Action] Adicionar premium points ao usar x item
    Autor: ViiTinG
    Topico: Topico Official
    Tipo: Action
     
    [Action] Rare Candy
    Autor: principe sharingan
    Topico: Topico Official
    Tipo: Action
     
    [Action] Canoa em Movimento
    Autor: ViiTinG
    Topico: Topico Official
    Tipo: Action
     
    [Action] Item que faz poke selvagem aparecer
    Autor: lucaslsre
    Topico: Topico Official
    Tipo: Action
     
    [Talkactions] Sistema de Jail!
    Autor: ScreMMo(eu)
    Topico: Topico Official
    Tipo: Talkaction
     
    [Talkaction] [Proibir Palavras] Anti Divulgação
    Autor: Absolute
    Topico: Topico Official
    Tipo: Talkaction
     
    [Action] Trocar 100 Demon Dust's por demon armor
    Autor: Vills
    Topico: Topico Official
    Tipo: Action
     
    [Action] [TFS 1.0] Frag Remover
    Autor: luanluciano93
    Topico: Topico Official
    Tipo: Action
     
    [Talkaction] !addlevel [Comando para dar level]
    Autor: Absolute
    Topico: Topico Official
    Tipo: Talkaction
     
    [Talkaction] Mandar mensagem para a pasta do servidor
    Autor: ViiTinG
    Topico: Topico Official
    Tipo: Talkaction
     
    [Talkaction] Adicionar ou Remover VIP Do player
    Autor ViiTinG
    Topico: Topico Official
    Tipo: Talkaction
    Creditos: Jeff Owns - 35% Topico de 2012 & 2013 ScreMMo(Eu) - 30% do topico, adicionei os novos topicos Doughell - 35 - Topico de 2011 GOSTOU? REP+
  3. Gostei
    nahapa deu reputação a Guilherme. em [TalkAction] Dungeon Finder   
    Olá TibiaKing!

    Esse script necessita um pouco mais de conhecimento, pois precisa adicionar códigos em C++ ao distro.
    O script adiciona você em uma espécie de fila, assim que a fila completar 5 pessoas, automaticamente um grupo é formado e as 5 pessoas são teleportadas para dentro da dungeon ou quest.

    Basicamente funciona assim:
    Player (Eu): /queue join
    Player (Outro): /queue join
    Player (Outro): /queue join
    Player (Outro): /queue join
    Player (Outro): /queue join

    Onde queue significa fila.



    Uma pequena demonstração









    Database (MySQL/PHPMyAdmin)




    CREATE TABLE `dungeon_finder` (`id` INT(8) AUTO_INCREMENT PRIMARY KEY, `player_id` INT(255)) Talkactions
    function onSay(cid, words, param, channel) if(param == "join") then query = db.getResult("SELECT * FROM `dungeon_finder` WHERE `player_id` = " .. getPlayerGUID(cid) .. "") if(getPlayerStorageValue(cid, CONFIG.DUNGEON_STORAGE) > 1) then if(getPlayerStorageValue(cid, CONFIG.DUNGEON_STORAGE) > os.time()) then doPlayerSendCancel(cid, "You can't join queue with deserter debuff.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return true end end if(CONFIG.AREA) then if(not(isInArea(getPlayerPosition(cid), (CONFIG.AREA).FROMPOS, (CONFIG.AREA).TOPOS))) then doPlayerSendCancel(cid, "You're not in required area to join the queue.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return true end end if(CONFIG.PZ_REQUIRED) then if(not(getTilePzInfo(getPlayerPosition(cid)))) then doPlayerSendCancel(cid, "You're not in protection zone to join the queue.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return true end end if(CONFIG.REQUIRED_LEVEL) then if(getPlayerLevel(cid) < CONFIG.REQUIRED_LEVEL) then doPlayerSendCancel(cid, "You don't have required level to join the queue. The minimum level to join the queue is " .. CONFIG.REQUIRED_LEVEL .. ".") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return true end end if(CONFIG.SKULL) then if(getPlayerSkullType(cid) >= CONFIG.SKULL) then doPlayerSendCancel(cid, "Murderers are not allowed to join the queue.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return true end end if(CONFIG.IN_FIGHT) then if(getCreatureCondition(cid, CONDITION_INFIGHT)) then doPlayerSendCancel(cid, "You can't be in combat in order to join the queue.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return true end end if(isInParty(cid)) then doPlayerSendCancel(cid, "You can't join queue while you are in party group.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return true end if(query:getID() == 0) then doPlayerSendCancel(cid, "You are already listed in queue.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return true end db.executeQuery("INSERT INTO `dungeon_finder` SET `player_id` = " .. getPlayerGUID(cid) .. ";") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_BLUE) doCreatureSay(cid, "You've beed queued in dungeon finder - random mode.", TALKTYPE_ORANGE_1) elseif(param == "remove") then query = db.getResult("SELECT * FROM `dungeon_finder` WHERE `player_id` = " .. getPlayerGUID(cid) .. "") if(query:getID() == -1) then doPlayerSendCancel(cid, "You are not listed in the queue.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return true end db.executeQuery("DELETE FROM `dungeon_finder` WHERE `player_id` = " .. getPlayerGUID(cid) .. ";") doCreatureSay(cid, "You've beed removed from queue.", TALKTYPE_ORANGE_1) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_RED) end return true end Globalevents
    local DUNGEONS = { [1] = {NAME = "Test dungeon", LEVEL = 30, POS = {x = 450, y = 357, z = 15}}, } local condition = createConditionObject(CONDITION_INFIGHT) setConditionParam(condition, CONDITION_PARAM_TICKS, 15000) function onThink(cid, interval) DUNGEON = DUNGEONS[math.random(1, table.maxn(DUNGEONS))] players = {} for i = 1, 1000 do if(table.maxn(players) == 5) then break end query = db.getResult("SELECT * FROM `dungeon_finder` WHERE `id` = " .. i .. ";") if(query:getID() > -1) then pid = getPlayerByName(getPlayerNameByGUID(query:getDataInt("player_id"))) if(getPlayerStorageValue(pid, CONFIG.DUNGEON_STORAGE) > 1) then return true end if(getPlayerLevel(pid) > DUNGEON.LEVEL and getPlayerLevel(pid) < DUNGEON.LEVEL + 50) then table.insert(players, getPlayerGUID(pid)) end query:free() end end if(table.maxn(players) == 5) then for i = 1, 5 do pid = getPlayerByName(getPlayerNameByGUID(players[i])) if(i == 1) then doPlayerSendTextMessage(pid, MESSAGE_STATUS_CONSOLE_BLUE, "You were chosen to be a dungeon guide.") addEvent(doCreatureSay, 15200, pid, "You and your team were teleported to the " .. DUNGEON.NAME .. ".", TALKTYPE_ORANGE_1) for j = 2, 5 do lid = getPlayerByName(getPlayerNameByGUID(players[j])) doPlayerInviteToParty(pid, lid) end else doPlayerJoinParty(pid, getPlayerByName(getPlayerNameByGUID(players[1]))) end delay = 0 for i = 1, 15 do addEvent(doPlayerSendTextMessage, delay + 1000, pid, MESSAGE_STATUS_CONSOLE_BLUE, "A dungeon group for you has been found. You'll be teleported to the dungeon in " .. 15 - i .. " seconds.") delay = delay + 1000 end doAddCondition(pid, condition) addEvent(doTeleportThing, 15000, pid, DUNGEON.POS) addEvent(doSendMagicEffect, 15000, DUNGEON.POS, CONST_ME_TELEPORT) db.executeQuery("DELETE FROM `dungeon_finder` WHERE `player_id` = " .. players[i] .. ";") if(CONFIG.QUIT_POS) then setPlayerStorageValue(pid, 9001, getPlayerPosition(pid).x) setPlayerStorageValue(pid, 9002, getPlayerPosition(pid).y) setPlayerStorageValue(pid, 9003, getPlayerPosition(pid).z) end setPlayerStorageValue(pid, CONFIG.DUNGEON_STORAGE, 1) end end return true end CreatureEvents
    function onLogout(cid) query = db.getResult("SELECT * FROM `dungeon_finder` WHERE `player_id` = " .. getPlayerGUID(cid) .. ";") if(query:getID() == -1) then return true end db.executeQuery("DELETE FROM `dungeon_finder` WHERE `player_id` = " .. getPlayerGUID(cid) .. ";") return true end function onLeaveParty(cid) if(getPlayerStorageValue(cid, CONFIG.DUNGEON_STORAGE) == 1) then setPlayerStorageValue(cid, CONFIG.DUNGEON_STORAGE, -1) if(CONFIG.DESERTER_DEBUFF_TIME) then setPlayerStorageValue(cid, CONFIG.DUNGEON_STORAGE, os.time() + CONFIG.DESERTER_DEBUFF_TIME) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You've been marked with deserter debuff for " .. CONFIG.DESERTER_DEBUFF_TIME / 3600 .. " hour/s. For this time you can't join the queue again.") end TMP_POS = CONFIG.QUIT_POS and {x = getPlayerStorageValue(cid, 9001), y = getPlayerStorageValue(cid, 9002), z = getPlayerStorageValue(cid, 9003)} or getPlayerMasterPos(cid) doTeleportThing(cid, TMP_POS) doSendMagicEffect(TMP_POS, CONST_ME_TELEPORT) for i = 9001, 9003 do setPlayerStorageValue(cid, i, -1) end end return true end lib
    CONFIG = { AREA = false, -- if false then everyone can join queue everywhere, if you want certain area add AREA = {FROMPOS = {}, TOPOS = {}} PZ_REQUIRED = false, -- requirement of standing in pz, if you don't want it just set PZ_REQUIRED = false REQUIRED_LEVEL = 30, -- required level to join the queue, if you don't want it just set REQUIRED_LEVEL = false SKULL = 1, -- skull that is not acceptable while joining queue, if you want players join with skulls just set SKULL = false IN_FIGHT = true, -- if player is in fight he can't join the queue, IN_FIGHT = false to disable QUIT_POS = false, -- if you want player to go back to his previous position (from which he got teleported to the dungeon) set QUIT_POS = true, if set to false it'll teleport player to his temple DESERTER_DEBUFF_TIME = 1800, -- 60 = 1 min, 3600 = 1h DUNGEON_STORAGE = 9005 } C++
    luascript.cpp int32_t LuaScriptInterface::luaDoPlayerJoinParty(lua_State* L) { //doPlayerJoinParty(cid, lid) ScriptEnviroment* env = getEnv();[/left] Player* leader = env->getPlayerByUID(popNumber(L)); if(!leader) { errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND)); lua_pushboolean(L, false); } Player* player = env->getPlayerByUID(popNumber(L)); if(!player) { errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND)); lua_pushboolean(L, false); } g_game.playerJoinParty(player->getID(), leader->getID()); lua_pushboolean(L, true); return 1; } Coloque: int32_t LuaScriptInterface::luaDoPlayerInviteToParty(lua_State* L) { //doPlayerInviteToParty(cid, pid) ScriptEnviroment* env = getEnv(); Player* leader = env->getPlayerByUID(popNumber(L)); if(!leader) { errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND)); lua_pushboolean(L, false); } Player* player = env->getPlayerByUID(popNumber(L)); if(!player) { errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND)); lua_pushboolean(L, false); } g_game.playerInviteToParty(player->getID(), leader->getID()); lua_pushboolean(L, true); return 1; } creatureevent.h Depois de: CREATURE_EVENT_PREPAREDEATH, Coloque: CREATURE_EVENT_LEAVEPARTY Depois de: bool playerLogout(Player* player, bool forceLogout); Coloque: uint32_t executeLeaveParty(Player* player); Depois de: uint32_t executePrepareDeath(Creature* creature, DeathList deathList); Coloque: uint32_t executeLeaveParty(Player* player); creatureevent.cpp Depois de: else if(tmpStr == "preparedeath") m_type = CREATURE_EVENT_PREPAREDEATH; Coloque: else if(tmpStr == "leaveparty") m_type = CREATURE_EVENT_LEAVEPARTY; Depois de: case CREATURE_EVENT_PREPAREDEATH: return "onPrepareDeath"; Coloque: case CREATURE_EVENT_LEAVEPARTY: return "onLeaveParty"; Depois de: case CREATURE_EVENT_PREPAREDEATH: return "cid, deathList"; Coloque: case CREATURE_EVENT_LEAVEPARTY: return "cid"; Depois da função: uint32_t CreatureEvent::executeFollow(Creature* creature, Creature* target)... Coloque: uint32_t CreatureEvent::executeLeaveParty(Player* player) { //onLeaveParty(cid) if(m_interface->reserveEnv()) { ScriptEnviroment* env = m_interface->getEnv(); #ifdef __DEBUG_LUASCRIPTS__ std::stringstream desc; desc << player->getName(); env->setEventDesc(desc.str()); #endif env->setScriptId(m_scriptId, m_interface); env->setRealPos(player->getPosition()); lua_State* L = m_interface->getState(); m_interface->pushFunction(m_scriptId); lua_pushnumber(L, env->addThing(player)); bool result = m_interface->callFunction(1); m_interface->releaseEnv(); return result; } else { std::cout << "[Error - CreatureEvent::executeAdvance] Call stack overflow." << std::endl; return 0; } } game.cpp Mude: bool Game::playerLeaveParty(uint32_t playerId) { Player* player = getPlayerByID(playerId); if(!player || player->isRemoved()) return false; if(!player->getParty() || player->hasCondition(CONDITION_INFIGHT)) return false; return player->getParty()->leave(player); } Para: bool Game::playerLeaveParty(uint32_t playerId) { Player* player = getPlayerByID(playerId); if(!player || player->isRemoved()) return false; if(!player->getParty() || player->hasCondition(CONDITION_INFIGHT)) return false; CreatureEventList leavePartyEvents = player->getCreatureEvents(CREATURE_EVENT_LEAVEPARTY); for(CreatureEventList::iterator it = leavePartyEvents.begin(); it != leavePartyEvents.end(); ++it) (*it)->executeLeaveParty(player); return player->getParty()->leave(player); }


    E é isso galera, o local da quest pode ser mudado/adicionado no GlobalEvent, mais uma maravilha do Teckman
    Depois de: //doPlayerJoinParty(cid, lid) lua_register(m_luaState, "doPlayerJoinParty", LuaScriptInterface::luaDoPlayerJoinParty); Coloque: //doPlayerInviteToParty(cid, pid) lua_register(m_luaState, "doPlayerInviteToParty", LuaScriptInterface::luaDoPlayerInviteToParty); Depois de:
  4. Gostei
    nahapa deu reputação a MaXwEllDeN em Private Shop V. 2   
    Não chei uma área adequada para postar, então vai aqui mesmo....


  5. Gostei
    nahapa deu reputação a Bizzle em [Site que verifica possiveis erros no script]   
    Bom, eu estava procurando por esse site que já usei para como um verificador de erros dos meus scripts (em Lua) e não encontrava a URL. Dando uma olhada no forum, acabei também não o encontrando e quando me lembrei dele resolvi postar para que sirva de ajuda (principalmente aos scripters iniciantes) com seus testes de funções, coisa e tal.
    Você pode acessar o site clicando aqui.
    Para fazer um teste do seu script, basta colá-lo na parte onde há uma área com espaço retangular para digitar e clicar em Run:




    No caso, esse site é da própria PUC-Rio (a Pontifícia Universidade Católica do Rio de Janeiro, onde foi desenvolvida a linguagem de programação Lua). Nele, há também um manual de referência com um imenso conteúdo sobre esta linguagem tão apreciada pelos scripters tibianos, que pode lhes auxiliar bastante com tamanho conhecimento disponível lá.
    Acesse o manual de referência clicando aqui.
    Enfim, espero que possam fazer bom proveito dessa ferramenta.
  6. Gostei
    nahapa recebeu reputação de Danves em Hotkeys iniciais no OTC   
    Altere as funções loadDefautComboKeys() e doKeyCombo(keyCombo)
     
     
    coloque isto
     



     



     
    Se ajudei rep+ agradeço
    Olha ai se e isso que voce quer
  7. Gostei
    nahapa deu reputação a Vodkart em [Action] Player Effect   
    no seu tem um bug, se o jogador deslogar durante a ação irá dar erros no distro


    function onUse(cid, item, frompos, item2, topos) function doPlayerEffect(cid, delay) if not isCreature(cid) then return LUA_ERROR end doSendMagicEffect(getThingPos(cid), CONST_ME_HOLYAREA) if delay ~= 1 then addEvent(doPlayerEffect, 1000, cid, delay -1) end return nil end doPlayerEffect(cid, 60) doRemoveItem(item.uid, 1) return true end

    doPlayerEffect(cid, 60)

    por quantos segundos irá ficar soltando o efeito, deixei 60
  8. Gostei
    nahapa deu reputação a alissonfgp em Pedido Stian's dev-cpp repack!   
    Bom use a minha pra ver, eu compilo 0.3 e 0.4, nunca testei a 0.2 e a nova 1.0 entao n sei dizer se vai compilar, mas 0.3 e 0.4 compila a n ser que tenha erros na source...
     
    Link: http://www.4shared.com/rar/1LaX9_Xe/Stians_Repack_Dev-Cpp_Alissonf.html
    Scan: https://www.virustotal.com/pt-br/url/c4313caa62859c37a0df76bf3646672c4b40d21bd55a1ec192f718b3d6628728/analysis/1380332844/
  9. Gostei
    nahapa deu reputação a 1215171 em [Action] Player Effect   
    bem eu pensei em tipo wodbo servers de dragon ball z pensei nos raios q sai dos player quando rebornam em transforms especificas saem raios entao pensei nisso e fis esse script

    tag em data/actions/actions.xml abra e coloque


    <action itemid="id do seu item aqui" script="player eff.lua" /> em data/actions/scripts copie um arquivo .lua e renomeie para player eff e subistitua tudo q tenha dentro por isso function onUse(cid, item, frompos, item2, topos) for i = 1, 60 do addEvent(function() doSendMagicEffect(getThingPos(cid), 10) end, i*1000) end doRemoveItem(item.uid, 1) end

    explicando:no lugar "for i = 1, 60 do" o script esta em segundos entao modifique o 60 para oq vc quiser o 60 é = 1 minuto se quiser 2 minutos ponha 120 se quiser 3 ponha 180 e assim vai

    pronto galera quem gosto Rep+ por favor!!!!!




    @edit:
    esqueci de explicar uma coisa esse script fais q quando o player usa um certo item fique saindo um efeito nele por determinado tempo!!
  10. Gostei
    nahapa deu reputação a dunoka em [Dúvida] criando um ot do zero   
    para criar um otserver do 0, no minimo você precisa ter noção basica de scripts (npcs, XML, monsters, items, config.lua)
    você também precisará ter noção de como editar mapas, criar do 0 sem estragar
    ter noção de como criar GM, e alterar posição onde os account manager irão nascer (caso seja sem site)
    e também ler muitas tutoriais de scripting e de mapping (as principais tutoriais você pode encontrar em 4 grandes sites de otserver que são (tibiaking, TIBIAKING, E SITES EM INGLES OTFANS.NET, OTLAND.NET)

    os principais arquivos ou programas que você irá precisar são
    TIBIA DA VERSÃO DO SERVIDOR QUE VOCÊ QUER CRIAR
    IPCHANGER
    UM SERVIDOR JA PRONTO (aconselho o servidor "cryingdamson" pois é um servidor que ja está pronto para o uso, porém ele vem sem mapa, respawn, e houses ou seja para quem quer criar um servidor do 0
    VOCÊ TAMBÉM PRECISARÁ DE UM sqlitestudio para modificar accs, criar gms, entre varias outras coisas para modificar characters

    e programas de segunda mão como SPR EDITOR, DAT EDITOR, PROGRAMAS PARA FAZER SITES, PROGRAMAS PARA FAZER CLIENTE PROPRIO

    alem de ter muita paciencia, e ter muita imaginação.

    as portas para você criar um mundo do 0 gigantesco, e onde você pode modificar e fazer tudo esta na sua frente agora so pesquisar e começar a fazer seu servidor!!!

    BOA SORTE NESSE NOVO MUNDO QUE VOCÊ COMEÇARA A CONHECER A PARTIR DE HOJE.

    EDIT: VOU COLOCAR ALGUNS LINKS PARA VOCÊ APRENDER A DEIXAR SEU SERVIDOR ONLINE.

    TUTORIAL SOBRE ARQUIVOS.LUA
    http://tibiaking.com/forum/topic/451-tutorial-basico-sobre-lua/

    TUTORIAL SOBRE DEIXAR SEU SERVER ONLINE, E ALGUMAS OUTRAS FUNÇÕES
    http://tibiaking.com/forum/topic/1930-criando-otserv-ip-fixo-sqlitestudio-e-colocando-otserv-online/

    ESSA É PARA CASO VOCÊ TENHA WINDOWS 7: SERVE PARA DESBLOQUEAR AS PORTAS DO WINDOWS. (aquelas 7171 / 7272 / 7373 ...)
    http://tibiaking.com/forum/topic/8901-como-desbloquear-portas-no-firewall-do-windows-7/

    E AQUI UMA TUTORIAL PARA VOCÊ CRIAR UM SERVIDOR DO ZERO INCLUINDO O SITE.
    http://tibiaking.com/forum/topic/8667-tutorial-como-criar-um-ot-860-para-iniciantes/

    PS. acredito eu que os creditos estão junto com os links caso não estiverem os links vão para os posts originais de onde eu tirei.
  11. Gostei
    nahapa deu reputação a joaod123 em Mudar a cor do nick   
    já tem o tutorial aqui no tibia king 

    http://www.tibiaking.com/forum/topic/33156-c-color-name-digiwo/
  12. Gostei
    nahapa deu reputação a Krex em Khorem   
    Primeiro teaser em video, mostrando algumas das coisas que já apareceram no projeto =)




    Boa parte do vídeo mostra a raça/classe Orc Hunter. Abaixo as informações pra ajudar a entender cada habilidade dessa classe:


    ORC HUNTER Os grupos de orcs que vivem em cavernas conseguem ser tão organizados quanto os humanos, e uma das funções mais importantes para o andamento do grupo são os caçadores. Eles têm a função de sair para a caça e voltar com alimento pra seus companheiros. Embora possa não parecer, são rápidos, mortais e dominam diferentes tecnicas de caça.
    In-game, os Orc Hunters tem um moveset completamente ofensivo, embora seja single-target (ou seja, não tem dano em área). Caso consigam um bom posicionamento, podem prender um oponente em suas teias de aranha e dar um dano bem alto com seu combo.

      1 - Frenzy Shot

    Atira 3 flechas pra cima. A cada segundo uma cai, dando um dano crescente de 50%.
    Cooldown: 10 seg
    -- Uma magia simples, ajuda os hunters a caçar e também pode se tornar o final de um combo.
     
     
      2 - Spider Trap

    Ao usar, o orc arremessa uma armadilha feita com teias de aranha e prende os inimigos na área 3x3 do target (velocidade 0) por 5 segundos.
    Cooldown: 30 seg.
    -- O "CC" dos orcs caçadores. Serve tanto pra caçar tanto pra fugir. Como os orcs utilizam técnicas mais primitivas, essa armadilha é feita com teias de aranhas.

      3 - Killing Spree

    Aumenta todo o dano dado e diminui todo dano recebido em 50% por 10 segundos.
    Cooldown: 60 seg
    -- Uma espécie de frenesi do caçador, boa pra quando estiver cercado por vários inimigos e quiser ganhar tempo para fugir ou matar eles mais rápido.

      4 - Orc Bite

    O orc pula no alvo e dá uma mordida.
    Cooldown: 20 seg
    --É uma boa habilidade pra não deixar vítimas fugirem (já que se aproxima deles), além de dar um dano alto com a mordida.

      5 - Silk Touch (Ultimate)
     
     
    Marca o humano no target com o efeito do "Silk Touch". Durante 8 segundos, todo dano que esse player marcado receber será acumulado numa variável. No final do tempo, 70% do dano total acumulado será dado de uma vez só.
    Cooldown: 180 seg
    -- Uma ultimate muito forte se bem usada. Ela força um combo em que todo o dano é dado de uma vez só, embora perca 30% da força que daria caso viesse aos poucos.
    --OBS: Antes de dizer que é OP, uma consideração: Todas classes/raças tem uma habilidade chamada "Defend" que te deixa imune de TODOS danos por 3 segundos (com um CD alto). Ou seja, embora Silk Touch permita um combo brutal, é preciso saber a hora certa de usar, do contrário, você pode acertar na defesa adversária e perder a chance de finaliza-lo.
  13. Gostei
    nahapa deu reputação a Krex em Khorem   
    Oi, eu sou o Goku! -sqn
      Introdução Sobre o projeto Objetivos Andamento Minimap atual Agradecimentos / contribuições Itens atuais Fim     INTRODUÇÃO  "Khorem" é um projeto de um novo jogo com base no OTClient. Ele vem sendo desenvolvido desde 2012 basicamente por mim (Krex) e alguns amigos que contribuem com doações.  A princípio, a intenção era de colocar em prática conteúdo visto na faculdade e reunir a paixão por RPG. Agora (cerca de dois anos depois), o projeto continua de pé, e com previsão de ficar online ainda em 2014.      
    SOBRE O PROJETO


     
    O projeto tem como inspiração histórias medievais como Crônicas de Gelo e Fogo e Senhor dos Anéis. Serão inicialmente 3 "grandes" cidades, cada uma com suas características próprias: clima, liderança, situação econômica e até mesmo religião. Além disso, dezenas de pequenos vilarejos, pousadas e fazendas poderão ser encontradas espalhadas pelo mapa (normalmente com uma só família vivendo).    Cada NPC tem uma família ou história pra contar. Caso você pergunte a ele seu "name" ele vai te responder o nome e sobrenome (caso tenha uma "família"). Isso significa que se você perguntar sobre outro NPC da mesma família, ele poderá te dizer algo: que gosta dele, que não gosta, que não se conhecem muito bem... ou quem sabe que tem uma quest com algo pra você entregar pra ele...  Isso também vale pra NPCs que moram na mesma região. Afinal, como podem dois moradores de uma mesma vila não terem o que falar um sobre o outro?   Exemplo básico:          
      O jogo vai ter algumas "diferenças" pra outros jogos no mesmo padrão. Os monstros terão um sistema de leveis, e sua força/vida/loots e experiência vão aumentando a cada nível. Um rato no nível 1, por exemplo, tem 10 de vida, dá 5 pontos de experiência e pode dropar até 5 moedas de bronze. No nível 2, ele tem 20 de vida e dá 10 de experiência e pode dropar até 10 moedas de bronze, além de um pedaço de queijo, que no nível 1 não é parte do loot.. No nível 3, ele tem 30 de vida, 15 de experiência, 15  moedas de bronze por aí vai...  

      O sistema de dinheiro também vai ser um pouco diferente: a moeda mais baixa é a de bronze, depois prata e por ultimo de ouro. Em alguns lugares, itens poderão ser utilizados como "moeda alternativa" ou ter um valor mais alto do que o geral: no deserto por exemplo, NPCs podem preferir negociar por  comida do que moedas de ouro. Couro é bem visto na área gelada.    Independente de sua vocação ou raça,  você pode treinar diferentes skills da mesma forma. As armas serão divididas em uma ou duas mãos (no caso de melee, e tanto faz usar um machado ou espada), distance e magic. A intenção é te dar mais liberdade em pvp, que por acaso, será um outro diferencial.          
    O principal diferencial do PvP serão as raças. Inicialmente serão duas: human e orcs. Cada raça vai viver em uma cidade diferente, e o pvp entre elas será "enforced" - ou seja, você poderá matar um jogador da outra raça sem punição. Entretanto, não poderá matar um jogador da mesma raça. 
    As magias de dano NÃO dão dano em pessoas da MESMA raça.
    As magias de cura NÃO CURAM as pessoas da OUTRA RAÇA.
     
     
    Sobre as quests:



     
     
    Um pouco (sério, tem bem pouca coisa aí!) da história/roleplay:
      Genesis (segundo os humanos)
     
      Genesis (segundo os orcs)
     



     
     Lauthern Ruins (Parte I - Resumo)


        Lauthern Ruins - (Parte II - Blake 'Fasthands')
       Mainport (Resumo)
      Oakhem (Resumo)
     
     
       Sandstone (Resumo)
     
     Snowden   (Resumo)
     



     
    OBS: As cidades de Sandstone e Snowden ainda não estão sendo feitas. Digamos que estão programadas pra updates futuros 
     
       
     
    OBJETIVOS 
     
     
    A intenção é de tornar o Khorem um jogo com todo o aspecto de um livro, onde o jogador pode contribuir para o resultado final.
     
    Monstros diferentes e com leveis Jogabilidade diferente - quests com puzzles diferentes e etc Possibilidade de jogadores personalizarem sua classe/raça PVP mais dinâmico, baseado em MOBAs como League of Legends/Dota Variedade de livros, histórias, NPCs e etc  

      ANDAMENTO    Completo até então:
    Mapa base completo.  (minimap abaixo) Monstros com level . Sistema de raças. Pequena parte dos NPCs e quests completos.  15+ monstros até o momento. 60+ equipamentos e armas até o momento. Em andamento:
    Mais NPCs e Quests (eu) Outfits male/female (outra pessoa) Spells (outra pessoa)  
     
     

      MINIMAP ATUAL    
    O - Base Orc
    H - Base Humana
     
    Orkhan - Antiga Base Orc (no subsolo); Goblin Mountain; Lauthern Ruins - Atual Base Orc; Vila (pode comprar houses); (o animal aqui pulou o número 5); Uninhabited Fields; Vila (pode comprar houses); Death Hills; Vila (pode comprar houses); Goblins; Clay Deserts; Desert (futuramente a cidade de Sandstone); Oakhem Forest Oakhem City Mainport - Cidade Humana (no andar +1) Draco Mountain  
     

     
    AGRADECIMENTOS / CONTRIBUÇÕES
     
    Como já disse, até então estou fazendo "tudo" no projeto sozinho, mas de lá pra cá algumas pessoas já me ajudaram diretamente e indiretamente no Khorem, seja com doações de sprites, scripts, feedback... etc. Agradeço muito a cada uma delas:  
     
    - Insaend 
    - Etchebeur 
    - Darkzerus
    - Garou
    - Deragon
    - LooktovasK
    - Miller
     
    Se eu esqueci de alguém só me lembrar que edito aqui  
           
    ITENS ATUAIS  

     
     
     

     
    FIM (ounão)  
     
     
  14. Gostei
    nahapa deu reputação a Avuenja em OTClient 0.6.7 | 10.71   
    Olá galera, como muitos estavam reclamando dos links off, e de atualizações do OTC. Ai esta a versão mais recente dele.
     
    Informação:
    Versão OTC: 0.6.7 Versões suportadas pelo client: 7.4 há 10.71 Compilada por: Avuenja Compilada em 16/01/2015 Imagem:

     
    Download:
    For Windows  
    Abraços pessoal, as sources estão juntas. :3
  15. Gostei
    nahapa deu reputação a Avuenja em Agarre sua vida | OTC   
    Cria 3 barras de Hp, Mp e Xp, onde você pode mover e deixar elas onde quiser.
    Nome: Health Bar Descrição: Nova health bar Autor: Eduardo Vicente (Banana Fight)
    Versão 1.0
    Features: Cria 3 barras de Hp, Mp e Xp, onde você pode mover e deixar elas onde quiser.
     
    Download

    https://mega.co.nz/#...IhBiUK8VkYxEip0

     
    Instalação

    Extraia a pasta dentro de
    otclient-master\Modules
  16. Gostei
    nahapa deu reputação a Avuenja em [OTC] Background animado   
    Olá pessoal, achei um tutorial muito legal na net, e resolvi trazer para vocês... Ele ensina como colocar background animado no OTClient.
     
    Entendendo as limitações do OTC

    Todos nós sabemos que o OTC só aceita imagens em .pgn e a maioria das imagens animadas são gif ou flash, então como vamos colocar imagens animadas no nosso cliente...

    Introdução

    Passeando pelas profundezas da internet andei lendo que o novo firefox 3 aceitara uma extensão de imagem nova, e qual é essa extensão o APNG isso mesmo Animated Portable Networks Graphics
    então pensei vamos explorar isso.. encontrei um programa que se chama APNG Anime Maker e e ele que vamos utilizar


    1º Passo

    Baixe o Programa AQUI
    ( ele funciona por frames então vc tera que ter todas as imagens de sua animação 1 por 1 em qualquer arquivo mas desde que elas tenham o mesmo tamanho (1024x719 padrão OTC) para n dar conflito visual).
    depois de baixar o programa e ter todas as imagens agora fica facil então vamos seguir.

    2º Passo.

    Abra o APNG

     
    Menu Principal
    OPEN > Abre as suas imagens SAVE > Salva a sua imagem em formato png (porem com a animação) CLEAN > Limpa todas as imagens Move Up / Move down > altera a ordem das imagens Menu Lateral
    Delay > tempo para cada imagens ficar em exibição em ms ou fps Offset / Increment > não sei pra que serve =p os outros menus tbm n mas n vamos usar eu acho rsrs Após adicionar todas as suas imagens em frames e classificar a ordem e tempo de exibição delas salve o arquivo no botão SAVE e coloque dentro da pasta \data\images com nome de background e teste
  17. Gostei
    nahapa deu reputação a Avuenja em Pronto para usar | OTC   
    Hoje vim trazer um tutorial de como remover o terminal, modules manager, e deixar o ip automático.
     
    Vamos ao tutorial :
     
    Parte Um
     
    Removendo módulos indesejados
     
    Dentro do diretório
    \otclient-master\modules\client Você irá abrir o arquivo "client.otmod"
     
    Dentro dele vai ter as seguintes linhas :
    load-later:     - client_styles     - client_locales     - client_topmenu     - client_background     - client_options     - client_entergame     - client_terminal     - client_modulemanager     - client_serverlist     //- client_stats Essas linhas são os módulos que vão carregar quando o client for aberto, então é só tirar os que você não quer que abra.
     

     
    Parte Dois
     
    Como deixar o ip automático
     
    Dentro do diretório
    \otclient-master modules\client_entergame Você irá abrir o arquivo "entergame.lua"
     
    Dentro da função "Init", você vai procurar por:
    if g_app.isRunning() and not g_game.isOnline() then     enterGame:show() end E embaixo dessa função você adiciona essa linha :
    EnterGame.setUniqueServer('127.0.0.1', 7171, 854, 270, 210) Como configurar essa função:
    EnterGame.setUniqueServer(Ip do server, Porta (7171), Versão do server, Largura da janela, Altura da Janela)
     

     
    Créditos
    BananaFight
  18. Gostei
    Confira Novo Servidor Baiak
    Devilbaiak.ml
     
    Olá Galerinha Tibiana!
    Durante 3 anos o baiak ainda está se atualizando cada vez mais e agora eu venho trazer a nova versao 10.10 não esta 100% mais garanto que vao gostar,entao vamos ver oque há de novo nele ?
     
    Essa Nova Versão eu conseguir criar em apenas 2 dias e meio e nao deu tempo de testar mais se houver bugs comentem por favor.
     
    Versão x10.1-  1.0 Oque há de novo ?
     
    • Todas as mountarias da versao 10.10
    • Todos os outfits 10.10
    • Todos os items 10.10
    • Monsters ainda em andamento.
    • Templo com cara de 10.10
    • City Vip com novo visual 10.10
    • War System 100%
    - Comandos :/war invite,nomedaguildrival  outra guild ativar a war /accept war,guildrival cancelar war . /war cancel,guildrival
    • Cast System 100%
    - Comandos:!cast list para ver casts abertos,!cast nomedoplayer para entrar, !cast exit para sair do cast que voce está !cast on para voce abrir um cast e !cast off para sair
    • Novo Npc no templo que vende items 10.10
    • Novo npc que vende items vip
    • Bug das houses retirados
    • Bug da Sql retirado
    • Novos Comandos
    /rank
    !mount nomedamount
    !addon nomedoaddon
    !changesex
    !buyhouse,!leavehouse,alana res,!sellhouse funcionando 100%
    e muito mais que nao veio na cabeça mais quando eu lembrar posto.
    O Servidor está em SQL pronto para por online e os erros do distro nao encomodam o server.
     
    • Baiak Yurots V5.2 Oque Mudou ?
     
    •Tirei bug das houses
    •Tirei todos os erro do distro
    •Arrumei o lado >> da city vip agora mais rox.
     
    • Baiak Yurots V5.1 Oque Mudou ?
     
    • Mudei a Quest do templo lv 150 ganha 2kk agora ganha só 500k
    • Melhorei os teleports master lv 300+ agora tem 4 novas quest e 2 hunt +
    • Mudei respaw de todas as hunts free , vip e master agora ta 5x melhor.
    • Mudei Tempo da loteria tava 15 em 15 minutos agora ta de 1 em 1 hora.
    • Melhorei a Exori gran do kina.
    • Mudei os loot do monster bosses agora igual da versao 10.30 do global
    • Adicionei quest do addon doll na area d lvel 300+
    • Adicionei Quest do 2kk na area d Lvl 300+
    • Adicionei Quest do necromancer shield na area de Lv 300+
    • Adicionei Quest do Dwarven Set e hornede helmet na area de level 300+
    • Adicionei o novo monster Master Medusa Lv 300+
    • Adicionei 2 novas hunt de Master Medusa.
    Se eu lembrar mas alguma coisa eu posto. :S
     
    • Baiak Yurots V5.0 Oque Mudou ?
     
    • Agora a City Está Maior Mais Bonita e Com Mais Houses.
    • Novo Sistema de Treiner não prescisa andar muito para axar um livre.
    • Novos monstros vip ( Sea Serpent Vip , Hellhound vip , night mare vip , fury vip ) novos monstros master ( hydra master , frost master , grim master e demon master).
    • Nova Quest Master Com Armas Para todas as vocaçao.
    • Agora o NPC VIP Vende e compra items vip, pois se voce pegar item vip de algum red algo assim voce pode vender mais so que o npc compra 60% mais barato ☺
    • Novo Npc que vender Red Remover.
    • Novo Templo.
    • Novas Quests.
    • Novo Depot.
    • Novos Commandos ( !food Compra 100 , !topfrags Ver quem é o top frag , !glist  ver as guild do server e !glist Nameguild para ver os player da guild.
    • Teleports Free e vip Agora com nova cara.
    • Novo Caminho Para Poi no mesmo lugar so que mais bonito.
    • Addon agora é com addon doll npc Varkhal Vende.
    • Systema de Loteria a cada 2 Horas.
    • Nova arena de team god que organiza.
    E muito Mais ..
     
    Novos Items.

     
    Master vip Quest

     
    Teleports Master

    Templo vip

    Templo city

     
    Teleports Master

    Teleport Free

     
    O Server Está FULL EM SQL Só Baixar e Por Online Abaixo !
     
    DOWNLOAD
    4shared
     
    SCAN
    VirusTotal
     
    Testado 32bits windows 7.
     
    ACC DO GOD
    god/god
     
    Creditos
    10% GOD Bon |  Por editar em 2008 90% Baiak Lula = Luizbaiak | Por editar2010 a 2014  
    Obrigado bom jogo!              GOSTOU? DE REP+.

Informação Importante

Confirmação de Termo