Ir para conteúdo

mkbrabsolute

Banidos
  • Total de itens

    455
  • Registro em

  • Última visita

  • Dias Ganhos

    1

Tudo que mkbrabsolute postou

  1. @Edit, vamos lá, leia com atenção a explicação! Em data/actions/scripts crie um arquivo com o nome de frozenorb.lua e adicione: function onUse(cid, item, frompos, item2, topos) spellName = "SUA SPELL" -- Nome da spell if getPlayerStorageValue(cid, 99998) <= 0 then setPlayerStorageValue(cid, 99998, 1) doPlayerSendTextMessage(cid, 20, "You received permission to use the ".. spellName ..".") else doPlayerSendTextMessage(cid, 20, "You already have permission to use the ".. spellName .." spell.") end return TRUE end Em data/actions/actions.xml adicione: <action actionid="SUA ACTION" event="script" value="frozenorb.lua"/> A Spell ficará assim: local config = { velocidade = 350, -- intervalo entre os giros (quanto menor, mais rapido) hits = 24, -- quantos hits vai dar msg = "Frozen Orb", -- msg ao soltar a spell storage = {99998}, key = 13871, -- storage que sera utilizado pro cooldown cooldown = 3, -- tempo em segundos de cooldown entre um uso da spell e outro. effect1 = 36, -- efeito de distancia que vai ficar rodando effect3 = 37, -- efeito ao castar a spell effect4 = 43 -- efeito ao acertar a roda no player } --[[Note que a velocidade multiplicada pelo numero de hits deve dar algo proximo de 8550 pra que a magia nao fique ruim ou um efeito acabe antes do outro. Nos valores que eu utilizei eles dao 8400, oque ja eh considerado perto pois temos 200 milisegundos iniciais, 8550 eh o tempo que o item sera removido e coincide com o tempo de duracao do efeito 56 (config.effect2)]] local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 255) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1) function onTargetCreature(cid, target) doSendMagicEffect(getCreaturePosition(target), config.effect4) end setCombatCallback(combat, 4, "onTargetCreature") local arr = { {1, 1, 1}, {1, 3, 1}, -- area que vai acertar a spell enquanto estiver rodando {1, 1, 1}, } local area = createCombatArea(arr) setCombatArea(combat, area) function initEffect(position) for i = 0, 3 do local pos = {x = position.x, y = position.y, z = position.z} local dir = getPosByDir(pos, i) doSendDistanceShoot(position, dir, config.effect1) end return true end function middleEffect(uid, param, lim, count) n = count or 0 if isCreature(uid) and n < lim then for i = 0, 3 do local pos = {x = getCreaturePosition(uid).x, y = getCreaturePosition(uid).y, z = getCreaturePosition(uid).z} local pos2 = {x = getCreaturePosition(uid).x, y = getCreaturePosition(uid).y, z = getCreaturePosition(uid).z} local dir = getPosByDir(pos, i) local dir2 = getPosByDir(pos2, i + 1 <= 3 and i + 1 or 0) doSendDistanceShoot(dir, dir2, config.effect1) end doCombat(uid, combat, { pos = getCreaturePosition(uid), type = 2 }) addEvent(middleEffect, config.velocidade, uid, param, lim, n + 1) end return true end function endEffect(uid) if isCreature(uid) then for i = 0, 3 do local pos = {x = getCreaturePosition(uid).x, y = getCreaturePosition(uid).y, z = getCreaturePosition(uid).z} local dir = getPosByDir(pos, i) doSendDistanceShoot(dir, getCreaturePosition(uid), config.effect1) end end return true end function onCastSpell(cid, var) if getPlayerStorageValue(cid, config.storage[1]) >= 1 then setPlayerStorageValue(cid, config.key, os.time() + config.cooldown) local position = getCreaturePosition(cid) doCreatureSay(cid, config.msg, 20) addEvent(endEffect, 8.55 * 1000, uid) doSendMagicEffect(position, config.effect3) initEffect(position) addEvent(middleEffect, 200, cid, var, config.hits) else doPlayerSendCancel(cid, "Desculpe,Você tem que comprar a permissao para usar está magia.") end return true end ATENÇÃO: no frozenorb.lua note que há: spellName = "SUA SPELL" -- Nome da spell Onde está SUA SPELL, você procura a spell no spells.xml e veja o nome dela em: <instant name="AQUI VAI ESTAR O NOME DELA". Agora na linha do actions.xml em "SUA ACTION" é a ACTIONID que você colocará no baú que o player irá dar use (pelo remeres). A Spell, basta edita-la conforme postei. Conforme pedido, EXPLICAÇÃO: O Que foi alterado? No local da spell foi acionado o storage = {99998}, Este local foi feito para que quando o player executar a ação (soltar a spell) haverá uma função buscando o storage para checar se o player possui a mesma ou não. A função que irá verificar foi adicionada, é á: if getPlayerStorageValue(cid, config.storage) >= 1 then Caso o player não tenha a storage irá retornar com a função adicionada: doPlayerSendCancel(cid, "Sorry, you have to buy permission to use this.") No seu caso eu adicionei a storage em local, pois não havia, mas caso for fazer em outra é houver já o storage, você irá acrescentar a storage na local/variavel e na hora de fazer o check storage você irá identifica-las na storage como: storage[1], storage[2], storage[3] e assim sucessivamente... E então na hora de verificar você irá fazer o check normal, setando a creature com cid e irá identificar como [1], ficando assim: cid, storage[1] cid, storage[2] cid, storage[3] Bom, é isso aí, teste ai e tente fazer a próxima. Desculpe pelo português ou qualquer erro, são 06h da manhã minha cabeça não funciona perfeitamente dshuhusdhusduhsd. Obrigado, abraços. Obs: Havia postado a spell do outro, como disse são 06hrs dbhsshduhuds, postei a sua, normalizado.
  2. O Sistema é simples meu amigo, este item ao usar dará a storage x ao player, na magia ele irá checar se há a storage necessária para solta-la, se não houver ele da um sendcancel, se houver ele solta. O Action item é apenas para setar a storage ao player que será capaz de soltar a magia na hora do checkstorage. Poste a spell conforme tem no tópico que você linkou pois não consigo ver, não tenho conta naquela outra merd* de fórum pra visualizar.
  3. Na verdade a base vem de outro fórum, e não é permitido colocar links de outros fóruns aqui. Portanto adicionei apenas os créditos dos codes. Grato.
  4. Olá Pessoal do XTIBIA, vejo que vários servidores estão procurando o sistema de auto remount. O Sistema de auto re-mount é: quando o player está com montaria, ao entrar em uma área PZ o player sai da montaria, e então ao voltar para uma área normal o player irá automaticamente voltar a montaria em que estava. O Nome já diz tudo, auto re-mount! Vamos ao tutorial. Abra sua pasta source, onde fica os arquivos .cpp, e .h e procure pelo arquivo player.cpp Ao abri-lo, localize: lastWalkthroughAttempt = 0; lastToggleMount = 0; Abaixo de lastToggleMount = 0; pule uma linha e adicione: reMount = false; Logo após ainda em player.cpp procure por: if (!group->access && isMounted()) { dismount(); g_game.internalCreatureChangeOutfit(this, defaultOutfit); E então abaixo de g_game.internalCreatureChangeOutfit(this, defaultOutfit);, adicione: reMount = true; } } else { if (reMount) { toggleMount(true); reMount = false; Ainda em player.cpp procure por: if ((OTSYS_TIME() - lastToggleMount) < 3000) { SUBSTITUA POR: if ((OTSYS_TIME() - lastToggleMount) < 3000 && !reMount) { Salve e feche. Agora na mesma pasta abra o arquivo player.h Procure por: bool inMarket; E logo abaixo adicione: bool reMount; Salve e feche. Pronto, recompile suas sources e seja feliz Créditos: Printer Absolute Nós vemos em breve
  5. A cada 1000 = 1seg Ex: 2000 = 2seg 3000 = 3seg 500 = 0,5seg A função do Fast não tem limite mínimo nem máximo,porém pode ser algum conflito em script ou seu tfs, como o membro a cima citou, tente trocar sua rev.
  6. Tudo é possível, todos os domínios possuem um provedor DNS, esses DNS fazem o apontamento para o determinado IP, podendo então acessar o seu ip pelo domínio de nome. Em algumas empresas eles disponibilizam um painel onde você pode apontar o domínio direto para o IP (utilizando o DNS pré configurado deles), bem simples. Quanto ao :8090 há necessidade de alterar nas configurações do seu modem/route. O domínio então fica como seudominio.com:8090 devido a porta, assim que retirar a porta ficará normalizada como um servidor de IP com nome. Espero ter ajudado.
  7. Fui um pouco irônico em meu comentário rs Papai não irá te dar moral hoje, cya.
  8. Boa @@VictorWEBMaster, parabéns pela atitude. Quanto ao membro que criou o site, sem o que falar, o coordenadorzinho vendedor do outro fórum, difícil, precário, nojento.
  9. Yeah, só copiaram o layout mesmo com uma base do gesior, mesmo assim legal.
  10. mkbrabsolute

    |Galeria| Tony

    My designer ^^ AHUEAHUEA s2 Perfeito, como sempre.
  11. WAW, show! Layout excelente, só acho melhor destacar mais os servidores, para não ficar muito junto. Dor esto, excelente, parabéns.
  12. Exatamente, havia esquecido, fico no aguardo =)
  13. Favor escrever Absolute ai em um tom dahora, um degradê sei lá, é contigo Tonny
  14. No site jovem a fonte Nija Naruto, é bom mudar um pouco, ela é feia pra escrever textos etc, mas sei lá né, só opinando hehe
  15. sem querer ser ignorante, mas já sendo: você não tem outra fonte ae no ps? mas parabéns pelo esforço vai dando noticias a comunidade ai =)
  16. ahhahahahaha é hilario ler coments assim. porque além de defecar tanto você não vai buscar uma apostila de uébi? quanto ao que disse ai, style da net, stock de outro fórum, pelo menos tamo aí, tentando ajudar o membro =) aproveita e volta pro Éks que é de onde você JAMAIS deveria ter saido, pois é na zueira que tenta ser alguém. Reportado a moderação, creio que li Suporte Design e não éks. Pra não dizer que meu comentário foi flood: -> =) <- E agora, QuemSesso poderá lhe defender?
  17. fiz em segundos, to um pouco atolado, acabar eu faço um top pra ti
  18. Não sou uébi disaine quanto o benny mas se for útil pra algo:
  19. Show meu irmão, muito obrigado, porém me desculpe mas pode adicionar a tipografia que esqueci? Tipografia: Absolute No estilo da do Brendooh ai em degrade ficaria top! Faça como quiser, confio em ti haha Abraços.
  20. Você quer a função pra usar no level exato é isso?
  21. tudo na vida é possível rs. único problema é que você vai estar tentando alcançar um camaro com um chevete, é um servidor grande, algo que realmente seria mais do que necessário usar o sistema de 64bits. quanto a compilação, baixa o devcpp as libs que precisa e sucesso
  • Quem Está Navegando   0 membros estão online

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