Ir para conteúdo
  • Cadastre-se

edaegonis

Membro
  • Total de itens

    21
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    edaegonis deu reputação a Cat em Yutae - Cidade + Hunts   
    Yutae
    Fiz essa cidade a alguns anos e estava guardada no meu PC. Completei ela com 5 hunts, pois tinha um comprador interessado, porém o mesmo foi assaltado e desistiu da compra, então decidi postar pra vocês. O mapa é simples, mas tem vários acessos pela cidade pra WAR e locais para NPC, é uma cidade completa, as houses já vem cadastradas, mais informações e imagens abaixo.
     
    Informações:
    Versão: 11.0
    Depots: 38
    Criaturas: 596
    Casas: 24 (maior casa: "Plazza C GH II" (145 sqm))
     
     
    Show Off Cidade:
    Templo & Depot:
     
     
     
    Norte da Cidade e Porto
     
     
     
    Centro da Cidade:
     
     
     
    Arredores:
     
     
     
    Saída sul para as hunts com algun s mobs:
     
     
     
     
     
    Show Off Hunts:

     
    1 - Azul: Shock Head, Betrayed Wraith, Destroyer e Blightwalker
    Imagens:
     
     
    2 - Amarelo: Serpent Spawn, Medusa e Wyvern, 
    Imagens:
     
     
     
    3 - Laranja: Wailing Window, Son of Verminor e Plaguesmith.
    Imagens:
     
     
     
    4 - Vermelho: Silencer, Demon, Behemoth, Dark Torturer e Juggernaut.
    Imagens:
     
     
     
    5 - Rosa: Fury, Grim Reaper e Hellhound.
    Imagens:
     
     
     
    6 - Cinza: Serpent Spawn & Medusa
     
     
     
    7 - Marrom: Betrayed Wraith, Blightwalker e Undead Dragon.
     
     
     
    A ilha das fury acompanha um depot:
     
     
     
    Baixar mapa:
    Yutaev1_Nolis.rar
     
    Créditos:
    @SamueLGuedes
    @Cat
     
     
     
     
     
  2. Curtir
    edaegonis deu reputação a luanluciano93 em [ZNOTE] New Styller Layout   
    Fiz um layout para um projeto que estou desenvolvendo ... usei como base o znote que é o melhor ACC na minha opinião.
     
    https://www,newstyller.com
     
    Gostaria de ideias, críticas, opiniões ... 
  3. Curtir
    edaegonis recebeu reputação de Cat em Hati New AAC   
    O que quis dizer é que usar PHP é meio ultrapassado. React e Node não é mais “estar na moda” e sim se adaptar ao mercado. Estou apenas incentivando o uso xD
     
    Mas nada contra os AAC atuais. Inclusive servem muito bem o propósito.
     
     
    @Yinz inclusive, já tenho uma base em Node de uma API que consulta os dados MySQL de um OT.
    Só preciso fazer uns updates pois isso foi feito em 2018: https://github.com/edaegonis/forgottensite
     
    E também trocar de nome, pois usar "forgotten" é meio plágio.

    Vou iniciar um projeto novo e pegar algumas coisas que existem nesse repositório.
    Quando eu fizer isso eu coloco a URL aqui para quem quiser contribuir.

    Vamos se falando pra dar continuidade ?
  4. Curtir
    edaegonis recebeu reputação de Cat em Hati New AAC   
    Cara, confesso que estou surpreso de ler esse tipo de sugestão, e fico feliz pois já estive pensando nessas possibilidades.

    NodeJS e React já não são tecnologias tão recentes,
    e hoje em dia a linguagem Javascript consegue alcançar todos tipos de soluções relacionadas a web e inclusive mobile.

    Acho que já passou da hora de trazer algo nesse sentido para OTServs. Só que, antes tarde do que nunca haha ?


    Estou me colocando a disponibilidade pra fazer parte desse projeto. Hoje eu trabalho como engenheiro e uso javascript em todas minhas aplicações.
    Vamos começar com um MVP com as funcionalidades mais essenciais de gerenciamento de conta(login, characters, etc.) e o básico de análise(highscores, etc.)
    O que acha?



     
  5. Curtir
    edaegonis recebeu reputação de luanluciano93 em Hati New AAC   
    O que quis dizer é que usar PHP é meio ultrapassado. React e Node não é mais “estar na moda” e sim se adaptar ao mercado. Estou apenas incentivando o uso xD
     
    Mas nada contra os AAC atuais. Inclusive servem muito bem o propósito.
     
     
    @Yinz inclusive, já tenho uma base em Node de uma API que consulta os dados MySQL de um OT.
    Só preciso fazer uns updates pois isso foi feito em 2018: https://github.com/edaegonis/forgottensite
     
    E também trocar de nome, pois usar "forgotten" é meio plágio.

    Vou iniciar um projeto novo e pegar algumas coisas que existem nesse repositório.
    Quando eu fizer isso eu coloco a URL aqui para quem quiser contribuir.

    Vamos se falando pra dar continuidade ?
  6. Curtir
    edaegonis deu reputação a Pedro. em Hati New AAC   
    Ata, do jeito que lí deu entender que node e react ja tava ultrapassado kakakak.
    Maneiro esse projetin, em 2018 tu ja codava assim, top. Vamo por pra frente sim! ?
  7. Gostei
    edaegonis recebeu reputação de Pedro. em Hati New AAC   
    O que quis dizer é que usar PHP é meio ultrapassado. React e Node não é mais “estar na moda” e sim se adaptar ao mercado. Estou apenas incentivando o uso xD
     
    Mas nada contra os AAC atuais. Inclusive servem muito bem o propósito.
     
     
    @Yinz inclusive, já tenho uma base em Node de uma API que consulta os dados MySQL de um OT.
    Só preciso fazer uns updates pois isso foi feito em 2018: https://github.com/edaegonis/forgottensite
     
    E também trocar de nome, pois usar "forgotten" é meio plágio.

    Vou iniciar um projeto novo e pegar algumas coisas que existem nesse repositório.
    Quando eu fizer isso eu coloco a URL aqui para quem quiser contribuir.

    Vamos se falando pra dar continuidade ?
  8. Obrigado
    edaegonis recebeu reputação de Pedro. em Hati New AAC   
    Cara, confesso que estou surpreso de ler esse tipo de sugestão, e fico feliz pois já estive pensando nessas possibilidades.

    NodeJS e React já não são tecnologias tão recentes,
    e hoje em dia a linguagem Javascript consegue alcançar todos tipos de soluções relacionadas a web e inclusive mobile.

    Acho que já passou da hora de trazer algo nesse sentido para OTServs. Só que, antes tarde do que nunca haha ?


    Estou me colocando a disponibilidade pra fazer parte desse projeto. Hoje eu trabalho como engenheiro e uso javascript em todas minhas aplicações.
    Vamos começar com um MVP com as funcionalidades mais essenciais de gerenciamento de conta(login, characters, etc.) e o básico de análise(highscores, etc.)
    O que acha?



     
  9. Gostei
    edaegonis deu reputação a Pedro. em Hati New AAC   
    Olá, gostaria de saber a opinião de vocês sobre criar um novo AAC em NodeJS. sei que hoje a comunidade tem ótimos aacs como Znote, MyAAC, até o proprio gesior, mas desde que larguei o php, tenho pensado em fazer algo com javascript. Eu já vi algumas discussões sobre Apache, NGIX, Cache, pensei em fazer o back com o node e o front com React. Deixa sugestões aí, se vocês acham válido inciar um projeto c essas tecnologias.
     

     
    O projeto foi criado no Github, e será publico para quem quiser contribuir.
    O projeto vai ser estruturado em NodeJS e React.
    Express MySQL Axios Sequelize Bootstrap Bundle Sass Joi Crypto React e dependencies.  
     
    Por enquanto o projeto tá bem crú, pois meu nível de javascript não é lá aquelas coisas, então qualquer sugestão, criticas construtivas, serão bem-vindas.
     
    https://github.com/pedrogiampietro/Hati
     
     
     

  10. Curtir
    edaegonis deu reputação a Cat em Sistema de teleports por waypoints (descobrir áreas no mapa)   
    Waypoint teleport system é um dispositivo de teletransporte. O principal objetivo de um waypoint é fornecer viagens rápidas entre as áreas que um jogador descobriu. Esse sistema foi desenvolvido por Oen432. (Apenas traduzi)
     
    Demonstração:
     
    Instalação
    Abra data/movements/movements.xml. Adicione XML: <movevent event="StepIn" actionid="4236" script="waypoints.lua" /> Abra data/creaturescripts/creaturescripts.xml. Adicione XML: <event type="ModalWindow" name="WaypointsModal" script="modal_windows.lua"/> Faça o Download de waypoints.rar abaixo, no final do tópico. Copie waypoints.lua para data/movements/scripts/waypoints.lua. Copie modal_windows.lua para data/creaturescripts/scripts/modal_windows.lua.  
    Configuração Todas as configurações estão em - data/movements/scripts/waypoints.lua.
    WINDOW_ID - ignore.
    BUTTON_ACCEPT - ignore.
    BUTTON_CLOSE - ignore.

    WAYPOINTS_STORAGE - base storage id, mude se já está sendo usado esse (garanta que de WAYPOINTS_STORAGE para WAYPOINTS_STORAGE + Number of waypoints, as storages não estejam sendo utilizadas em outro código).

    WAYPOINTS - lista de waypoints disponíveis
    name - nome que será mostrado na lista e quando o waypoint for ativado
    position - posição do piso no mapa, aqui é onde o jogador será teleportado
     
    Download
    waypoints-1_0_0.rar
     
  11. Curtir
    edaegonis deu reputação a luanluciano93 em [TFS 1.3] OUTFIT BÔNUS   
    Olá, em data/events/scripts/creature.lua (implemente o código substituindo a função onChangeOufit, e verifique se ela esta definida como 1 em events.xml) 
    function createBonusCondition(id, params) local condition = Condition(CONDITION_ATTRIBUTES, CONDITIONID_DEFAULT) condition:setParameter(CONDITION_PARAM_TICKS, -1) condition:setParameter(CONDITION_PARAM_SUBID, id) for i = 1, #params do local param = params[i].param local value = params[i].value condition:setParameter(param, value) end return condition end outfitBonus = { -- [{male outfit id, female outfit id}] = createBonusCondition(ID, parameters & values) [{128, 136}] = createBonusCondition(1, { {param = CONDITION_PARAM_STAT_MAGICPOINTS, value = 10}, {param = CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT, value = 110} } ), [{129, 137}] = createBonusCondition(2, { {param = CONDITION_PARAM_STAT_MAXMANAPOINTSPERCENT, value = 200} } ) } function getBonusCondition(outfit) for outfits, bonus in pairs(outfitBonus) do if table.contains(outfits, outfit) then return bonus end end return nil end function Creature:onChangeOutfit(outfit) if not self:isPlayer() then return true end local previousBonusCondition = getBonusCondition(self:getOutfit().lookType) local newBonusCondition = getBonusCondition(outfit.lookType) if previousBonusCondition then self:removeCondition(CONDITION_ATTRIBUTES, CONDITIONID_DEFAULT, previousBonusCondition:getSubId()) end if newBonusCondition then self:addCondition(newBonusCondition) end return true end Em data/creaturescript/scripts/login.lua (dentro da função onLogin implemente o código a seguir) 
    -- Outfit bonus local bonusCondition = getBonusCondition(player:getOutfit().lookType) if bonusCondition then player:addCondition(bonusCondition) end Para configurar usa o exemplo a seguir: 
    outfitBonuses = { [{male outfit id, female outfit id}] = createBonusCondition(ID, parameters & values) } O ID deve ser diferente para cada bônus, de modo que o script pode identificar entre as condições.
    Os parâmetros devem estar dentro de uma tabela: {param = alguma_condição_parâmetro, value = valor_para_mudar}
     
    Aqui estão os parâmetro disponíveis no TFS 1.3: 
    CONDITION_PARAM_OWNER CONDITION_PARAM_TICKS CONDITION_PARAM_HEALTHGAIN CONDITION_PARAM_HEALTHTICKS CONDITION_PARAM_MANAGAIN CONDITION_PARAM_MANATICKS CONDITION_PARAM_DELAYED CONDITION_PARAM_SPEED CONDITION_PARAM_LIGHT_LEVEL CONDITION_PARAM_LIGHT_COLOR CONDITION_PARAM_SOULGAIN CONDITION_PARAM_SOULTICKS CONDITION_PARAM_MINVALUE CONDITION_PARAM_MAXVALUE CONDITION_PARAM_STARTVALUE CONDITION_PARAM_TICKINTERVAL CONDITION_PARAM_FORCEUPDATE CONDITION_PARAM_SKILL_MELEE CONDITION_PARAM_SKILL_FIST CONDITION_PARAM_SKILL_CLUB CONDITION_PARAM_SKILL_SWORD CONDITION_PARAM_SKILL_AXE CONDITION_PARAM_SKILL_DISTANCE CONDITION_PARAM_SKILL_SHIELD CONDITION_PARAM_SKILL_FISHING CONDITION_PARAM_STAT_MAXHITPOINTS CONDITION_PARAM_STAT_MAXMANAPOINTS CONDITION_PARAM_STAT_SOULPOINTS CONDITION_PARAM_STAT_MAGICPOINTS CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT CONDITION_PARAM_STAT_MAXMANAPOINTSPERCENT CONDITION_PARAM_STAT_SOULPOINTSPERCENT CONDITION_PARAM_STAT_MAGICPOINTSPERCENT CONDITION_PARAM_PERIODICDAMAGE CONDITION_PARAM_SKILL_MELEEPERCENT CONDITION_PARAM_SKILL_FISTPERCENT CONDITION_PARAM_SKILL_CLUBPERCENT CONDITION_PARAM_SKILL_SWORDPERCENT CONDITION_PARAM_SKILL_AXEPERCENT CONDITION_PARAM_SKILL_DISTANCEPERCENT CONDITION_PARAM_SKILL_SHIELDPERCENT CONDITION_PARAM_SKILL_FISHINGPERCENT CONDITION_PARAM_BUFF_SPELL CONDITION_PARAM_SUBID CONDITION_PARAM_FIELD CONDITION_PARAM_DISABLE_DEFENSE CONDITION_PARAM_SPECIALSKILL_CRITICALHITCHANCE CONDITION_PARAM_SPECIALSKILL_CRITICALHITAMOUNT CONDITION_PARAM_SPECIALSKILL_LIFELEECHCHANCE CONDITION_PARAM_SPECIALSKILL_LIFELEECHAMOUNT CONDITION_PARAM_SPECIALSKILL_MANALEECHCHANCE CONDITION_PARAM_SPECIALSKILL_MANALEECHAMOUNT CONDITION_PARAM_AGGRESSIVE Créditos: INFERNUM (OTLAND)
  12. Curtir
    edaegonis deu reputação a Delkdors em Atlantis - Mapa Próprio   
    Mapa  -  Atlantis
     
    Download:
     
    Atlantis.otbm
     
    Varredura
     
    RME e Client utilizado para fazer o mapa
     
    primeira vez que postar se tiver algo
    errado ou algo para corrigir no mapa  me avise  pfv
     
     
     
  13. Gostei
    edaegonis recebeu reputação de KotZletY em [AJUDA] COLOCANDO SERVIDOR EM MYSQL   
    Bom cara, eu posso tentar te ajudar, mas acho difícil pois o distro crashou no meio da conexão com o banco de dados, e ficamos sem nenhum erro para começar a debugar.
     
    Primeiramente, você tem o mysql server configurado na sua máquina? Se você tem o XAMPP para configurar o Apache do seu website, ele também pode configurar o ambiente do MySQL. 
     
    Tente acessar o seu MySQL pelo terminal/bash (através do painel de controle do Xampp). Se você conseguir, digite esse comando:
    show databases; E me mostre o resultado
  14. Gostei
    edaegonis recebeu reputação de mullino em (Resolvido)Mana e Life Scroll por vocation com Limite   
    É simples, você pode usar o player storage para chegar nesse resultado.
     
    Na sua função verifique a vocação do player, e veja se o storage (que você criou) dele é menor do que o valor permitido para a vocação.
    Caso positivo, você adiciona vida/mana máxima ao player, e adiciona +1 ao valor da storage.
    Caso negativo, você pode enviar uma mensagem dizendo que já usou o limite
  15. Gostei
    edaegonis recebeu reputação de Andersen96 em (Resolvido)Ajudaaaa please   
    Troque a linha 50 por isso e veja se funciona
    $config['site']['newchar_towns'][0] = array(1);  
  16. Gostei
    edaegonis recebeu reputação de KotZletY em (Resolvido)[Creaturescript] tempo pra avançar um level ----> "you advanced from level 227 to level 228 in 20 minutes and 40 seconds"   
    Esse erro está no arquivo newadvance.lua, na linha 10.
     
    No final dessa linha está chamando a função secondsToClock, mas essa função não é global e não está nesse arquivo.
     
    Solução:
    Acho essa linha deveria estar no início do arquivo newadvance.lua:
    STORAGE_FOR_TIMESTAMP = 15854  
    Insira essa função no final do arquivo newadvance.lua:
    local function secondsToClock(seconds, worded) -- Returns inputted seconds as a formatted string local seconds = tonumber(seconds) if seconds <= 0 then if worded == true then return "0 seconds."; else return "00:00:00"; end else local hours = string.format("%02.f", math.floor(seconds/3600)); local mins = string.format("%02.f", math.floor(seconds/60 - (hours*60))); local secs = string.format("%02.f", math.floor(seconds - hours*3600 - mins *60)); if worded == true then return ((seconds<3600 and "") or ((math.floor(seconds/3600) == 1 and "1 hour, ") or (math.floor(seconds/3600)) .. " hours, ")) .. ((seconds < 60 and "") or ((math.floor(seconds/60 - (hours*60)) == 1 and "1 minute, and ") or (math.floor(seconds/60 - (hours*60)).. " minutes, and "))) .. ((math.floor(seconds - hours*3600 - mins *60) == 1 and "1 second") or (math.floor(seconds - hours*3600 - mins *60).. " seconds")) .. "." else return hours..":"..mins..":"..secs end end end  
     
  17. Obrigado
    edaegonis recebeu reputação de poko360 em (Resolvido)[Creaturescript] tempo pra avançar um level ----> "you advanced from level 227 to level 228 in 20 minutes and 40 seconds"   
    Esse erro está no arquivo newadvance.lua, na linha 10.
     
    No final dessa linha está chamando a função secondsToClock, mas essa função não é global e não está nesse arquivo.
     
    Solução:
    Acho essa linha deveria estar no início do arquivo newadvance.lua:
    STORAGE_FOR_TIMESTAMP = 15854  
    Insira essa função no final do arquivo newadvance.lua:
    local function secondsToClock(seconds, worded) -- Returns inputted seconds as a formatted string local seconds = tonumber(seconds) if seconds <= 0 then if worded == true then return "0 seconds."; else return "00:00:00"; end else local hours = string.format("%02.f", math.floor(seconds/3600)); local mins = string.format("%02.f", math.floor(seconds/60 - (hours*60))); local secs = string.format("%02.f", math.floor(seconds - hours*3600 - mins *60)); if worded == true then return ((seconds<3600 and "") or ((math.floor(seconds/3600) == 1 and "1 hour, ") or (math.floor(seconds/3600)) .. " hours, ")) .. ((seconds < 60 and "") or ((math.floor(seconds/60 - (hours*60)) == 1 and "1 minute, and ") or (math.floor(seconds/60 - (hours*60)).. " minutes, and "))) .. ((math.floor(seconds - hours*3600 - mins *60) == 1 and "1 second") or (math.floor(seconds - hours*3600 - mins *60).. " seconds")) .. "." else return hours..":"..mins..":"..secs end end end  
     
  18. Gostei
    edaegonis recebeu reputação de Storm em Monstros são criados apenas se já forem mortos   
    Bom pessoal, esse é um script bem simples, mas eu gosto da ideia dele, e não consegui encontrar por aí.
     
     
    É uma boa solução pra quando você quer summonar monstros numa quest, e se tiver vários players não ficará summonando monstros várias vezes.
     
    Esse script está sendo usado ao dar use num chest, mas está a seu critério onde utilizar.
    monstersToCreate = { [1] = { name = 'Lost Berserker', position = {x = 1034, y = 1425, z = 15} }, [2] = { name = 'Lost Thrower', position = {x = 1028, y = 1424, z = 15} }, [3] = { name = 'Lost Basher', position = {x = 1034, y = 1427, z = 15} }, [4] = { name = 'Lost Thrower', position = {x = 1040, y = 1423, z = 15} }, [5] = { name = 'Lost Husher', position = {x = 1030, y = 1430, z = 15} }, [6] = { name = 'Lost Husher', position = {x = 1038, y = 1429, z = 15} } } function onUse (player, item, param) if item:getActionId() == 45016 then if player:getStorageValue(45016) == -1 then player:addItem(2517, 1) -- shield of honour player:addItem(2502, 1) -- dwarven helmet local currentMonsters = Game.getStorageValue(45016) if currentMonsters then for v = 1, #currentMonsters do local monsterId = currentMonsters[v] local isMonsterAlive = Monster(monsterId) if not isMonsterAlive then local createdMonster = Game.createMonster(monstersToCreate[v].name, monstersToCreate[v].position) currentMonsters[v] = createdMonster:getId() end end Game.setStorageValue(45016, currentMonsters) else local createdMonsters = {} for i = 1, #monstersToCreate do local createdMonster = Game.createMonster(monstersToCreate[i].name, monstersToCreate[i].position) table.insert(createdMonsters, createdMonster:getId()) end Game.setStorageValue(45016, createdMonsters) end player:setStorageValue(45016, 1) player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "You've got a reward.") else player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "You've already got your reward.") end end return true end  
    actions.xml:
    <action actionid="45016" script="seu_script.lua" />  
    Se alguém quiser aprimorar o script, sinta-se à vontade ?
  19. Obrigado
    edaegonis recebeu reputação de peterson18 em Erro Script Função getCreatureName   
    @peterson18 está quase, faltou remover o if desnecessário
     
    acredito que a versão correta do script seria assim:
     
    local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local nome = getCreatureName(cid) if msgcontains(msg, "blz") or msgcontains(msg, "blzz") and talkState[talkUser] == 1 then selfSay("Olá, como está ".. nome ..", faz tempo que não aparece por aqui... Em que posso lhe ajudar?",cid) return true end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) veja se deu certo ?
  20. Obrigado
    edaegonis recebeu reputação de chateadoagr em IVCG RADBR CONTRATO PROFISSIONAIS!   
    Estou disponível para ajudar na área de programação, seja lua ou web ?
  21. Gostei
    edaegonis recebeu reputação de ntoshinobiacademy em Erro ao Criar conta no Site   
    E ai cara, tudo certo?
     
    Esse erro está aparecendo pois a variável $cap não foi definida.
     
    Uma possível solução seria seguir esses passos:
     
    Remover essas 3 linhas desnecessárias (linha 310):
     
    Adicionar uma nova linha com a atribuição (linha 315):
    $cap = create_captcha($vals);  
    Espero que tenha funcionado ?
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo