Ir para conteúdo

DukeeH

Membro
  • Registro em

  • Última visita

Tudo que DukeeH postou

  1. function onSay(cid, words, param) --[Vocation] = ( Nova Vocation, New Outfit ) local config = { -- Goku [473] = {499, 560}, -- Vegeta [474] = {500, 567}, -- Piccolo [44] = {501, 553}, -- C17 [56] = {531, 559}, -- Gohan [70] = {502, 559}, -- Trunks [490] = {503, 565}, -- Cell [94] = {504, 575}, -- Freeza [110] = {505, 551}, -- Majin Boo [475] = {528, 581}, -- Broly [980] = {506, 558}, -- C18 [151] = {507, 554}, -- Uub [163] = {529, 582}, -- Goten [177] = {508, 561}, -- Chibi Trunks [191] = {509, 561}, -- Cooler [205] = {510, 573}, -- Dende [217] = {511, 552}, -- Tsuful [229] = {512, 569}, -- Bardock [243] = {513, 552}, -- Kuririn [255] = {514, 542}, -- Pan [267] = {515, 543}, -- Kaio [279] = {516, 583}, -- Videl [291] = {530, 605}, -- Janemba [491] = {517, 576}, -- Tenshinhan [315] = {518, 580}, -- Jenk [327] = {519, 562}, -- Raditz [981] = {520, 564}, -- C16 [351] = {521, 555}, -- Turles [382] = {522, 566}, -- Bulma [375] = {523, 578}, -- Shenron [376] = {524, 577}, -- Vegetto [399] = {525, 568}, -- Tapion [476] = {498, 596}, -- Kame [424] = {526, 536}, -- King Vegeta [984] = {497, 563}, -- Kagome [448] = {496, 571}, -- Zaiko [477] = {495, 572}, -- Chilled [492] = {494, 574}, -- C8 [489] = {527, 579}, --Goku Black [540] = {541, 656}, --Golden Freeza [550] = {551, 586}, --Bills [560] = {561, 584}, --Zamasu [854] = {563, 614}, --Goku Black Evo [639] = {640, 655} } local voc = config[getPlayerVocation(cid)] local level = 800 if not voc then return true end local outfit,newvoc = {lookType = voc[2]},voc[1] if getPlayerLevel(cid) >= level then if getPlayerStorageValue(cid,99023) == 4 then if getPlayerStorageValue(cid, 1240) < os.time() then doCreatureChangeOutfit(cid, outfit) doPlayerSetVocation(cid, newvoc) setPlayerStorageValue(cid,1240,os.time()+5) doPlayerSendTextMessage(cid, 27, "Voce virou GOD") end else return doPlayerSendTextMessage(cid, 27, "Você nao é um GOD...") end else return doPlayerSendTextMessage(cid, 27, "Você precisa de level "..level.." para evoluir.") end return true end Só alterar onde esta local level = 800
  2. Manda uma foto do erro ou copia ele todo? Valeu
  3. Estranho cara, na função ele pega a hora atual e põem +10 segundos. Ai na parte que checa ele vê se o storage - hora atual é igual a 0. Essa parte não tem como estar errado, não da erro?
  4. Opa, não tinha visto que respondeu, lembra de citar a minha resposta, ai sou avisado que você respondeu aqui no post. O spells.lua fica assim: <instant name="Rage of the Skies" words="exevo gran mas vis" lvl="55" mana="650" selftarget="1" prem="1" exhaustion="0" needlearn="0" event="script" value="attack/rage of the skies.lua"> <vocation id="1"/> <vocation id="5"/> </instant> O Rage of the skies.lua fica assim: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_BIGCLOUDS) setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 8, 8, 10, 12) local area = createCombatArea(AREA_CROSS6X6) setCombatArea(combat, area) function onCastSpell(cid, var) if getPlayerStorageValue(cid, 3200) <= 0 then setPlayerStorageValue(cid, 3200, os.time()+10000) return doCombat(cid, combat, var) else doPlayerSendCancel(cid, "You are exhausted.") end return TRUE end Agora vou explicar o que mudei pra que você possa fazer nas outras magias que quiser e adaptá-las. A única parte que mudei foi a parte do onCastSpell. Você adiciona "if getPlayerStorageValue(cid, 3200) <= 0 then" para checar se o storage 3200 esta igual ou menor a 0. Embaixo você adiciona "setPlayerStorageValue(cid, 3200, os.time()+10000)" que caso o storage acima esteja igual ou menor a 0 ele adiciona 10s de exhaust. Então o return doCombat (que é o que faz a magia sair, já estava no script) O else serve como "se não" como uma condição contraria ao storage 3200 ser maior que 0 (faz menos de 10 segundos que o player soltou a magia) Então vem um doPlayerSendCancel que vai falar que o player esta em exhausted caso tenha soltado a magia a menos de 10 segundos. o end pra fechar aquele primeiro if (getPlayerStorageValue). E o return true que não sei se é necessário. Então, espero que tenha entendido o que fiz, assim você tem liberdade para fazer como quiser com as outras spell. Caso queira que o exevo gran mas vis só exhauste com o mas flam, faça essa alteração no mas vis e mas flam, usando o storage 3200 nos dois. (Mesmo storage, mesmo exhaust) Se você quiser que por exemplo, dê pra soltar exori vis, exevo gran mas vis e sd ao mesmo tempo, use o storage 3200 no mas vis, o 3201 no exori vis e a sd pode manter o exhaust do spells.xml
  5. weapons/weapons.xml <melee id="XXXX" level="100" unproperly="1" event="script" value="arma.lua"/> weapons/scripts/arma.lua function onUseWeapon(cid, var) local position = getCreaturePosition(cid) local target = variantToNumber(var) local playerTarget = getCreatureTarget(cid) local level = getPlayerLevel(cid) local magic = getPlayerMagLevel(cid) if(target ~= 0) then if (getPlayerVocation(cid) == 1 and getDistanceBetween(getCreaturePosition(cid), getCreaturePosition(playerTarget) <= 2)) then local dmgMin = (300 + (magic * 1.5)) local dmgMax = (350 + (level * 1.8)) ret = doTargetCombatHealth(cid, playerTarget, COMBAT_PHYSICALDAMAGE, -dmgMin, -dmgMax, CONST_ME_TELEPORT) and doSendDistanceShoot(position, getCreaturePosition(playerTarget), CONST_ANI_ENERGYBALL) end if (getPlayerVocation(cid) == 2 and getDistanceBetween(getCreaturePosition(cid), getCreaturePosition(playerTarget) <= 2)) then local dmgMin = (300 + (magic * 1.5)) local dmgMax = (350 + (level * 1.8)) ret = doTargetCombatHealth(cid, playerTarget, COMBAT_PHYSICALDAMAGE, -dmgMin, -dmgMax, CONST_ME_SMALLPLANTS) and doSendDistanceShoot(position, getCreaturePosition(playerTarget), CONST_ANI_POISON) end if (getPlayerVocation(cid) == 3 and getDistanceBetween(getCreaturePosition(cid), getCreaturePosition(playerTarget) <= 5)) then local dmgMin = (260 + (level * 2.1)) local dmgMax = (360 + (level * 2.3)) ret = doTargetCombatHealth(cid, playerTarget, COMBAT_PHYSICALDAMAGE, -dmgMin, -dmgMax, CONST_ME_HOLYDAMAGE) and doSendDistanceShoot(position, getCreaturePosition(playerTarget), CONST_ANI_SMALLHOLY) end if (getPlayerVocation(cid) == 4 and getDistanceBetween(getCreaturePosition(cid), getCreaturePosition(playerTarget) <= 1)) then local dmgMin = (310 +(level * 2.7)) local dmgMax = (420 +(level * 3.2)) ret = doTargetCombatHealth(cid, playerTarget, COMBAT_PHYSICALDAMAGE, -dmgMin, -dmgMax, CONST_ME_GROUNDSHAKER) and doSendDistanceShoot(position, getCreaturePosition(playerTarget), CONST_ANI_SMALLEARTH) end end return ret end Cara, deixei bastante opções de efeitos, multiplicadores de danos e distancias, no weapons.xml só coloca aquela linha ali em cima e cria o script com o nome declarado lá. Qualquer coisa pede ai vejo se consigo fazer, não testei.
  6. Qual distro você usa? 0.4 ou 1.x e qual versão? O que você gostaria que a arma fizesse para cada vocação?
  7. Exhaust de ataque exhausta com ataque, independente se for runa/magia. Você consegue atacar e curar ao mesmo tempo, mas não atacar 2x. Existe um jeito de fazer por storage, ai as magias que você quer só exhausta com as que você quer. Por exemplo botar a magia A pra exhaustar com a B e a C, mas podendo soltar sd junto com elas.
  8. Registra o item no items.xml apenas de forma ilustrativa, nome, attack e etc... E faz um script em weapons/scripts/nome da arma.lua, registrando também em weapons.xml. Se você quiser dar mais informações das formas de ataque e no que são baseadas posso te ajudar acho.
  9. Não pode compra e venda aqui, então não é comércio.
  10. DukeeH postou uma resposta no tópico em Suporte Tibia OTServer
    Pode usar o script nos mods e fazer o que eu falei, é indiferente. Ou usa o script do @Sepultura ou usa o que você estava usando antes quando criou o topico que só tinha o bug de não poder re-usar.
  11. Todos, constam todos os ids no script.
  12. https://github.com/otland/forgottenserver/pull/2109/files Espero que entenda, é isso que procura.
  13. Muito bom vodkart, assim como dito acima, seria bom ver essas novidades para o 1.x, Tendo em vista que a engine é muito melhor que as anteriores. Aguardando esse, e novos scripts para 1.x Abraço.
  14. DukeeH postou uma resposta no tópico em Suporte Tibia OTServer
    O Jeito mais simples, sem duvidas de arrumar. Abre o creaturescripts, login.lua Lá no meio coloca o seguinte: setPlayerStorageValue(cid, storage, 0) Quantas vezes forem necessárias (uma pra cada pot), sendo que você deve trocar storage pelo storage que fica salvo o tempo da potion. Assim caso o player morra ou relogue, o storage vai ser zerado e ele pode usar a potion novamente e você pode continuar usando os scripts que está usando.
  15. Baiak é uma edição do classico Yurots, que conta com a adição de teleports e um jogo mais "facilitado". É meio especifico, o cara (Baiak Lula) pegou o Yurots e fez algumas alterações e nomeou Baiak Yurots, e então em cima disso as pessoas foram editando e continuaram chamando de baiak. Att,
  16. Está usando o Microsoft Visual Studio 2015? A tfs sdk 3.2?
  17. Ou caso souber um pouco de inglês tem o tutorial oficial em: https://github.com/otland/forgottenserver/wiki/Compiling-on-Windows Ps. O passo 3 não precisa, você vai usar as sources que te mandei ali em cima, que são pro 8.6 Qualquer problema ou erro que tiver posta aqui que tento te ajudar. Abraço
  18. Isso, essa é a base da maioria dos otservers, é o mais original que você vai conseguir. Para o 8.6 existe o TFS 0.3.6, 0.4 e agora fizeram aquele port (adaptação) do 1.2 para o 8.6 Te aconselho sempre usar o TFS mais novo, por questão de bugs corrigidos, estabilidade, no caso seria aquele 1.2 que te mandei. https://github.com/ninjalulz/forgottenserver/tree/8.6 Não vai ter um executavel ai, porque você tem que compilar ele. Isso é bom pelo fato de você poder ver tudo que tem no executavel pelas sources, vai saber que não tem nada de malicioso e pode adicionar função, efeito ou algo mais depois caso queira. Tem vários tutoriais aqui no forum de como compilar o tfs 1.x, mas qualquer coisa posso ajudar.
  19. Não baixa um global, nele vai ter muito script, item errado, falha. Pois foi criado e mexido por 10 mil pessoas para tentar replicar um otserv global. O otserv mais limpo/simples que você vai achar é a base de 80% dos otservers que é o TFS. Baixa apenas a distro (base, executável) do TFS, nela vai vim um mapa simples deles, mas os itens, scripts e tal ta tudo igual o global. Ai você edita seu mapa, npcs e tudo a partir dali, e os bugs nele são quase nulos, ou são corrigidos sempre pela equipe, ai você só vai colocando essas mudanças no seu server. Não sei qual protocolo você pretende usar, mas use sempre a ultima versão do TFS no caso (1.X) TFS: 8.6 > https://github.com/ninjalulz/forgottenserver/tree/8.6 10.X > https://github.com/otland/forgottenserver Ou até mesmo OTX, que é um "multi-versão" que vai do 7.x até o 11.x usando uma arquitetura recente (Tem como base TFS 1.3). https://github.com/mattyx14/otxserver Boa sorte!
  20. Caramba, quanta besteira falada. Mysql, Salt, Server ser melhor com ou sem account manager. Nada relacionado a duvida do cara. Não vai piorar em nada segurança/desempenho tendo account manager. E com relação a sua duvida, é porque no próprio cliente, não é permitido falar sua senha. Como a senha que você entrou (Account Manager) é 1/1, você não vai poder digitar 1, independente de onde seja. Para solucionar isso, você entra em nada/nada (caso não tenha cast) coloque seu account manager lá, ai vai dar como se você entrou nada conta branco/branco e vai poder digitar o numero 1. Caso tenha cast é mais complicado, porque vai ter que colocar o account manager em alguma conta, e isso vai impedir que digite aquela letra/numero/simbolo enquanto estiver criando conta. Espero que tenha ajudado.
  21. Qual versão? 0.4 ou 1.x? Quanto mais informações fica mais facil ajudar.
  22. DukeeH postou uma resposta no tópico em Suporte Tibia OTServer
    Você tem database criada como falei? Ou pode ser o config.lua não reconhecido. São dois casos que a janela fecha sem ficar no erro.
  23. DukeeH postou uma resposta no tópico em Suporte Tibia OTServer
    Tenta editar o arquivo .sh para isso: #!/bin/bash ulimit -c unlimited while true; do ./theforgottenserver > data/logs/output.log & PID=$! echo $PID > theforgottenserver.pid wait $PID sleep 60 done Usei ele por um tempo e funcionava bem.
  24. Não tem esses icones disponíveis no 8.6.
  25. DukeeH postou uma resposta no tópico em Suporte Tibia OTServer
    Na sua foto não aparece o erro, a ultima mensagem é que está carregando a database, você está usando xampp/uniserver com uma database criada nele e com os dados dessa database no config.lua como mysql, login, senha e nome da db?

Informação Importante

Confirmação de Termo