Ir para conteúdo

xWhiteWolf

Héroi
  • Registro em

  • Última visita

Tudo que xWhiteWolf postou

  1. xWhiteWolf postou uma resposta no tópico em Playground (Off-topic)
    eu poderia postar aqui milhares de músicas dos mais variados estilos mas se tem uma coisa que eu preciso MUITO compartilhar é essa banda fodástica chamada Emery porque eu sou fã deles a muito tempo e eles tem um talento praticamente sobrenatural mas poquíssimas pessoas conhecem:
  2. local poisonpowder = createConditionObject(CONDITION_POISON) setConditionParam(poisonpowder, CONDITION_PARAM_DELAYED, 1) local damageTable = { {4, -3}, {9, -2}, {20, -1} } for i = 1, #damageTable do local t = damageTable[i] addDamageCondition(poisonpowder, t[1], 4000, t[2]) end local arr = { {0, 1, 0}, {1, 3, 1}, {0, 1, 0} } local area = createCombatArea(arr) function onCastSpell(cid, var) addEvent(function() if isCreature(cid) then local master = getCreatureMaster(cid) doAreaCombatHealth(cid, 1, getThingPos(cid), area, -(2 * getPlayerMagLevel(master)), -(5 * getPlayerMagLevel(master)), 20) doAreaCombatCondition(cid, getThingPos(cid), area, poisonpowder, 255) doSendMagicEffect(getThingPos(cid), 16) doRemoveCreature(cid) end end, 100) return true end o mínimo que tira é 2x o ml e o máximo é 5x o ml Edita a fórmula aqui e seja feliz só que pra fazer isso vc tem que garantir que esse monstro não exista no jogo, ele só seja criado através de summon porque se não ele vai tentar puxar o ml do master só que não vai ter master e vai bugar tudo
  3. local poisonpowder = createConditionObject(CONDITION_POISON) setConditionParam(poisonpowder, CONDITION_PARAM_DELAYED, 1) local damageTable = { {4, -3}, {9, -2}, {20, -1} } for i = 1, #damageTable do local t = damageTable[i] addDamageCondition(poisonpowder, t[1], 4000, t[2]) end local arr = { {0, 1, 0}, {1, 3, 1}, {0, 1, 0} } local area = createCombatArea(arr) function onCastSpell(cid, var) if isCreature(cid) then local master = getCreatureMaster(cid) if isPlayer(master) then local ml = getPlayerMagLevel(master) end local min, max = ml, ml addEvent(function() doAreaCombatHealth(cid, 1, getThingPos(cid), area, -min, -max, 6) doAreaCombatCondition(cid, getThingPos(cid), area, poisonpowder, 255) doSendMagicEffect(getThingPos(cid), 16) doRemoveCreature(cid) end end, 100) return true end testa agr
  4. local poisonpowder = createConditionObject(CONDITION_POISON) setConditionParam(poisonpowder, CONDITION_PARAM_DELAYED, 1) local damageTable = { {4, -3}, {9, -2}, {20, -1} } for i = 1, #damageTable do local t = damageTable[i] addDamageCondition(poisonpowder, t[1], 4000, t[2]) end local arr = { {0, 1, 0}, {1, 3, 1}, {0, 1, 0} } local area = createCombatArea(arr) function onCastSpell(cid, var) addEvent(function() if isCreature(cid) then local master = getCreatureMaster(cid) if isPlayer(master) then local ml = getPlayerMagLevel(master) end local min, max = ml, ml doAreaCombatHealth(cid, 1, getThingPos(cid), area, -min, -max, 6) doAreaCombatCondition(cid, getThingPos(cid), area, poisonpowder, 255) doSendMagicEffect(getThingPos(cid), 16) doRemoveCreature(cid) end end, 100) return true end
  5. vc tem que colocar tudo isso dentro do AddEvent hahaha por isso tá dando erro (vc colocou fora até do callback OnCastSpell.. ele tá puxando esses dados antes de vc soltar a magia e tá dando erro)
  6. não.. é uma precaução pra caso não exista um master na criatura.. daí não irá ter ml e vai dar erro então a gente faz ml or 1.. ele vai tirar o dano mínimo sendo o ml ou então se não existir ml vai tirar 1. O mesmo vale pro 30... daí vc pode editar a vontade essa fórmula
  7. tem sim.. vc muda aqui: sendo o -1 e o -30 os danos minimo e máximo respectivamente. Se você quiser fazer por fórmula baseada no ml do player é só fazer local master = getCreatureMaster(cid) if isPlayer(master) then local ml = getPlayerMagLevel(master) end local min, max = ml or 1, ml or 30 doAreaCombatHealth(cid, 1, getThingPos(cid), area, -min, -max, 20)
  8. Isso daqui garante que tá ficando invisível sim haha só que GM's ainda podem ver players invisiveis, monstros e outros players que não podem. createConditionObject(CONDITION_GAMEMASTER, duration*1000, false, GAMEMASTER_INVISIBLE)
  9. vc tem que upar o critical pra ter maiores chances, ele só vai critical no monstro que vc adicionou a linha e se não tiver aparecendo nenhum erro no console (pq o nome do event tem que ser o mesmo nome do creaturescripts
  10. vc nao precisa colocar um hp muito grande, se não vai bugar.. coloca ele com uma hp média e bota pra ele se curar bastante que fica bem mais legal.
  11. xWhiteWolf postou uma resposta no tópico em Suporte Tibia OTServer
    algum erro?
  12. mas @, a questão não é essa.. se for assim a solução seria proibir cigarro e alcóol e não liberar a maconha haha. @Matheus, eu vi um documentário chamado Cortina de Fumaça de 1h também falando mais ou menos as mesmas coisas.. eu tive que fazer redações contra e a favor da legalização enquanto treinava pros vestibulares :/ realmente, oque vc falou está certo mas esses não são os únicos pontos que tem que ser analisados. Por mim legalizava até lança perfume mas tem diversas consequências que eu não tenho capacidade de imaginar pra te falar aqui, desde pressão dos outros países como taxas de roubo maior pra poder comprar droga.
  13. posta seu movements.xml aqui que é só procurar o ID do shield e remover a parte de ammo
  14. é um assunto deveras complicado porque ainda tem muita discussão sobre os efeitos da cannabis a longa prazo. Por mim não teria problema legalizar mas acho que o povo Brasileiro não ia saber medir as coisas e passados uns 2 anos a maioria ia estar retardado mental de tanto delay no cérebro. É fato que a maconha era legal a muito tempo atrás, o cânhamo era utilizado inclusive pra fazer cordas de navios e aparentemente os estados unidos que começaram com isso de proibir por razões que até hoje não sabemos. É preciso se atentar nas consequência que isso teria antes de tomar qualquer decisão e eu te garanto que, pelo menos aqui no Brasil, não tem como dizer quais seriam essas consequências. Se por um lado teriamos uma diminuição do número de presos, pessoas poderiam aproveitar o gancho da maconha para querer liberar drogas mais pesadas e também continuar comprando num mercado ilegal por um preço mais barato (assim como acontece com Gudang Garam, embora venda em qualquer padaria ou banca). Enquanto a gente não souber tudo que isso poderia acarretar eu sou contra, e digo isso porque já experimentei e porque vivi numa cidade que era praticamente um Coffee Shop
  15. eu tenho um script q faz isso local pos = {x = 160, y = 54, z = 7} -- posição que será teleportado local from = {x = 145, y = 40, z = 7} ---- posição de um dos cantos do area que será analisado local to = {x = 151, y = 53, z = 7} ---- posição de um dos cantos da area que será analisado function onUse(cid, item, frompos, item2, topos) function getSpectatorsFromArea(fromPosition, toPosition) local width = (math.max(fromPosition.x, toPosition.x) - math.min(fromPosition.x, toPosition.x)) / 2 + 1 local height = (math.max(fromPosition.y, toPosition.y) - math.min(fromPosition.y, toPosition.y)) / 2 + 1 local center = {x = math.min(fromPosition.x, toPosition.x) + width, y = math.min(fromPosition.y, toPosition.y) + height, z = fromPosition.z} return getSpectators(center, width, height, false) end function TeleportAllInArea(from, to) for _, pid in pairs(getSpectatorsFromArea(from, to) or {}) do if isPlayer(pid) then doPlayerSetStorageValue(pid, 24567, 1) doTeleportThing(pid, pos, true) doSendMagicEffect(getPlayerPosition(pid), 10) end end end TeleportAllInArea(from, to) doSendMagicEffect(getPlayerPosition(cid), 13) return true end fiz por brincadeira mesmo
  16. eu não faço a mínima idéia de como arrumar isso mas acredito que seja algo na source. Tem muita gente com esse mesmo problema tb :/
  17. Realmente, nunca havia percebido esse bug... não sei como fazer pra resolver mas vou pensar em algo e comento aqui. Acho que o jeito seria fazer um creaturescript onCast que ao ser lançada a magia ele iria cancelar o follow mas tem que ver como faria isso.
  18. teria sim, vc só faz um addEvent com check de function isPlayer(cid) e manda a mensagem e coloca o tempo como sendo o mesmo do exhaust que vc colocou no iconezinho :]
  19. Testei todas as spells e não pude verificar o erro que vc tá relatando ter.. Nas duas últimas o dano da condition realmente é bem baixo, chega a bater 15 nos monks que não tem defesa nenhuma contra fire mas se vc pegar um player ou monstro que tenha uma % de absorção de fire ou que seja imune a fire o dano pode sim cair pra 0. Só não entendi o bug na primeira condition visto que é um paralyze '-' mas essa mensagem de erro pode estar sendo causada por algum erro na sua source porque aqui rodou tudo certinho. Espero que essas informações sejam úteis, qualquer coisa troca a source e vê se o problema persiste.
  20. http://www.tibiaking.com/forum/topic/10100-funcao-doplayersetextraattackspeed/ + http://www.tibiaking.com/forum/topic/33560-script-add-extra-attack-a-cada-skill-ganhado/ ou então na source direto http://www.tibiaking.com/forum/topic/27214-fist-fightingattackspeed/ OU http://www.tibiaking.com/forum/topic/27263-skill-eou-item-attackspeed/ e respondendo ao @maikons, acho que tem mais programmers doque scripters mas eles geralmente não aparecem pra tirar dúvida dos outros no fórum haha
  21. nunca tinha visto isso, oque é .py? Python? Isso é na source? que versão de tibia usa isso?
  22. xWhiteWolf postou uma resposta no tópico em Suporte Tibia OTServer
    usa esse script meu aqui: local config = { cooldown = 10, -- tempo entre uma magia e outra time = 10, -- tempo em segundos que ficará healando percent = 5, --- porcentagem da vida que cura storage = 19330, effect = 12, --- efeito que vai sair mana = 40 -- quanto custa de mana } function onCastSpell(cid, var) if getCreatureMana(cid) >= config.mana then if os.time() - getPlayerStorageValue(cid, config.storage) >= config.cooldown then doPlayerSetStorageValue(cid, config.storage, os.time()) local i = 0 doCreatureAddMana(cid, -config.mana, 0) while i < config.time do i = i+1 addEvent(function() if isCreature(cid) then if getCreatureMaxHealth(cid) <= getCreatureHealth(cid) then local lifedraw = math.ceil(getCreatureMaxHealth(cid) * (config.percent)/100) local pos = getPlayerPosition(cid) doCreatureAddHealth(cid, lifedraw, 1) doSendAnimatedText(pos, "+"..lifedraw , TEXTCOLOR_GREEN) doSendMagicEffect(pos, config.effect) end end end, 1000*i) end else doPlayerSendCancel(cid, "Your Mass Healing is at cooldown, you must wait "..(config.cooldown - (os.time() - getPlayerStorageValue(cid, config.storage))).." seconds.") end else doPlayerSendCancel(cid, 36) end return false end <instant name="TK" words="masshealing" lvl="8" mana="35" prem="0" aggressive="0" exhaustion="1500" needlearn="0" event="script" value="especiais/healingtime.lua"> <vocation id="1"/> <vocation id="5"/> </instant>
  23. o tibia tem um sistema de valor mínimo pra algumas coisas e attack speed é uma delas.. esse sistema foi feito justamente pra evitar erros críticos no sistema, não adianta vc colocar 1 milisegundo entre 1 um ataque e outro que não vai resolver.. isso requer algumas edições na source E OU no cliente. Muita gente partilha desse mesmo problema e eles resolvem utilizando algum bot (como o elfbot) ou simplesmente tomando vergonha na cara e usando a speed certa e adaptando o resto do server pra lidar com isso.
  24. xWhiteWolf postou uma resposta no tópico em Scripts tfs 0.4 (OLD)
    é só fazer daquele jeito e criar o kamui out pra remover todo mundo numa determinada área

Informação Importante

Confirmação de Termo