Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 02/15/16 em todas áreas

  1. Skulls

    Exori Grab Vis

    Fala galera, tudo bem? Venho trazer pra vocês uma nova magia que fiz. Ela é basicamente um puxão que da um pouco de dano. Gif Em spells.xml coloque essa tag: <instant name="Energy Grab" words="exori grab vis" needtarget="1" lvl="40" mana="20" prem="1" range="5" blockwalls="1" exhaustion="2000" groups="1,2000" icon="122" needlearn="0" event="script" value="attack/energy grab.lua"> <vocation id="3"/> <vocation id="7"/> </instant> Em scripts/attack crie um arquivo chamado energy grab.lua e coloque o conteúdo abaixo: local grab_time = 350 local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGYBALL) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1) function onTargetCreature(cid, target) addEvent(executeGrab, grab_time, cid, target) end setCombatCallback(combat, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature") function executeGrab(cid, target, param) d = param or -1 if not isPlayer(cid) then return false end if not isCreature(target) then return false end local cpos, ppos = getCreaturePosition(target), getCreaturePosition(cid) local dir = getDirectionTo2(cpos, ppos) if d == -1 then doSendDistanceShoot(cpos, ppos, CONST_ANI_ENERGYBALL) end if getDistanceBetween(cpos, ppos) > 1 then doMoveCreature(target, dir) end if (d > 1 or d == -1) then addEvent(executeGrab, 30, cid, target, getDistanceBetween(cpos, ppos)) end return true end function performCombat(cid, combat, var) return doCombat(cid, combat, var) end function onCastSpell(cid, var) return doCombat(cid, combat, setSpellTarget(cid, var)) end Para funcionar corretamente, isso é puxando quem estiver na frente da magia e nao o target inicial é necessário que você utilize o sistema disponibilizado por mim neste tópico: http://www.xtibia.com/forum/topic/239458-spells-checando-interferencias-na-trajetoria/ Caso contrário, troque a linha return doCombat(cid, combat, setSpellTarget(cid, var)) por return doCombat(cid, combat, var). Bom, é isso. Espero que gostem. Abraços,
    4 pontos
  2. Boa noite galera, tudo bem? Venho compartilhar com vocês hoje um sisteminha que desenvolvi para as magias do tipo "shoot'. Foi feito inicialmente para funcionar com magias que usam a posição do mouse como referência e adaptei para cipclientes poderem usar em runas e magias de tiro. O funcionamento do sistema é simples: Ao usar uma runa ou castar uma magia "shoot" com esse sistema criaturas e objetos no caminho irão interferir na trajetória, isto é, receberão o combate no lugar do alvo inicial. Ilustrativo: Bom, vamos ao que interessa. Vá em data/lib/ e crie um novo arquivo chamado spellsLib.lua (pode-se utilizar também o arquivo spells.lua contido em data/spells/lib). Dentro dele inclua as seguintes funções: IsWalkable (by Nord) GetPositionsAround (by Skulls) CheckInterceptions (by Skulls) SetSpellTarget (by Skulls) Feito isso, está tudo configurado. Basta agora adicionar às magias que você queira. Abra o .lua da magia, por exemplo death strike.lua. Lá você terá, entre outras coisas, a função onCastSpell como abaixo: function onCastSpell(cid, var) return doCombat(cid, combat, var) end Substitua isso por: local range = 5 function onCastSpell(cid, var) if getCreatureTarget(cid) == 0 then doPlayerSendCancel(cid, "Please choose a target.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return false end if getDistanceBetween(getPlayerPosition(cid), getCreaturePosition(getCreatureTarget(cid))) > range then doPlayerSendCancel(cid, "Target is not reachable.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return false endreturn doCombat(cid, combat, setSpellTarget(cid, var)) end Retire qualquer tag que esteja relacionada a target (needtarget, casterTargetOrDirection, etc) Pronto, a sua magia "Exori Mort" será parada por criaturas ou obstáculos (qualquer item que não seja móvel). Bom é isso, espero que gostem. Queria agradecer ao @@nightwolf e ao @Caronte pelas ajudas tentando entender alguns parâmetros e me dando algumas luzes. Ao @@nightwolf, ainda, um agradecimento especial pela maravilhosa lib dele *-*. Abraços, Um exemplo de magia que utiliza esse sistema: http://www.xtibia.com/forum/topic/239460-exori-grab-vis/ @@Daniel, na verdade move pra mim pra Downloads Spells, acho que seria mais correto.
    3 pontos
  3. Night Wolf

    First Itens

    [3] = { --equipment {{2389, 5}, {2660, 1}, {8923, 1}, {2456, 1}, {2544, 50}}, --container {{2120, 1}, {2554, 1}, {7618, 1}} [iD DA VOCAÇÃO] -- equipamentos {{itemid, quantidade}} --- container [VEM DENTRO DA BP] {{itemid, quantidade}}
    2 pontos
  4. SkyLigh

    First Itens

    local config = { [1] = { --equipment {{2175, 1}, {2190, 1}, {8819, 1}, {8820, 1}}, --container {{2120, 1}, {2554, 1}, {7620, 1}} }, [2] = { --equipment {{2175, 1}, {2182, 1}, {8819, 1}, {8820, 1}}, --container {{2120, 1}, {2554, 1}, {7620, 1}} }, [3] = { --equipment {{2389, 5}, {2660, 1}, {8923, 1}, {2456, 1}, {2544, 50}}, --container {{2120, 1}, {2554, 1}, {7618, 1}} }, [4] = { --equipment {{2509, 1}, {2465, 1}, {2481, 1}, {2478, 1}}, --container {{8601, 1}, {8602, 1}, {2439, 1}, {2120, 1}, {2554, 1}, {7618, 1}} } } function onLogin(cid) local player = Player(cid) local targetVocation = config[player:getVocation():getId()] if not targetVocation then return true end if player:getLastLoginSaved() == 0 then for i = 1, #targetVocation[1] do player:addItem(targetVocation[1][1], targetVocation[1][2]) end local backpack = player:addItem(1988) for i = 1, #targetVocation[2] do backpack:addItem(targetVocation[2][1], targetVocation[2][2]) end end return true end
    2 pontos
  5. Tony Araujo

    [OrochiElf] New OTRestarter v1.0

    New OTRestarter version: 1.0 developer: Tony Araújo (OrochiElf) pt. Gabriel Nogueira (Idéias) Funções: - Auto Restarter (Ele inicia o servidor assim que ele não detectar mais que o processo está ativo, ou seja, toda vez que o seu servidor fechar sozinho, o programa automaticamente irá reconhecer e irá reinicia-lo.) - Auto Crash Timer (Uma nova função inédita foi adicionada, esta função é responsável por detectar quando o processo do servidor para de funcionar, algo que acontece frequentemente, então ele irá reconhecer e reiniciar o processo.) - Auto Restarter Timer (Outra função nova adicionada nesta versão, esta função é responsável por programar os horários que você deseja reiniciar o seu servidor. ela é bastante usada para evitar o desperdício de memória usada no consumo do processo do servidor, ou seja, quando um servidor está ativo por muito tempo o gasto de memória aumenta, então esta função irá reiniciar o processo do seu servido de acordo com os horários que você marcar. Para próxima versão: - OTRestarter hosting (Esta função será uma inovação bastante bacana, ela dará o direito de você acessar o Restarter *que estará provavelmente instalado no VPS/Dedicado do servidor* sem que a pessoa precise acionar a conexão remota, ou seja, funcionará parecido com um FTP Control, você poderá controlar o Restarter e ter acesso as informações gravadas no LOG do programa através de um simples client, deixando possível ser acessado em computadores diferentes, e em breve uma versão para mobile/celular.) Imagem do funcionamento do programa: Download: Link Aqui
    1 ponto
  6. Estou trazendo as pedidas remakes das montanhas,pedras e paredes da pokexgames. Download + Scan: Créditos: Pokexgames Kaleudd seguem as prints a baixo!!!
    1 ponto
  7. Boa noite galera, Estou a alguns dias tentando resolver um problema que tive com o OTC: ao usar a função doCreatureSetHideHealth simplesmente o player trava e não consegue fazer nada até o hidehealth ser desfeito. Isso ocorre porque, na source do OTC, a declaração de morte é feita baseada em porcentagem de vida e essa inexiste quando o hideHealth é acionado, somente a vida total e a vida máxima é que continuam com valores relevantes. Então, o OTC simplesmente te considera como um morto vivo quando você usa hideHealth e você não pode realizar nenhuma ação no jogo a não ser deslogar. Após alguns dias fuçando consegui finalmente resolver o problema e vim compartilhar a solução com vocês. 1) Na source do seu OTC vá em creatures.cpp. Crie as funções abaixo: double Creature::getLocalPlayerHealth() { return g_game.getLocalPlayer()->getHealth(); } bool Creature::isDead() { if (!isLocalPlayer()) return m_healthPercent <= 0; double m_health = getLocalPlayerHealth(); return m_health <= 0; } Substitua: if(m_healthPercent < 1) // creature is dead return; por if(m_healthPercent < 1) // creature is dead if (!isLocalPlayer()) return; 2) Vá em creature.h e troque a declaração da função isDead() por: bool isDead(); 3) Em game.cpp troque a função proccessDeath por: void Game::processDeath(int deathType, int penality) { if (m_localPlayer->getHealth() > 0){ m_dead = true; m_localPlayer->stopWalk(); g_lua.callGlobalField("g_game", "onDeath", deathType, penality); } } Pronto, o seu OTC agora suporta a função doCreatureSetHideHealth (e de bônus você consegue enxergar o seu player com uma barra preta e seu nome, apesar dos outros não te verem). Bom é simples, mas útil espero que ajude. Abraços,
    1 ponto
  8. Furabio

    Aprender Scripting

    Me adiciona no skype, linus.1759, que te coloco em um grupo que foi criado com esse próposito... lá vão tirar eventuais dúvidas que você tiver.
    1 ponto
  9. Uffa até que fim tive tempo pra terminar, coloquei a tabela de resets, só não adicionei todos os lvl de resets e quantos resets são adicionados a db, vou deixar isso por conta de você pois é simples ... Melhorei o código e resolvi os problemas citados se aparecerem mais algum só deixar abaixo : Não se esqueça de adicionar a tabela resets na sua database na tabela players, para isso basta rodar esse comando : ALTER TABLE players ADD resets tinyint(11) NOT NULL; Ps : Já ia me esquecendo. para adicionar o restante dos levels na tabela basta apertar ctrl + F e procurar por $resetTable a forma de adicionar está na tabela explicando em formato de comentários.
    1 ponto
  10. MuriloCavalcantti

    Projeto Valhala (2016)

    Curti, mas os boxs estão bugados, acerte eles e coloque no mesmo estilo que o menu, mas tá legal, parabéns!
    1 ponto
  11. @@Caronte, acho q ele quis dizer estilo o Q da miss fortune no league of legends... qnd vc dá um tiro e mata o bixo o tiro rebate com dobro de dano se tiver alguém atrás (seguindo a direção), ficaria muito legal ter algo nesse sentido tb.
    1 ponto
  12. Marco Oliveira

    Baiak MoazOT | V1.2

    encontrei esse mapa abandonado nas profundezas do mega, ele é um baiak 100% diferente pois todo o mapa foi modificado. ele não está 100% ainda falta algumas hunts VIP e configurar os itens. Espero que façam bom proveito do meu projeto de coração, pois trabalhei muito nele. E se alguém terminar e por online me avisem, quero dar uma jogada pra ver como ficou! Caso tenha algum problema com o servidor baixe as sources oficiais dele clicando AQUI. Principais Quest's Annihilator Pits OF Inferno Demon Helmet Monstros VIP'S Hydra VIP Demon VIP Infernalist VIP Grim Reaper VIP Medusa Vip FrostDragon VIP Warlock Vip Atualizações Versão 1.2 Adicionado Itens Vips. Adicionado NPC para venda de canivetes. Adicionado canivetes e obsidian knife. Vários Scripts atualizados. Versão 1.1 Bug das Houses corrigidos. Stages fixados. Fixado Outfit Account Manager Scripts corrigidos. Adicionado evento de DoubleXp Remoção de scripts não utilizados. Clique aqui para fazer o download. Clique aqui para o scan.
    1 ponto
  13. Outro [15/02/2016 14:25:48] [Error - MoveEvents Interface] [15/02/2016 14:25:48] data/movements/scripts/premiumTile.lua:onStepIn [15/02/2016 14:25:48] Description: [15/02/2016 14:25:48] (luaDoPlayerSendCancel) Player not found Arrumei o erro kk, na linha 12 tava cid, era creature que tinha que coloca lá kk Obrigado <3
    1 ponto
  14. mesmo primeiro post, eu to editando, pega o script.. eu esqueci de uma letra... mesmo primeiro post, eu to editando, pega o script.. eu esqueci de uma letra...
    1 ponto
  15. só muda isso: <movevent type="StepIn" actionid="4207" event="script" value="premiumTile.lua" />
    1 ponto
  16. substitua em modules/client_options/ graphics.rar
    1 ponto
  17. Opa isso que dá configurar uma tag sem consultar o .xml kkkk, acabei meclando tag de TFS 1.+ com TFS 0.4, já está consertado...
    1 ponto
  18. É mesmo, troque pra isso então: for _, pid in pairs(getPlayersOnline()) do setPlayerStorageValue(pid, 1827311, 0) if isInArea(getThingPos(pid), {x = 500, y = 574, z = 6}, {x = 575, y = 620, z = 6}) or isInArea(getThingPos(pid), {x = 511, y = 588, z = 5}, {x = 556, y = 607, z = 5}) or isInArea(getThingPos(pid), {x = 511, y = 588, z = 4}, {x = 556, y = 607, z = 4}) or isInArea(getThingPos(pid), {x = 511, y = 588, z = 3}, {x = 556, y = 607, z = 3}) or isInArea(getThingPos(pid), {x = 481, y = 580, z = 7}, {x = 683, y = 798, z = 7}) then doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid))) end end
    1 ponto
  19. Arrumado, obrigado.
    1 ponto
  20. Troca: local st = getPlayerStorageValue(pid, 1827311) local i = getPlayerVocation(pid) if st > mx[i%4] then... por local st = getPlayerStorageValue(pid, 1827311) local i = getPlayerVocation(pid) local index = i%4 if index == 0 then index = 4 end if st > mx[index] then
    1 ponto
  21. Eu já sei o pq, vou editar aqui 2 segundos. Troca: local st = getPlayerStorageValue(pid, 1827311) local i = getPlayerVocation(pid) if st > mx[i%4] then... por local st = getPlayerStorageValue(pid, 1827311) local i = getPlayerVocation(pid) local index = i%4 if index == 0 then index = 4 end if st > mx[index] then
    1 ponto
  22. Troca pointNumber(mx) por pointNumber(mx) E ae?
    1 ponto
  23. function onStepIn(creature, item, position, fromPosition) if not isPlayer(creature) then return false end if isPremium(creature) then doPlayerSendMessageText(creature,20, "Welcome to premium area!") doSendMagicEffect(getThingPos(creature), CONST_ME_MAGIC_BLUE) else doTeleportThing(creature,fromPosition) doPlayerSendCancel(cid, "You're not premium.") doSendMagicEffect(getThingPos(creature), CONST_ME_POFF) end return true end <movevent type="StepIn" actionid="4207" event="script" value="premiumTile.lua" /> Certifique-se que não tem nenhuma actionid igual, atualizei o post, esqueci de um parêntesis.
    1 ponto
  24. Boos

    Projeto Valhala (2016)

    Simplesmente Foda, ta perfeito assim ;D
    1 ponto
  25. foi add a download as pedras e as paredes que nociam e ricardo pediram. @ricardoberk as escadas ainda não achei,quando eu achar irei upar junto.
    1 ponto
  26. local times = 3 --Quantos SQMs o jogador irá se mover. function isWalkable(pos, creature, proj, pz)-- by Nord if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end if getTopCreature(pos).uid > 0 and creature then return false end if getTileInfo(pos).protection and pz then return false, true end local n = not proj and 2 or 2 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if tile.itemid ~= 0 and not isCreature(tile.uid) then if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then return false end end end return true end function onCastSpell(cid) local playerPos = getThingPos(cid) for i = 1, times do playerPos:getNextPosition(getCreatureLookDirection(cid)) if not isWalkable(playerPos, i == times, i == times, i == times) then doPlayerSendCancel(cid, "Sorry, destination not possible.") return false end end doTeleportThing(cid, playerPos) return true end
    1 ponto
  27. Bom, sem muito a falar irei tentar explicar tudo O Pokemon T.E.S foi começou a 9 meses atrais por 3 pessoas, tinha a intençao de ser um servidor serio porem pouco a pouco aprendi que PDA, tem muitas limitaçoes. Eu simplemente iria pagar o host, outros 2 amigos iriam ficar encargados dos scripts e maps, porem ambos desistiram do projecto poucos dias apos ter começado ate agora fikei só com esse server tentando arrumar bugs com meus conenhimentos (nemhum) em td... o Servidor tem uns 9 meses online, no momento esta com host mesmo assim muito lagado por causa de bugs o projecto é 1 coisa pequena, e estou procurando 1 scripter, tenho a intençao de pagar por scripts porem sem ser muito oque tiver que pagar, é um servidor PDA por isso acho que não vale a pena usar muita grana para um servidor sem sources. Emfin... resumindo: procuro scripter que estiver querendo ganhar 1 pouco de grana mas sem exagerar... fikei louco qndo me pediram 700 reais por um launcher emfin irei deixar o grupo do meu servidor https://www.facebook.com/groups/1618330061742838/ qualquer coisa manda PM seja no FB ou aqui Eu vi que Xtibia quer que eu fale as "Metas" entao... simples: ter um servidor estavel sem lag por causa de scripts mal feitos.
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...