Ir para conteúdo

razurator

Campones
  • Total de itens

    43
  • Registro em

  • Última visita

Tudo que razurator postou

  1. Agradeço muito Finiarel, o problema é que o conceito é como se ele saísse girando e andando com a espada, então eu preciso que cada "pancada" seja na position atual dele. Já as formulas ajudaram bastante.
  2. Olá xTibianos, estou precisando fazer uma magia que é na verdade um exori gran, mas ao em vez de soltar uma vez o efeito a magia faz esse mesmo efeito 5 vezes com intervalos de 0,5 a 1 segundo(s), e com o dano dividido entre cada turno. Agradeço desde já se for possível me dar um suporte para isso. Aproveitando o tópico e sem fugir nada do assunto, estou precisando entender como o dano das magias é calculado, mas não achei aqui no forum. Exemplo: setHealingFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 10, 14) Eu sei que alterando os números eu altero o resultado, mas não faço ideia do que é o que. Para as vocations eu também não entendo nada, sempre fui com a cara e com a coragem, mas procuro entender isso agora Desculpas antecipadas se fugi do assunto. Em caso de lugar inapropriado, favor desconsiderar a parte contraria ao titulo.
  3. Obrigado, já estou conseguindo resultados com a ajuda de vocês. Acho que a partir de agora já da pra tocas com a minha equipe.
  4. Obrigado pela resposta amoeba13. No entanto, vou deixar o tópico aberto para coletar mais conteúdo, caso isso seja permitido até que eu perceba que minha duvida foi completamente sanada.
  5. Olá xTibianos, estou com uma equipe formada para a confecção de um Open Tibia no estilo MOBA e não sei se será possível programar os monstros que desejamos. Seria possível fazer algo como transformar os monstros em BOTs para que eles nasçam em um lugar, se desloquem para o local desejado e passem a lutar entre si e façam coisas como atacar players como nos MOBAs. Estou com dois programadores iniciantes cursando prontos para treinar sua habilidades num server de Tibia e se isso for possível então passa a ser um pedido ao em vez de uma duvida. Se fosse possível que alguém dispusesse pelo menos a logica empregada aos parâmetros do Tibia, já seria de grande ajuda. Agradeço desde já apenas a atenção e claro que vai ganhar REP+
  6. Obrigado pelo incentivo. A proposito, o que esta ruim? Sabendo o que esta ruim eu posso evoluir no determinado aspecto.
  7. Obrigado, realmente, como você disse eu estou focado no gameplay justamente para aumentar a experiência do jogador. A intenção é tornar o roleplay mais presente sem dar aos jogadores um mapa desprovido de arte.
  8. Mapa em desenvolvimento para o projeto "Hall of the Gods - Open Tibia Server". Por favor me deem alguma sugestão e critiquem a vontade, só não vale esculacho. Simples área de Wyverns: Esconderijo dos Minotaurs: Montanha dos Cyclops: Montanhas dos Cyclops 2: Hall dos Cyclops (Montanha dos Cyclops -2): Sala de Smithing (montanha dos Cyclops -3): Ruínas de uma cidade abandonada: Ruinas 2: Ruínas 3: Ruinas 4: Sala do rei (templo +1): Sei que não é aqui o lugar ideal mas se tiver alguém interessado eu estou procurando pessoas para terminar esse mapa. OBS: Não sei colocar dentro de SPOILER caso o numero de imagens esteja incomodando.
  9. Testarei, e caso ocorra algum erro eu posto uma Screen Shot pra ficar mais claro. Prometi Screen Shot do erro mas simplesmente não pega e também não esta dando erro, mas da ultima vez que deu erro é algo relacionado ao script não conseguir localizar a creature para adicionar a condition. Apenas a animação de red stars esta pegando mas os damages periódicos não sobem.
  10. Na minha pasta data esta escrito CONDITION_PHYSICAL tanto na magia de dispel Cure Bleeding (utorikor) quanto na pasta data/lib. Cure Bleeding (utori kor): local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PHYSICAL) function onCastSpell(cid, var) return doCombat(cid, combat, var) end data/lib/constant.lua CONDITION_NONE = 0 CONDITION_POISON = 1 CONDITION_FIRE = 2 CONDITION_ENERGY = 4 CONDITION_PHYSICAL = 8 CONDITION_HASTE = 16 CONDITION_PARALYZE = 32 CONDITION_OUTFIT = 64 CONDITION_INVISIBLE = 128 CONDITION_LIGHT = 256 CONDITION_MANASHIELD = 512 CONDITION_INFIGHT = 1024 CONDITION_DRUNK = 2048 CONDITION_EXHAUST = 4096 CONDITION_FOOD = 8192 CONDITION_REGENERATION = 8192 CONDITION_SOUL = 16384 CONDITION_DROWN = 32768 CONDITION_MUTED = 65536 CONDITION_ATTRIBUTES = 131072 CONDITION_FREEZING = 262144 CONDITION_DAZZLED = 524288 CONDITION_CURSED = 1048576 CONDITION_PACIFIED = 2097152 CONDITION_GAMEMASTER = 4194304 CONDITION_HUNTING = 8388608 tentarei substituir no lib e nas magias para CONDITION_BLEEDING. E quanto ao problema de limite de uso da magia? Pois os players não poderão aplicar mais de uma bleed em cada target, não sei como fazer isso.
  11. Bom eu não queria mais encher teu saco com aquela spell mas em fim, vamos la: local damage = COMBAT_PHYSICALDAMAGE local effect = CONST_ME_DRAWBLOOD local animation = CONST_ANI_REDSTAR local rounds = 15 local delay = 3 * 1000 local condition = createConditionObject(CONDITION_PHYSICAL) local function doCombatCondition(cid, target, type, area, min, max, effect, rounds) if isCreature(target) then if getCreatureCondition(target, CONDITION_PHYSICAL) then doAreaCombatHealth((isCreature(cid) and cid or 0), type, getThingPosition(target), area, min, max, effect) if rounds > 0 then addEvent(doCombatCondition, delay, cid, target, type, area, min, max, effect, (rounds - 1)) end end end return true end function onCastSpell(cid, var) local formula_min = getPlayerLevel(cid) * 0.27 local formula_max = getPlayerLevel(cid) * 0.30 local target = variantToNumber(var) if getDistanceBetween(getThingPosition(target), getThingPosition(cid)) < 6 then doSendDistanceShoot(getThingPosition(cid), getThingPosition(target), animation) end addEvent(doCombatCondition, delay, cid, target, damage, 0, -formula_min, -formula_max, CONST_ME_DRAWBLOOD, rounds) return true end OBS: me parece que não tem nada de errado com o script mas ele parou de funfar, ja que foi você que o fez, teria como arrumar pra mim? te dou REP +
  12. Eu queria saber como colocar um storage em uma spell de modo que ela não possa ser usada no mesmo alvo 2 vezes até que o efeito da primeira tenha acabado. No caso é uma condition. exemplo: function onCastSpell(cid, var) local storage = 23010 local spellname = "Ignite" local time = 30 if exhaustion.check(cid, storage) == false then exhaustion.set(cid, storage, time) return doCombat(cid, combat, var) else doPlayerSendCancel(cid, "") end end no script a sima temos um local storage de id 23010. A minha real duvida é como saber se o numero de um storage já existe pois eu vejo varias congruências entre os ID de storage em magias de mesmo gênero como Recovery e Intense Recovery que levam respectivamente 23015 e 23011, números muito próximos entre si.
  13. Exatamente cara, exana kor da dispel em condition bleeding se for isso mesmo então minha nova classe está pronta graças a vosso conhecimento. Muito obrigado, duvida sanada.
  14. vlw cara! Só tenho mais uma duvida: Eu vou ter como dar exana kor (dispel) nisso ou terei que fazer um script diferente para ela?
  15. esta pegando bunitinho mas teria como colocar uma distanceEffect para mim local damage = COMBAT_PHYSICALDAMAGE local rounds = 15 local delay = 3 * 1000 local function doCombatCondition(cid, target, type, area, min, max, effect, distanceEffect, rounds) if isCreature(target) then doAreaCombatHealth(cid, type, getThingPosition(target), area, min, max, effect) if rounds > 0 then addEvent(doCombatCondition, delay, cid, target, type, area, min, max, effect, distanceEffect, (rounds - 1)) end end return true end function onCastSpell(cid, var) local formula_min = getPlayerLevel(cid) * 0.28 local formula_max = getPlayerLevel(cid) * 0.30 local target = variantToNumber(var) addEvent(doCombatCondition, delay, cid, target, damage, 0, -formula_min, -formula_max, CONST_ME_HITAREA, CONST_ANI_REDSTAR, rounds) return true end tentei fazer mas acho que fiz cáca psakspaks.
  16. Então, mas teria como eu fazer um novo script para essa magia especificando como ela deveria agir? No caso dizendo a ela quanto de damage, o intervalo entre um e outro e quantos damages.
  17. Olá venho tentando alterar a magia de BLEED para que ela não desfira sempre o mesmo dano mas sim um dano de acordo com o level e o skill. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true) setCombatParam(combat, COMBAT_PARAM_EFFECT, 0) setCombatParam(combat, COMBAT_PARAM_USECHARGES, true) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_REDSTAR) local condition = createConditionObject(CONDITION_PHYSICAL) setConditionParam(condition, CONDITION_PARAM_DELAYED, 1) addDamageCondition(condition, 15, 3000, -70) setCombatCondition(combat, condition) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Por favor, como faço para colocar esse damage no lugar de [-70] function getSpellDamage(cid, lv, skill) damage_min = (lv + skill) * 0.20 damage_max = (lv + skill) * 0.25 if(damage_max < damage_min) then local tmp = damage_max damage_max = damage_min damage_min = tmp end return -damage_min, -damage_max end Agradeço deis de já a quem me ajudar. Dou REP+ se me ajudarem e explicarem como faz
  18. Vou testar aqui, caso pegue tranquilamente é REP+ na veia. Pegou perfeitamente
  19. No momento essa magia teleporta para a posição do inimigo, mas se o inimigo esta parado ele acaba por empurra-lo. Eu queria que ele se teleporte para uma posição randômica de (x,y) a partir do enemypos. (enemypos+n) ou seja, do lado, atras na frente ou até diagonal do inimigo se houver espaço. local distanceCombat = createCombatObject() setCombatParam(distanceCombat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(distanceCombat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SPEAR) function getSpellDamage(cid, lv) damage_min = lv * 2 damage_max = lv * 1 if(damage_max < damage_min) then local tmp = damage_max damage_max = damage_min damage_min = tmp end return -damage_min, -damage_max end setCombatCallback(distanceCombat, CALLBACK_PARAM_SKILLVALUE, "getSpellDamage") function onCastSpell(cid, var) local player = getCreaturePosition(cid) local target = getCreatureTarget(cid) local enemypos = getCreaturePosition(target) if target == isMonster or isCreature then doTeleportThing(cid, enemypos) doSendMagicEffect(player, 61) doCombat(cid, distanceCombat, var) return 1 else doPlayerSendCancel(cid, "You need a taget.") end end
  20. Eu queria fazer uma magia que alterasse o elemento da "varinha" (wand ou rod não existente), pois eu vou criar uma classe que é uma mistura de druid com sorcerer e não pretendo apenas colocar a vocation para que a classe possa usar todos os elementos. Pretendo fazer um controlador dos 4 elementos sem ser especializado em nenhum mas que tenha algumas regarias como essa de não precisar comprar uma próxima arma magica para atacar e sim apenas mudar o elemento atraves de uma magia, o dano seria calculado de acordo com o level ou eu posso fazer staffs encantáveis para venda para os leveis equivalentes ao que sercerers e druids trocam de arma. um exemplo de magia que já faz isso é o da enchanted staff, porém ele apenas muda os status da arma e a sprite. No meu caso mudaria o elemento, a descrição mas não a sprite. Eu sei que é pedir muito mas se tem alguém ai com fome de desafio, acho que essa é uma boa oportunidade. Se alguém conseguir fazer pelo menos a logica do script já é muito bem vindo. vale REP+
  21. ve se pega assim ali no local sys: local sys = createConditionObject(CONDITION_OUTFIT) setConditionParam(sys, CONDITION_PARAM_TICKS, 80000) addOutfitCondition(sys, outfit) setCombatCondition(combat, sys)
  22. Já que ainda não foi reportado tem como postar isso ai pra mim só que com a formula em porcentagem da vida do atacante?
  23. Bacana ou essa função não existe ou ninguém ta afim de me ajudar. Para facilitar a vida dos scripters eu consegui fazer com que ele se transforme mas não consigo fazer as condições se é que da pra fazer Segue o script. local outfit = {lookType = 67} local tempo = 40 local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_GROUNDSHAKER) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local sys = createConditionObject(CONDITION_OUTFIT) setConditionParam(sys, CONDITION_PARAM_TICKS, 40000) addOutfitCondition(sys, outfit) setCombatCondition(combat, sys) function onCastSpell(cid, var) return doCombat(cid, combat, var) end
  24. Pegou certinho cara "REPUTACIONADO"!! Aproveita e da uma olha no meu outro content de pedidos que ninguem respondeu eusuehsue
  25. Estou tentando criar uma magia na qual o caster fica com duas condições mas uma delas não pega de jeito nenhum. A condição que não pega é a da outfit do "Stone Golem". local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, 40000) setConditionParam(condition, CONDITION_PARAM_STAT_MAXHEALTHPERCENT, 130) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELDPERCENT, 130) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setCombatCondition(combat, condition) function onCastSpell(cid, var) local condition2 = createConditionObject(CONDITION_OUTFIT) setConditionParam(condition, CONDITION_PARAM_TICKS, 40000) setCombatCondition(combat, condition2) if isPlayer then addOutfitCondition(condition2, 67, 20, 30, 40, 50) end return doCombat(cid, combat, var) end a função na qual eu estou tentando utilizar para transformar o caster em bixo é: addOutfitCondition(condition, lookTypeEx, lookType, lookHead, lookBody, lookLegs, lookFeet) Porém no arquivo stone golem.xml não existe (lookTypeEx) <<< também não sei o que significa Valento REP++
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...