Ir para conteúdo

xWhiteWolf

Héroi
  • Registro em

  • Última visita

Tudo que xWhiteWolf postou

  1. Negativei os dois por atitude ofensiva, da próxima vez tentem instruir o membro ao invés de xingá-lo. Espero não ver esse tipo de atitude novamente. @Topic, movi pra área correta, já que isso é um pedido e não um download. Preste mais atenção da próxima vez! Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680 Este tópico foi movido: De: "OTServ → Downloads → Servidores Derivados" Para: "OTServ → Suporte OTServ → Suporte de Servidores Derivados"
  2. xWhiteWolf postou uma resposta no tópico em Suporte & Pedidos
    O tópico foi movido para a área correta, preste mais atenção da próxima vez! Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680 Este tópico foi movido: De: "Diversos → Gráficos → Galerias → Galeria Design Geral" Para: "OTServ → Spriting OTServ → Show Off"
  3. O tópico foi movido para a área correta, preste mais atenção da próxima vez! Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680 Este tópico foi movido: De: "OTServ → Suporte OTServ → Suporte de Programação" Para: "OTServ → Suporte OTServ → Suporte de OTServ Geral"
  4. você pode criar um tópico >.<
  5. xWhiteWolf postou uma resposta no tópico em Playground (Off-topic)
    que nada, da mesma maneira que eu levei numa boa qnd ele ficou falando mal da equipe eu vou levar agora haha. Ban não resolve nada
  6. auheuhauhuhea qualquer dia eu faço um vídeo cantando pra vcs
  7. resolvido http://www.tibiaking.com/forum/topic/47038-gran-castle-event-854/
  8. xWhiteWolf postou uma resposta no tópico em Playground (Off-topic)
    aeHOOOOOOOO a zoeira tá forte hoje. Pessoal tá tudo em modo de ataque
  9. xWhiteWolf postou uma resposta no tópico em Playground (Off-topic)
    só pode ajudar no suporte se tiver phd em computação a partir de agora, do contrário é ban Vamo colocar ali no perfil < um espaço pra vc colar seu diploma, daí o Stigal pode por o dele de retardado. aHUEHEUHUE
  10. xWhiteWolf postou uma resposta no tópico em Playground (Off-topic)
    Engraçado você falar isso haha, não era você que falava que o pessoal da otnet ainda tentava ajudar o próximo?? Agora você tá condenando quem tenta ajudar como pode só porque não é "qualificado"? uau ein, baita reviravolta. Tables have turned EDIT: fica com esse emoticon bonitinho e aceite a zoeira
  11. local waves = 8 --- numero de vezes que vão cair as flechas local water = {490, 491, 492, 493, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625} local combat = createCombatObject() local meteor = createCombatObject() setCombatParam(meteor, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(meteor, COMBAT_PARAM_USECHARGES, TRUE) setCombatParam(meteor, COMBAT_PARAM_EFFECT, 9) setCombatFormula(meteor, COMBAT_FORMULA_LEVELMAGIC, -30, -50, -40, -55) local meteor_water = createCombatObject() setCombatParam(meteor_water, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(meteor_water, COMBAT_PARAM_USECHARGES, TRUE) setCombatParam(meteor_water, COMBAT_PARAM_EFFECT, 1) setCombatFormula(meteor, COMBAT_FORMULA_LEVELMAGIC, -30, -50, -40, -55) combat_arr = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 3, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} } local combat_area = createCombatArea(combat_arr) setCombatArea(combat, combat_area) local function meteorCast(p) doCombat(p.cid, p.combat, positionToVariant(p.pos)) end local function stunEffect(cid) doSendMagicEffect(getThingPos(cid), CONST_ME_STUN) end function onTargetTile(cid, pos) if (math.random(0, 6) == 6) then local ground = getThingfromPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}) if (isInArray(water, ground.itemid) == TRUE) then local newpos = {x = pos.x - 7, y = pos.y - 6, z = pos.z} doSendDistanceShoot(newpos, pos, CONST_ANI_HOLY) addEvent(meteorCast, 200, {cid = cid, pos = pos, combat = meteor_water}) else local newpos = {x = pos.x - 7, y = pos.y - 6, z = pos.z} doSendDistanceShoot(newpos, pos, CONST_ANI_ARROW) addEvent(meteorCast, 200, {cid = cid,pos = pos, combat = meteor}) end end end setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile") function onCastSpell(cid, var) for i = 0, waves do addEvent(function() if isCreature(cid) then doCombat(cid, combat, var) end end, 200 * i) end return true end <instant name="Supreme Paladin" words="exevo mas gran con" lvl="350" mana="1500" prem="1" needtarget="1" exhaustion="2000" needlearn="0" event="script" value="especiais/paladin.lua"> <vocation id="7"/> </instant> Prontinho, editei e agr tá igualzinho vc quer.
  12. só um adendo: Eu coloquei aquele mesmo efeito das shurikens que tem no vídeo (pelo que eu soube o fox fez essa atualização recentemente mas eu nunca entrei no server deles pra ver como é e resolvi fazer dessa maneira). Se alguém quiser liberar um mapa pro castle ou fazer um é só me enviar pm que eu edito o tópico e anexo o link do download
  13. Olá pessoa, hoje vim trazer pra vocês um script bem requisitado que inclusive é vendido por alguns scripters. Algumas versões "pioradas" dessse script podem ser encontradas em servidores cópias do Fox World porém nenhum desses scripts chegará aos pés desse daqui que foi arrumado por mim. Eu não sou o criador do Script, eu peguei qualquer um na internet e só fui arrumando e adicionando coisas que as pessoas reclamavam que não tinha. O cara que criou a versão que eu editei é esse daqui: Não vou me prolongar e nem falar mal da versão do Roksas, apenas saibam que eu editei ela praticamente inteira e que agora está 100%. Aqui tem um pequeno vídeo de como funciona o evento: Explicação: Gran Castle é um evento para ser feito sozinho ou com a guild, há um limite configurável no script de membros que podem entrar da mesma guild. Em dias determinados é aberto o evento e os players podem entrar ao falar com o NPC Melkrapo. Uma vez dentro do castelo os players batalharão para subir os andares e chegar até a Gran Tower, um monstro lendário que dará glória para aqueles que o derrotarem. Será que você é capaz? Instale no seu server e descubra! Um evento para redefinir o conceito de PVP e onde o seu maior inimigo serão seus semelhantes. Sem mais delongas vamos começar a instalar esse monstrinho.. porque ele é grande pra caralho. Agora crie um arquivo em creaturescripts\scripts chamado Gran Tower.lua e adicione o seguinte: em data\lib crie um arquivo chamado 046-Gran Tower.lua e adicione o seguinte dentro dele: Agora voltando aos creaturescripts crie um arquivo em scripts chamado Gran Aura.lua e adicione: E um arquivo chamado Barrier.lua na mesma pasta com o seguinte conteúdo: Agora em globalevents\globalevents.xml adicione a seguinte linha: <globalevent name="Gran Tower" interval="60" event="script" value="Gran Tower.lua"/> E adicione o script associado em globalevents\scripts com o nome de Gran Tower.lua: Agora na pasta monster procure o seu monsters.xml e adicione essas duas linhas: <monster name="Gran Tower" file="8.4/Gran Tower.xml"/> <monster name="Barrier" file="8.4/barrier.xml"/> Feito isso crie os monstros na pasta data\monster\8.4: O primeiro se chama barrier.xml e deverá conter: O segundo se chamará Gran Tower.xml e deverá conter: Agora vamos para NPC, vá em data\npc e crie um arquivo chamado Melkrapo.xml com o seguinte conteúdo: Agora em npc\scripts crie um arquivo chamado Melkrapo.lua e adicione o seguinte: Agora partindo pra spells vá em data\spells e adicione no spells.xml essas linhas: local function atk(cid) doSendDistanceShoot(pos5, pos6, 3) doSendDistanceShoot(pos7, pos8, 3) end local function atkself(cid) doSendDistanceShoot(pos9, selfpos, 3) doSendDistanceShoot(pos10, selfpos, 3) doSendDistanceShoot(pos11, selfpos, 3) doSendDistanceShoot(pos12, selfpos, 3) doSendDistanceShoot(pos13, selfpos, 3) doSendDistanceShoot(pos14, selfpos, 3) doSendDistanceShoot(pos15, selfpos, 3) doSendDistanceShoot(pos16, selfpos, 3) end local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat, COMBAT_FORMULA_DAMAGE, -500, -7000, -300, -9000, 200, 200, 100, 400) --- formula de dano que tira o ataque da gran tower local area = createCombatArea(AREA_TOWER) setCombatArea(combat, area) function onCastSpell(cid, var) selfpos = getCreaturePosition(cid) pos1 = {x=getCreaturePosition(cid).x + 2, y=getCreaturePosition(cid).y + 2, z=getCreaturePosition(cid).z} pos2 = {x=getCreaturePosition(cid).x - 2, y=getCreaturePosition(cid).y + 2, z=getCreaturePosition(cid).z} pos3 = {x=getCreaturePosition(cid).x - 2, y=getCreaturePosition(cid).y - 2, z=getCreaturePosition(cid).z} pos4 = {x=getCreaturePosition(cid).x + 2, y=getCreaturePosition(cid).y - 2, z=getCreaturePosition(cid).z} pos5 = {x=getCreaturePosition(cid).x - 2, y=getCreaturePosition(cid).y + 2, z=getCreaturePosition(cid).z} pos6 = {x=getCreaturePosition(cid).x - 2, y=getCreaturePosition(cid).y - 2, z=getCreaturePosition(cid).z} pos7 = {x=getCreaturePosition(cid).x + 2, y=getCreaturePosition(cid).y - 2, z=getCreaturePosition(cid).z} pos8 = {x=getCreaturePosition(cid).x + 2, y=getCreaturePosition(cid).y + 2, z=getCreaturePosition(cid).z} pos9 = {x=getCreaturePosition(cid).x - 1, y=getCreaturePosition(cid).y + 1, z=getCreaturePosition(cid).z} pos10 = {x=getCreaturePosition(cid).x, y=getCreaturePosition(cid).y + 1, z=getCreaturePosition(cid).z} pos11 = {x=getCreaturePosition(cid).x + 1, y=getCreaturePosition(cid).y + 1, z=getCreaturePosition(cid).z} pos12 = {x=getCreaturePosition(cid).x - 1, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z} pos13 = {x=getCreaturePosition(cid).x+ 1, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z} pos14 = {x=getCreaturePosition(cid).x - 1, y=getCreaturePosition(cid).y - 1, z=getCreaturePosition(cid).z} pos15 = {x=getCreaturePosition(cid).x, y=getCreaturePosition(cid).y - 1, z=getCreaturePosition(cid).z} pos16 = {x=getCreaturePosition(cid).x + 1, y=getCreaturePosition(cid).y - 1, z=getCreaturePosition(cid).z} doSendDistanceShoot(pos1, pos2, 3) doSendDistanceShoot(pos3, pos4, 3) addEvent(atkself, 350) addEvent(atk, 350) return doCombat(cid, combat, var) end Feito isso vá em spells\lib e no seu arquivo spells.lua adicione a seguinte area: AREA_TOWER = { {1, 1, 1, 1, 1}, {1, 1, 1, 1, 1}, {1, 1, 3, 1, 1}, {1, 1, 1, 1, 1}, {1, 1, 1, 1, 1} } Agora nós vamos criar a talkaction que vai te permitir ligar o evento a hora que vc quiser. Vá em data\talkactions\talkactions.xml e adicione a seguinte linha: <talkaction hide="yes" words="/grantower" access="5" event="script" value="cleargrantower.lua"/> e em talkactions\scripts adicione o arquivo cleargrantower.lua com o seguinte conteúdo dentro: function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return true end local t = string.explode(param, " ") if (tonumber(t[1]) == 1) then doPrepareGranTower() doSendMagicEffect(getCreaturePosition(cid), 14) elseif (tonumber(t[1]) == 0) then doCloseGranTower() doSendMagicEffect(getCreaturePosition(cid), 14) elseif (tonumber(t[1]) == 2) then print(getGlobalStorageValue(GRANTOWER.SAVELASTWINNER)) doSendMagicEffect(getCreaturePosition(cid), 14) elseif (tonumber(t[1]) == 3) then print(getGlobalStorageValue(GRANTOWER.SAVEWINNERGUILDID)) doSendMagicEffect(getCreaturePosition(cid), 14) end return true end Agora vá em data\creaturescripts\scripts\login.lua e adicione essas linhas antes do ultimo return true: -----------GRAN CASTLE ----------- registerCreatureEvent(cid, "Gran Tower") registerCreatureEvent(cid, "Gran Aura") registerCreatureEvent(cid, "Gran Aura Stats") registerCreatureEvent(cid, "Gran Aura Logout") registerCreatureEvent(cid, "Gran Tower Target") Por último eu acho que eu usei uma das funções da minha lib nesse script, então se der qualquer erro eu recomendo que vcs instalem ela antes de me mandar o print do erro do servidor haha. (Pra instalar é só criar um arquivo em data.lib e coloca aquilo dentro, veja o tópico no meu perfil) Eu testei o script e tá funcionando perfeitamente, a única coisa que não consegui testar foi as guilds e como fica a aura qnd alguém da guild ganha mas acho que vcs podem fazer esse trabalhinho de testar pra mim... Pra finalizar gostaria de dizer que um membro do fórum pagou por esse script e ele não estava funcionando, não comprem scripts, venham ao fórum e peçam por eles. Que fique de lição. Todas as configurações são feitas pelo arquivo 046- Gran Aura que está na LIB (exceto as coisas relacionadas aos monstros/spells que eles tiram) mas está tudo bem explicadinho nos scripts e acho que vocês já sabem editar um monstro, não é mesmo? haha Espero que façam bom proveito, pretendo lançar uma versão 1.0 em breve juntamente com a versão 1.0 do Magnus Challenger. Fiquem ligados! e claro, se você gostou não faz mal clicar em "Gostei". Abraços do lobo. NOTA FINAL: Sei que a maioria dos caras que queriam esse script queriam pra servers 8.4 porém a forma de fazer a barreira ter essa modificação na outfit qnd estiver quebrando é só por statschange. É só modificar a source e adicionar a function onStatsChange do creaturescripts que vai pegar no seu server 8.4. Já vi server 7.6 com statschange então não creio que seja algo dificil.
  14. function onCastSpell(cid, var) if getCreatureHealth(variantToNumber(var)) <= (0.2 * getCreatureMaxHealth(variantToNumber(var)) ) then doTargetCombatHealth(cid, variantToNumber(var), 1, -getCreatureMaxHealth(variantToNumber(var)), -getCreatureMaxHealth(variantToNumber(var)), CONST_ME_STUN) doCreatureSay(cid, "EXECUTIONER", 20, false) doSendMagicEffect(getCreaturePosition(variantToNumber(var)), CONST_ME_GIANTICE) doSendDistanceShoot(getCreaturePosition(cid), getCreaturePosition(variantToNumber(var)), CONST_ANI_SMALLICE) else doPlayerSendCancel(cid, "You can only cast this spell in creatures with less than 20% of life.") return false end return true end só lembre de colocar needtarget="1" qnd for declarar a spell no spells.xml
  15. xWhiteWolf postou uma resposta no tópico em Suporte Tibia OTServer
    vou fazer a primeira pra você, só me dá uns dias pra organizar tudo
  16. não faço a mínima idéia, tenta dar um ctrl + f em onThink. Seu server é que versão? É TFS? Se for procura na pasta do server (antes de data) uma pasta chamada doc e abre o arquivo SCRIPTSYSTEM_HELP; Lá dentro vai ter todos os callbacks que existem no seu servidor.
  17. local arr1 = { {1, 1, 1}, {1, 2, 1}, {1, 1, 1} } local area1 = createCombatArea(arr1) local arr2 = { {1, 1, 1}, {1, 2, 1}, {1, 1, 1} } local area2 = createCombatArea(arr2) function onCastSpell(cid, var) local maglevel, level, mana = getPlayerMagLevel(cid), getPlayerLevel(cid), getCreatureMana(cid) local axe, sword, club, distance = getPlayerSkillLevel(cid, 3), getPlayerSkillLevel(cid, 2), getPlayerSkillLevel(cid, 1), getPlayerSkillLevel(cid, 4) local shield, health = getPlayerSkillLevel(cid, 5), getCreatureHealth(cid) local formula = { min = (level + maglevel + axe + sword + club + shield + mana), max = (level + maglevel + axe + sword + club + shield + mana + health) } addEvent(function() if isCreature(cid) then doAreaCombatHealth(cid, 1, getCreaturePosition(cid), area1, -formula.min, -formula.max, 9) end end, 100) addEvent(function() if isCreature(cid) then doAreaCombatHealth(cid, 1, getCreaturePosition(cid), area1, -formula.min, -formula.max, 0) end end, 500) return true end só configura na formula os valores minimos e máximos que vc quer. Ali em cima é a area Aqui vc tem a primeira spell: e aqui tem a segunda 1 ali é o tipo de dano, 1 significa dano físico mas vc pode alterar seguindo essa tabela: COMBAT_NONE = 0 COMBAT_PHYSICALDAMAGE = 1 COMBAT_ENERGYDAMAGE = 2 COMBAT_EARTHDAMAGE = 4 COMBAT_POISONDAMAGE = 4 COMBAT_FIREDAMAGE = 8 COMBAT_UNDEFINEDDAMAGE = 16 COMBAT_LIFEDRAIN = 32 COMBAT_MANADRAIN = 64 COMBAT_HEALING = 128 COMBAT_DROWNDAMAGE = 256 COMBAT_ICEDAMAGE = 512 COMBAT_HOLYDAMAGE = 1024 COMBAT_DEATHDAMAGE = 2048 area1 e 2 são as areas lá em cima do script e as formulas vc edita da forma que quiser. O 9 e o 0 são os efeitos que saem; abaixo dos combats vc vai ter isso daqui: esse 100 e o outro 500 lá representam o tempo em milisegundos até o combat sair, se vc quiser aumentar o tempo entre as duas spells é só aumentar esse valor (lembrando que é em milisegundos [1 segundo = 1000 milisegundos]. Da forma que está colocado a primeira spell sai em 0,1 segundo e a segunda sai em 0,4 segundos dps da primeira.. as duas spells acabam dps de meio segundo. Espero que tenha entendido
  18. Edit: Mesmo após essa edição tem gente falando que não tá funcionando.. no meu servidor está exatamente assim (é um tibia normal portando eu coloquei items quaisquers pra testar e as vocações são sorcerers/knights que podem usar) Ficou assim: edocatch: edogo: actions.xml: <action itemid="9930" event="script" value="edocatch.lua"/> <action itemid="9931" event="script" value="edogo.lua"/> Eu mato o Walord, dou use no corpo dele e captura, dps eu clico no outro item e ele é sumonado como se fosse meu com 5k de life. Se não tiver pegando no servidor de vocês posta aqui o erro que eu dou uma olhada
  19. ele só vai dar dano se a vida for menor que 20%? Explica melhor ai porque oque vc quer não tem nada a ver com nenhum dos scripts que vc postou
  20. acho q ele quis dizer o callback onThink (que é de globalEvents). Se vc quiser ver se seu server tem é só procurar algum script em globalEvents ou ver pela source mesmo
  21. troca function onThink(cid, interval, lastExecution) pelo callback da talkaction, e depois troca o script de pasta e adiciona no talkactions.xml.
  22. local config = { tempo = 10, -- tempo de uso da spell, é a duração que ela vai ter storage = 32710, -- storage em que vai ser salvo o tempo outfit = 137, --- lookType da outfit que irá ser modificada ao andar cooldown = 12 -- tempo entre 1 uso e outro (sempre deixar maior que tempo de uso da spell) } 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, config.tempo * 1000) setConditionParam(condition, CONDITION_PARAM_SKILL_MELEEPERCENT, 135) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELDPERCENT, -100) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setCombatCondition(combat, condition) function outfit(uid, key, id, tempo, lastPos) if getPlayerStorageValue(uid, key) - os.time() >= 0 then lastPos = lastPos or getCreaturePosition(uid) if getCreaturePosition(uid).x ~= lastPos.x or getCreaturePosition(uid).y ~= lastPos.y or getCreaturePosition(uid).z ~= lastPos.z then lastPos = getCreaturePosition(uid) local atual = getCreatureOutfit(uid) atual.lookType = id doSetCreatureOutfit(uid, atual, tempo) end addEvent(function() if isCreature(uid) then outfit(uid, key, id, tempo, lastPos) end end, tempo) end end function onCastSpell(cid, var) if getPlayerStorageValue(cid, config.storage) - os.time() < (config.tempo - config.cooldown) then doCombat(cid, combat, var) setPlayerStorageValue(cid, config.storage, os.time() + config.tempo) outfit(cid, config.storage, config.outfit, 150, nil) else doPlayerSendCancel(cid, "Your spell is in cooldown") end return true end só substituir o script por esse, pra configurar é só alterar as coisas lá em cima lembrando que o exhaust da magia de agr em diante vai ser cooldown - o tempo pra usar ela. Logo nesse exemplo ai são 2 segundos de exhaust. Você usa uma vez, ela dura 10 segundos e dai vc tem que esperar 2 segundos pra poder usar ela novamente e ter mais 10 segundos de duração dela. Espero que tenha gostado ;]
  23. cara, só aceita... se vc quer estudar pra ser alguém, faça! Não precisa estar matriculado na escola pra estudar, internet ta aí pra isso.
  24. http://www.tibiaking.com/forum/topic/39215-spell-para-ficar-intocavel/

Informação Importante

Confirmação de Termo