Ir para conteúdo

jeanflamengo

Barão
  • Total de itens

    205
  • Registro em

  • Última visita

  • Dias Ganhos

    1

Histórico de Reputação

  1. Upvote
    jeanflamengo deu reputação a Caronte em [ACTION] Summon Scroll   
    Olá pessoal, venho lhes trazer hoje um script simples de manipulação de string.
    O Script: Trata-se de como o título já diz, de uma Summon Scroll, que ao digitar o nome do monstro nela e clicar em Ok, ela fica preparada para sumonar um monstro.
    ela pode ser usada tanto no inventário quanto no chão, e também tem uma lista de monstros que podem ser sumonados por ela.
     
     
     
    Vídeo demonstrativo:


    quaisquer dúvidas ou sugestões, só postar.
     
    Créditos:
    @Caronte
    -- Excelente manipulação de string, optimizou o script.
  2. Upvote
    jeanflamengo deu reputação a Tony Araujo em Pokémon Online   
    Salve galera do Eks, hoje eu venho apresentar a vocês por meio deste tópico o Pokemon Online (new era), o mais novo projeto de pokémon, cujo a principal ideia é sair da mesmice de todos os servidores existentes de hoje em dia. Nosso projeto, tem como base o primeiro, unico e melhor servidor já existente no mundo de OTServers. Quem não lembra do glorioso Pokémon Online, criado pela equipe SVKE? Haha. Servidor sendo feito totalmente do 0, sem usar base alguma. O mapa será criado tendo em mente o mapa do SVKE, tentaremos ao máximo trazer os incriveis mapas e sistemas, novamente. Andamento do servidor Caught System: 100% Go-Back System: 100% Portrait System: 100% Evolution System: 100% NPC Nurse System: 100% Paint System: 100% Pokedex System: 100% Ghost System: 100% Wild Pokemon Passive: 100% Moves System: 100% Limite de 6 Pokemons: 100% Party System (Pelo Private Channel): 100% Effective System (Vantagem e Desvantagem): 100% Duel System (Pela Party) 100%
    Tv / Cam System 100%

    Próximos sistemas Order System (Com todas as habilidades [Fly, Surf, Ride, Blink, Cut, Light, Transform, Control Mind, Dig, Move]) All Pokemon Spells Boat System (Vermilion - Cinnabar) Gym System NPC's de batalha espalhados pelo mapa. Imagens Vídeos - New Pokédex | Pokémon LifeBar
    Página no Facebook: Pokémon Online Equipe Oficial - OrochiElf - TioSan Colaboradores - GabrielTXU  
  3. Upvote
    jeanflamengo deu reputação a Skulls em 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. Upvote
    jeanflamengo deu reputação a Skulls em [Spells] Checando Interferências na Trajetória   
    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.
  5. Upvote
    jeanflamengo deu reputação a roga em Melhorando o desempenho do seu servidor   
    Olá pessoal do XTibia! Esse é meu primeiro "post sério", vou mostrar como tirar o indesejável lag que pertuba muitos donos de OT por ai, eu ja tive o meu e sei como é.
    Os passos a seguir devem ser feito no host em que o OT esta ligado.
     
    1. Aperte CTRL+ALT+DELETE vá no gerenciador de tarefas clique em "Processos" selecione o distro do OT que deve estar por la, clique com o direito nele, vá em "Definir Prioridade" e coloque "Tempo Real".
     
    2. Limpe o computador do host, caso seja um VPS ou Dedicado apenas instale o necessário, caso não seja, sempre limpe o historico do navegador e apenas deixe o OT aberto.
     
    3. Caso o computador host seja "ruim" procure algum script que tire os bots(sim isso mesmo! o elf por exemplo que faz as pessoas "girarem") que da muito lag.
     
    4. Faça uma pausa, é sempre bom fazer a manutenção de seu OT, não a nada de mal em parar até ~1hora para limpar o ot, fazer alterações ou até deixar o pc host desligado.
     
    5. Procure um script para colocar um limite de Account Managers
     
    6. Use um script anti MC como esse(no creaturescripts):


     
    7. Use um programa para limpar o computador(caso não seje um dedicado/vps) como o CCleaner.
  6. Upvote
    jeanflamengo deu reputação a Marco Oliveira em Attribute Key | Explicações.   
    <attribute key="weight" value="2100"/> Este atribute é o da o peso do item, ou seja, a magic longsword pesa 43 oz. (Nota 100 = 1 oz) Este atribute é obrigatorio em todos os itens. <attribute key="defense" value="30"/> Este atribute dá a defesa/def á arma que também é usad em shields. <attribute key="attack" value="36"/> Atributo que seleciona o ataque da arma. <attribute key="weaponType" value="sword"/> Este é o atribute que faz a arma ser um axe,sword ou club. No caso a magic longsword é uma sword xD. Se quiser mudar basta mudar o value="sword" para value="axe" ou value="club". <attribute key="slotType" value="two-handed"/> Este atributo é para que o item seja usado por duas mãos , mais caso queira deixar de 1 mão basta apenas retirar esse atribute1. <attribute key="elementFire" value="10"/>
    Ela ficará com (atk:45 + 10 fire damage def:40)
    [55-10=45] <attribute key="extradef" value="1" /> Este atribute da defesa extra ao item, como por exemplo a magic longsword é (atk:55 def:40 +1) e como vocês também já viram em alguma database ou no tibia mesmo itens com esse +1, 2, 3, etc... <attribute key="slotType" value="ammo"/>
    Com este atribute a arrow deve ficar no lugarzinho da flecha para ser usada.

    <attribute key="hitChance" value="90"/>
    A chance de sucesso do player de acertar o alvo, ou seja, o player com uma arrow tem 90% de chance de acertar um Dwarf por exemplo.

    <attribute key="ammoType" value="arrow"/>
    Neste atribute ou você coloca arrow que será utilizado apenas por Bows/Arcos ou bolt que será apenas usado por Crossbow/Besta.

    <attribute key="shootType" value="arrow"/>
    Animação no qual a flecha aparecerá indo em direcção ao alvo. <attribute key="weaponType" value="distance"/>
    Come este atribute a bow fica sendo uma arma de distância

    <attribute key="ammoType" value="arrow"/>
    Usando este atribute a bow precisará de algum tipo de arrow para atirar.

    <attribute key="range" value="6"/>
    Com este atribute você determina a distancia da qual ele pode atirar, ou seja, a bow pode atirar a 6 quadrados de distância. <attribute key="breakChance" value="10"/> Essa atribute dá a spear uma chance (10%) de quebrar a cada hit.

    <attribute key="ammoAction" value="moveback"/>
    Esse atribute faz com que a spear em vez de ficar no chão volte para sua mão sem ter que usar o atribute de charges.

    <attribute key="charges" value="50"/>
    Esse atribute dá a quantidade de cargas/charges ao amuleto.

    <attribute key="showcharges" value="1"/>
    Essa atribute serve para quando o player der look no amuleto mostrar a quantidade de charges ele tem. <attribute key="showattributes" value="1"/> Esse atribute serve para mostrar tudo que ele absorve.

    <attribute key="absorbPercentAll" value="5"/>
    Esse attribute serve para o amuleto absorver todos os tipos de danos em 5%.
    Caso queira que absorva um elemento em especifico aqui vai uma lista:
    <attribute key="duration" value="300"/>
    Essa atribute dá o tempo que o item durará equipado, ou seja, o power ring dura 30 minutos (Nota 10 = 1 min)

    <attribute key="decayTo" value="0"/>
    Essa atribute faz com quer, quando o tempo do power ring acabar ele "some"

    <attribute key="transformDeEquipTo" value="2166"/>
    Essa atribute diz em qual item ele tranformará quando desequipar o power ring.
    Recomendo não mexer ai. <attribute key="skillFist" value="5"/> Essa atribute aumenta seu Fist Fighting em 5 pontos.

    <attribute key="showduration" value="1"/>
    Esse atribute serve para quando o player der look no ring mostrar quando tempo ele ainda tem.
    Recomendo de novo que não mexa ai.

    <attribute key="manashield" value="1"/>
    Esse atribute faz com que o player fique em estado de "utamo vita".
    Não precisa mexer no "1".

    <attribute key="healthGain" value="1"/> -- HP ganho
    <attribute key="healthTicks" value="3000"/> -- Tempo nescessario (1000 = 1 segundo)
    Esses atributes tem que ser usados em conjunto.
    Eles fazem com que você recupera 1 de HP a cada 3 segundos.

    <attribute key="manaGain" value="4"/> -- MP ganho
    <attribute key="manaTicks" value="3000"/> -- Tempo nescessario (1000 = 1 segundo)
    Esses atributes tem que ser usados em conjunto.
    Eles fazem com que você recupera 4 de MP a cada 3 segundos.

    <attribute key="speed" value="20"/>
    Esse atribute aumenta a velocidade em "20" niveis, se quiser aumentar ou diminuir você ja sabe como xD

    <attribute key="skillSword" value="4"/>
    Essa atribute aumenta seu skill de sword em +4

    <attribute key="skillAxe" value="4"/>
    Essa atribute aumenta seu skill de axe em +4

    <attribute key="skillClub" value="4"/>
    Essa atribute aumenta seu skill de club em +4

    <attribute key="skillShield" value="4"/>
    Essa atribute aumenta seu skill de shield em +4

    <attribute key="suppressDrunk" value="1"/>
    Essa atribute deixa você imune a ficar bebum/bêbado/tonto/drunk/ etc... o.o'

    <attribute key="invisible" value="1"/>
    Essa atribute deixa você invisivél como se estivesse usando "utana vid"
     
    <attribute key="containerSize" value="20"/> -- é só aumentalo ou diminuilos
    É esse atribute que dá slots pras backpacks e bags.
    No caso a Crown backpack tem 20 slots.
  7. Upvote
    jeanflamengo deu reputação a Bruno em Remere's Map Editor 10.90   
    Changelog
    Versão 10.90 Suporte para versões 10.10+ Live casts Ultima versão do projeto oficial Download
    Mediafire
    Items.otb (atualizado)
     
    Créditos
    Colaboradores - Projeto Oficial
    @Bruno
  8. Upvote
    jeanflamengo deu reputação a drakylucas em [Draky's Codes] - Tibia Spell Bar   
    Bom galera, o codigo nao está tão utilizavel (tibia contem muitas spells, e mesmo quando dividi em duas linhas, a spellbar continuou nao cabendo na minha tela)

    Funciona melhor em servidores 9.50+ (só apartir do 9.50 que funciona o getVocation)
    Nao recomendo utilizar do jeito que está, mas é uma excelente base para quem quer criar seus proprios códigos
    Nao está tão perfeito, mas acredito que é o melhor que acharão até o final desse ano kk


    Download - Clique Aqui
    Extrair em Mods
    Reiniciar o OTClient (reload nao funciona com esse mod)

    Creditos: A maior parte meus, e um pouco o slicer que foi me ajudando por PM's em algumas duvidas...

    Screenshot:


  9. Upvote
    jeanflamengo deu reputação a ciappabrother em [Extension] Adicionando Limestone Wall   
    Daae galera,
    eu sempre gosto de editar meus mapas e uma das walls que eu mais gosto e a limestone wall,
    então decidi adicionar ela ao meu RME, e hoje vou trazer para vocês como fazer isso.
     
    Primeiramente, teremos de ir a Pasta do Remeres Map Editor.
    Depois disso va em data/(versão desejada)/tilesets.xml
     
    Apos abrir o Tilests,
    Vá até esta linha.
     

    <brush name="stone wall"/> <brush name="rock wall"/>
     
    Agora no meio deles coloque este script:
     

    <brush name="limestone wall"/>
     
     
    Pronto.
    Bom, agora que colocamos para o Remeres Map Editor ter a Limestone Wall, precisamos ajustar os ID's das paredes, portas etc.
    Então, agora vamos até o data/(versao desejada)/walls.xml
    Após você abrir O walls, você tera de adicionar este script:
     

    <brush name="limestone wall" type="wall" server_lookid="10178"> <wall type="horizontal"> <item id="10178" chance="1"/> <item id="10180" chance="0"/> <item id="10181" chance="0"/> <door id="10195" type="archway" open="false"/> <door id="10196" type="archway" open="false"/> <door id="10468" type="normal" open="false"/> <door id="10469" type="normal" open="false"/> <door id="10470" type="normal" open="true"/> <door id="10471" type="locked" open="false"/> <door id="10472" type="locked" open="true"/> <door id="10475" type="quest" open="false"/> <door id="10476" type="quest" open="true"/> <door id="10473" type="magic" open="false"/> <door id="10474" type="magic" open="true"/> <door id="10488" type="hatch_window" open="false"/> <door id="10490" type="hatch_window" open="true"/> <door id="10486" type="window"/> </wall> <wall type="vertical"> <item id="10177" chance="1"/> <item id="10182" chance="0"/> <item id="10184" chance="0"/> <door id="10192" type="archway" open="false"/> <door id="10193" type="archway" open="false"/> <door id="10477" type="normal" open="false"/> <door id="10478" type="normal" open="false"/> <door id="10479" type="normal" open="true"/> <door id="10480" type="locked" open="false"/> <door id="10481" type="locked" open="true"/> <door id="10482" type="quest" open="false"/> <door id="10483" type="quest" open="true"/> <door id="10484" type="magic" open="false"/> <door id="10485" type="magic" open="true"/> <door id="10489" type="hatch_window" open="false"/> <door id="10491" type="hatch_window" open="true"/> <door id="10487" type="window"/> </wall> <wall type="corner"> <item id="10181" chance="1"/> <item id="10183" chance="0"/> <item id="10185" chance="0"/> <item id="10187" chance="0"/> </wall> <wall type="pole"> <item id="10179" chance="1"/> </wall> </brush>
    ATENÇÂO:Você tem que tomar cuidado, pois você tem que adicionar este script depois de qualquer <brush>, e so pode haver apenas UM </brush> no final do script.
     
    Bom, após você fazer isso, você precisa abrir seu RME, e ir até "Terrain Palette/Town"
    Você tera algo assim...
     

     
    Bom obrigado por ver o tutorial...
    Pretendo mais no futuro fazer mais extensions para vocês (=
    Obrigado, se gostou, REP+
  10. Upvote
    jeanflamengo deu reputação a angeldoido em [Extension] Adicionando Framework Wall   
    Bom galera, como to sempre presissando dessa wall e fica dificil usa no RAW resolvi coloca no RME,
    vamos ao que intereça vai
     
    Remere's Map Editor\data\860\tilesets.XML
     
    E procure a seguinte linha

    <brush name="stone wall"/>
     
    e Em baixo Adcione essa linha...

    <brush name="framework wall"/>
     
    Ficando assim....

    <brush name="stone wall"/> <brush name="framework wall"/>
     
    Depois De ter Feito Isso va em walls.XML (NA MESMA PASTA)
     
    E la em baixo adicione isso...
     

    <brush name="framework wall" type="wall" server_lookid="1037"> <wall type="horizontal"> <item id="10227" chance="500"/> <item id="10229" chance="0"/> -- This needs to be here for backwards compability -- <item id="10235" chance="0"/> -- This needs to be here for backwards compability -- <item id="10245" chance="150"/> <item id="10246" chance="150"/> <door id="10271" type="normal" open="false"/> <door id="10272" type="normal" open="false"/> <door id="10273" type="normal" open="true"/> <door id="10276" type="locked" open="false"/> <door id="10277" type="locked" open="true"/> <door id="10280" type="quest" open="false"/> <door id="10281" type="quest" open="true"/> <door id="10284" type="magic" open="false"/> <door id="10285" type="magic" open="true"/> <door id="10264" type="hatch_window" open="false"/> <door id="10266" type="hatch_window" open="true"/> <door id="10262" type="window"/> </wall> <wall type="vertical"> <item id="10226" chance="400"/> <item id="10231" chance="0"/> -- This needs to be here for backwards compability -- <item id="10233" chance="0"/> -- This needs to be here for backwards compability -- <item id="10247" chance="150"/> <item id="10248" chance="150"/> <door id="10268" type="normal" open="false"/> <door id="10269" type="normal" open="false"/> <door id="10270" type="normal" open="true"/> <door id="10274" type="locked" open="false"/> <door id="10275" type="locked" open="true"/> <door id="10278" type="quest" open="false"/> <door id="10279" type="quest" open="true"/> <door id="10282" type="magic" open="false"/> <door id="10283" type="magic" open="true"/> <door id="10265" type="hatch_window" open="false"/> <door id="10267" type="hatch_window" open="true"/> <door id="10263" type="window"/> </wall> <wall type="corner"> <item id="10230" chance="1000"/> <item id="10232" chance="0"/> -- This needs to be here for backwards compability -- <item id="10234" chance="0"/> -- This needs to be here for backwards compability -- <item id="10236" chance="0"/> -- This needs to be here for backwards compability -- <item id="10237" chance="0"/> -- This needs to be here for backwards compability -- <item id="10238" chance="0"/> -- This needs to be here for backwards compability -- </wall> <wall type="pole"> <item id="10228" chance="1000"/> </wall> </brush>
     
    ATENÇÂO:Você tem que tomar cuidado, pois você tem que adicionar este script depois de qualquer <brush>, e so pode haver apenas UM </brush> no final do script.
     
    Bom, após você fazer isso, você precisa abrir seu RME, e ir até "Terrain Palette/Town"
    Você tera algo assim...

     
    Gente sei que é um Script, mto Simples+ pra qualque mapper ira FACILITAR muita a vida ^^
     
    Se gostaram+rep so clica ali :arrow:
  11. Upvote
    jeanflamengo deu reputação a Loouis em Particle auras feitas por mim.   
    Bom dia, Boa tarde, Boa noite galera do xtibia, não sei que horas vão ver esse topico... Vamos ao que interessa
    Hoje venho divulgar à vocês umas sprites(OBD) de umas particle auras feitas por mim...(8.54)
    Downloads Disponiveis:
    - Magmar: Cor da aura: Vermelho
    - Magmar: Azul
    - Gardevoir Amarelo
    - Electabuzz: Amarelo
    - Scyther: Azul
     
    Download das sprites (Mediafire): http://www.mediafire.com/download/eotkaacjput26rh/Auras.rar
     

  12. Upvote
    jeanflamengo deu reputação a Refe em Pokemon Dash Evolution ~> Projeto Comunitário <~   
    Comentário removido. Motivo: divulgação não permitida de outros fóruns.
     
    Não tô afim de ajudar o xTibia mais.
  13. Upvote
    jeanflamengo deu reputação a ImBack em Global Full 9.6 Ot-Soft   
    Bom alguns duvidaram, mais ta ai, flw ai gustavo :*

    OBS: SE ALGUEM FALAR QUE NÃO É O MESMO DA OT-SOFT É SÓ ABRIR NO RME E DAR UMA OLHADINHA NO TEMPLO E COMPRAR COM A DO SITE.

    SERVIDOR RODANDO EM MYSQL, NÃO DOU SUPORTE NELE.

     

    #Novidades:

    -Sistema de cooldown das magias 100% funcionando (SEM BUG DO COMBO).


    -Mount System 100%.



    -Taming System 97%.



    -Novos items 9.60.



    -Market System 100%.



    -Monstros adicionados.


     

    OBS*Este Mapa Possui Gray Island e Quirefang (100% Sem Bugs)


     

    #O que possui?



    -Peso do mapa: 140MB.



    - War of Emperium (Evento)



    - Battlefield (Evento)



    - Raids Automáticas (Script)



    - Zombie (Evento)



    - Database completa + Shop Pronto (DB FULL)



    - Wrath of Emperor com todas as missões (Mapa-quest)



    - Zao e New Banuta Piece (Mapa)



    - TFS 0.4 (Distro: Anti-Divulgação, War System, No-otbm check e sem "compite to 64bits")



    - War System com escudos (Script)



    - Mais de 30 Ilhas VIPS (Exclusivas OtSoft)



    - 15+ items VIPS (Script)



    - 9 cidades VIPS (Mapa)


     
     



     



     
     

    Download servidor completo


    Download DataBase

    Scan Pasta Data : https://www.virustot...sis/1349664734/
    Scan Dlls + Distro : https://www.virustot...sis/1349665264/
     
     

    Credito: OTmaker e ot-soft


     
     

    Anne Prevails!


  14. Upvote
    jeanflamengo deu reputação a Alissow em [9.83] Alissow OTS 5.0! [17 / 03 / 2013]   
    Alissow OTS 5.0!!!!! [17/03/ 2013]


     
    Provavelmente vocês estão pensando "mas que diabo de OTS é esse?", afinal, já faz 2 anos desde que a ultima versão foi lançada (http://www.xtibia.co...10-86-completo/) e desde lá prometemos algo que não foi cumprido - até agora -, uma versão nova. ENFIM, TEMOS AGORA A MAIS NOVA VERSÃO DE UM DOS SERVIDORES MAIS AVACALHADOS JOGADOS DOS ULTIMOS TEMPOS. Mas eu tenho uma má noticia, está incompleto.
    Sim, o mapa está inacabado. Muitas coisas que eu planejei fazer nele eu não completei. Boa parte o Comedinha ajudou a terminar, adicionando o resto dos caminhos básicos e os monstros. mas mapa inacabado não quer dizer que não está jogável, quer dizer que faltou detalhar (Ex: x:55 y: 137 z: 9, x: 104 y: 140 z: 7, etc).
    A ultima versão foi baixada mais de 50 mil vezes e esperamos que essa versão faça o mesmo sucesso.
     
     

    VAMOS BAIXAR E JOGAR, SEUS LINDOS


     
    Créditos Gerais:
     
     
     
    Sobre o OT/Mapa:
    Principais quests:
    -Annihilator
    -Inquisition Quest
    -Pits of inferno
    -Demon Oak
    -Solar axe quest
    -HOTA
    -MPA quest
    -The Challenger
     
    Monstros:
    -Total monstros: 10292
    -Total spawn: 5587+
     
    Cidades:
    -12 Cidades
    -200 Houses+-
     
    Raids/Invasões:
    -Rat
    -Orshabaal
    -Ghazbaran
    -Giant spider/The old window
    -Ferumbras
    -Morgaroth
     
    Spells:
    -Magias editadas para balanceamento das vocações
     
    Changelog
     
    Atualização [3.4 BETA]:
     
     
     
    Atualização nº 2 [3.4]:
     
     
    Atualização 3.5 [06/08/2009]:
     
     
     
    Atualização Patch 3.5.1 [07/08/2009]:
     
     
    Atualização 3.6 [10/08/2009]:
     
     
    Atualização 3.7! Beta [18/12/2009]:
     
     
    Atualização 3.7 Patch 1 [27/12/2009]:
     
     
     
    Atualização 3.8 [17/01/2010]:
     
     
     
    Atualização 3.8 Minor Patch 1 [17/01/2010]:
     
     
     
    Atualização 3.9 [15/02/2010]:
     
     
     
    Atualização 4.0 [15/02/2010]:
     
     
     
    Atualização 4.11! [11/07/2010]:
     
     
     
    Atualização 5.0!!!!! [17/03/2013]
     
     
    - Atualizado para a versão 9.83 (Comedinhasss, Tfs Team)
    - Sistemas novos para a nova versão, montaria, war system, etc. (Comedinhasss, Tfs Team)
    - Rep System e Antbot Removido. (Comedinhasss)
    - 64 Quests reformuladas. (Comedinhasss/Alissow)
    - Novo sistema de dicas a cada 15 min. - (Comedinhasss)
    - Novo sistema de map marks ao entrar no servidor. (Comedinhasss)
    - Organização geral em Actions e Moveevents. (Comedinhasss)
    - Nova organização nos monstros agora usando os que não tem no tibia original na pasta monsters em mods. (Comedinhasss)
    - Npcs sem utilidade removidos (Comedinhasss)
    - Alavanca de runas e potions reformuladas (Comedinhasss, Alissow)
    - Bug PZ nas Hydras arrumado (Alissow)
    - Cidade principal parcialmente reformulada (Alissow)
    - Cidade de Flam totalmente reformulada (Alissow)
    - As lojas agora não são mais areas PZ (Alissow)
    - Corrigido erros em portas que não deveriam abrir, e portas que não deveriam fechar (Alissow)
    - Continente de Zao removido? (Alissow)
    - Arrumado bugs onde podia-se pegar items na ferumbras tower e vários outros lugares (Alissow)
    - Arrumado caminho da "inquisition" (Alissow)
    - Respawns recolocados em algumas áreas de yalahar, dragons, elfs Hydras, Dark magicians e apprentices (Alissow)
    - Nova entrada para arena (Svargrond) na cidade principal e funcionando! (Alissow)
    - Elevado nível de dificuldade da Arena (Svargrond) (Alissow)
    - Nova localização da Ferumbras Tower (Alissow)
    - Cidade de Mistyc removida (Alissow)
    - Novo sistema premium igual ao global. (Comedinhasss)
    - Sistema de bless reformulado e agora por items. (Comedinhasss)
    - Sistema de portais/teleports (Comedinhasss, Alissow)
    - Sistema offline training (Comedinhasss, TFS)
    - Sistema de casamento trocado (Comedinhasss, Outros)
    - Spells (OTX)
     
     
    Screenshots:
     
     
     
     
     




     




     




     




     




     




     

    Mais screenshots:
    Clique Aqui

     
     
    Download:
     
    Windows: http://www.mediafire...cap2yi5jee5e7an (Tam: 16MB)
     
    Linux (Debian): http://www.mediafire...5lu3476fd8jcnc8 (Tam: 7MB)
     
     
    Link Protegido Windows: http://lix.in/-d3c97c
     
    Link Protegido Linux (Debian): http://lix.in/-d5501d
     
    Scan Virus Total: https://www.virustot...sis/1363492837/
     
    IP Changer: http://www.mediafire...6stsdskhljaa0c1
     
    -Atenção-
     
    - Acc do God: admin/admin
    - LEIA o tópico antes de postar qualquer coisa ou duvida
    - Reportem se houver algum bug
    - Offline Train Level configurado no config.lua em levelToOfflineInBed
    - As estatuas de offline que ficam no templo não funcionam por serem enfeites
    - Para tirar o , previewer do nome, no config.lua em serverPreview mude para false
    - Todos os addons são vendidos menos o demon que o comedinha acabou esquecendo de coloca
    - Comandos personalizados: /ta - itens pro sv inteiro, /tp - locais do mapa, /p - tem na assinatura do comedinha ensinando, /e - abrir e fechar portal(open, close).
    - Para usar os portais você primeiro deve explorar a área indo até ela
    - Tem alguns segredinhos e lugares escondidos muito legais para vocês descobrirem
    - Favor, não usar o nosso distro sem o nosso consenso, obrigado.
     
     
     
     
     
     

    - Se você gostou, clique no
    ali embaixo ó


  15. Upvote
    jeanflamengo deu reputação a Caronte em Xtibia QuestMaker   
    Olá xtibianos, faz um tempo que estou desenvolvendo um quest maker pelo VS, e gostaria de dar uma preview de como está ficando. aceito sugestões e contribuições!
     
     



    O quest maker contará com tutoriais e explicações, para facilitar o uso do mesmo.


    Enfim, já fiz um beta em console application (cmd / dos) compilado pelo DEV-C++. Quem quiser testar, vou estar deixando o download logo abaixo.
     

     
     
    Download:
    [beta] Quest Maker - By Caronte. 64-bits
    [beta] Quest Maker - By Caronte. 32-bits
     
     
    quem quiser contribuir com o desenvolvimento do QuestMaker, basta ter conhecimento em C#, e falar comigo.
  16. Upvote
    jeanflamengo deu reputação a Qwizer em Global 10/11.5 + OtherWorld + Hearth of Destruction Quest+ Eventos   
    Global Full
     
    [CLIENTS COMPATÍVEIS]
      10 e 11.5.
     
    [BUGS E DOWNLOAD]
    BAIXEM E REPORTEM EM: OTXGlobal Full
     
    [FEATURES]
    NEW DEPOT, NEW SPAWN, NEW CAST SYSTEM, NEW NPC SYSTEM VIA BANK BALANCE, NEW CRITICAL BOOST SYSTEM, NEW POTIONS, REWARD SYSTEM, PREY ...
     
    [MAPA]
    FULL GLOBAL MAP WITH FEYRIST
     
    TODAS CIDADES E NOVAS AREAS
    TODAS QUESTS FUNCIONANDO!
     

     

     

     

     

     

     

     

     

     

    [EVENTS]
    WAR-ANTIENTROSA
     
    [CONTATO]
    SKYPE: onjogos WHATSAPP: (66) 998427-4493
     
    [Créditos]Tfs 1.2 Developers -Zbizu - Pitis91 - MatheusMkalo - Gesior - Lundrial
    - M4G0 -
    Fish04k - Printer - Djarek - Ninjalulz - Slavidodo - Thexamx - Socket2810 - Ciroc -Absolute - Gordonbay - Mitsuig - Alissonfgp - Gunz - Bruno Minervino - Comedinha -Hirako - Maya - Mattyx14 – Darkjav - Viking Tibia
  17. Upvote
    jeanflamengo deu reputação a PokeTournament em [Poke Tournament] Show off sprites   
    Ola galera
    nesse topico irei mostrar alguns sprites e gifs do meu projeto Poke Tournament
    facebook

    Machop Ryu


    o proximo pokemon a ser adicionado será o cubone tauros skull
    o que acham dele? "depois faço uma gif"

    NOVO
    Squirtle Rafael


    remake Koffing e suas principais skills

    clefairy remake Eevee

     
  18. Upvote
    jeanflamengo deu reputação a kaleudd em [Download] Algumas Remakes-pxg e pokestorm   
    Download de algumas remakes e recoleres da pxg e poke storm.
     
     
    Download + Scan
     
     
     
     
    Créditos:
     
    Pokexgames
    Kaleudd
    PokeStorm

  19. Upvote
    jeanflamengo deu reputação a JairKevick em [Poketibia] Pfield CdBar Open Source   
    Eai PokeTibianos :cool: !
     
    Trago aqui o pfield com cd bar um servidor com sources! bom adicionei a cdbar no pfield! a alguns sistemas nada mais!
     

    Systems do PFIELD!
    Bike System: 100% Caught System: 100% Evolution System: 100% Go-Back System: 100% Gerações 1: 100% Gerações 2: 100% Limite de 6 Pokemons na Bag: 100% Moves System: 100% Portrait System: 100% Pokedex System: 100% Ride System: 100% Sem Level System! fly System: 100% Surf System: 100% Teleport System: 100% e etc... Observações Os systems acima apenas afirma que os sistema em si esta em 100%, quero deixa bem claro que nem todos os pokemos então adicionados ao sistemas. Lembrando tambem que possa aparece bugs porque todos os OtServs de Poketibia á Bugs... Mais Caso Ocorra algum por favor me relate que sera rapidamente corrigido. PRINTS: DOWNLOAD: http://bit.ly/1OdS1Ii Sources GitHub: https://github.com/Kevick/pfield-cdbar-source/
     
    ​SCAN: https://www.virustotal.com/pt/url/ca440fdaf52124c425edadca296a82cef81b9306ecc1fba515dd2bfbcd8c7562/analysis/1452466545/
     
    CREDITOS:
     
    Kevick (CDBAR-FUNCIONAL)
    Aberos (Otclient)
    Avronex
    CipSoft - Sem ela isso tudo nao existiria
     
  20. Upvote
    jeanflamengo deu reputação a zipter98 em [Resolvido] [Pedido] Heavy Slam e Passiva Iron Body   
    Já terminei faz tempo, só estou esperando você avisar que criou o item.
    Certamente não ficou igual a PxG, porque, caso tenham usado esse método, deve ter demorado um bom tempo para achar o tempo ideal para representar um pulo "perfeito" (como o da gif). E, sinceramente, não estava com paciência de ficar procurando tal tempo.
    Função de pulo:
    function jump(cid, rounds) doChangeSpeed(cid, -getCreatureSpeed(cid)) doCreatureSetNoMove(cid, true) for i = 1, rounds do addEvent(function() if isCreature(cid) then local pos = getThingPos(cid) local item = doCreateItem(ITEM_INVISIVEL, 1, pos) addEvent(function() local it = getTileItemById(pos, ITEM_INVISIVEL).uid if it > 0 then doRemoveItem(it) end if i == rounds then doRegainSpeed(cid) doCreatureSetNoMove(cid, false) end end, rounds == 1 and 200 or (i + 2) * 100) end end, i * (rounds == 1 and 200 or 100)) end end Use jump(cid, 1) para um pulo de altura "1" (como o causado pelo Earthquake), e jump(cid, 2) para pulos como do Heavy Slam. Código do Heavy Slam: local config = { areas = {area1, area2}, --Áreas, em ordem de execução. effect = 160, --Efeito. combat = NORMALDAMAGE, --Elemento. } local function doPushCreature(target, cid) if target > 0 then if not isNpc(target) then local position = getThingPosition(cid) local fromPosition = getThingPosition(target) local x = ((fromPosition.x - position.x) < 0 and -1 or ((fromPosition.x - position.x) == 0 and 0 or 1)) local y = ((fromPosition.y - position.y) < 0 and -1 or ((fromPosition.y - position.y) == 0 and 0 or 1)) local toPosition = {x = fromPosition.x + x, y = fromPosition.y + y, z = fromPosition.z} if doTileQueryAdd(target, toPosition) == 1 and getTileInfo(toPosition).house == false then doTeleportThing(target, toPosition, true) end end end end jump(cid, 2) addEvent(function() for i = 0, #config.areas - 1 do addEvent(function() local pos = getPosfromArea(cid, config.areas[i + 1]) doMoveInArea2(cid, config.effect, config.areas[i + 1], config.combat, min, max) for j = 1, #pos do local pid = getTopCreature(pos[j]).uid if ehMonstro(pid) then doPushCreature(pid, cid) elseif isSummon(pid) then local master = getCreatureMaster(pid) if isSummon(cid) then if getPlayerStorageValue(master, 52480) >= 1 and getPlayerStorageValue(master, 52481) >= 0 then local masterCid = getCreatureMaster(cid) if isDuelingAgainst(masterCid, master) then doPushCreature(pid, cid) end end else doPushCreature(pid, cid) end end end end, i * 230) end end, 650)
  21. Upvote
    jeanflamengo deu reputação a zipter98 em [Resolvido] Bug no spell Heavy Slam   
    O Heavy Slam empurra, não puxa. Se você instalou os códigos corretamente e a base usada é a mesma, então a spell está funcionando como deveria.
     
    Quanto ao Earthquake e outras spells elevarem outras criaturas, faça o seguinte:
    Em qualquer arquivo da lib, coloque a seguinte tabela e configura nela as magias que realizem tal efeito:
    JUMP_SPELLS = {"Earthquake"} Depois, em newStatusSyst.lua (data/lib), no código da função:
    function doMoveDano2(cid, pid, element, min, max, ret, spell) Abaixo de:
    if isSummon(cid) and (ehMonstro(pid) or (isSummon(pid) and canAttackOther(cid, pid) == "Can") or (isPlayer(pid) and canAttackOther(cid, pid) == "Can" and #getCreatureSummons(pid) <= 0)) and pid ~= cid then if canAtk then --alterado v1.6 coloque:
    if isInArray(JUMP_SPELLS, spell) then jump(pid, 1) end Por fim, abaixo destas linhas:
    elseif ehMonstro(cid) and (isSummon(pid) or (isPlayer(pid) and #getCreatureSummons(pid) <= 0)) and pid ~= cid then if canAtk then --alterado v1.6 coloque:
    if isInArray(JUMP_SPELLS, spell) then jump(pid, 1) end Assim, as spells que usam a função doMoveInArea2 poderão levantar outras criaturas atacáveis. Entretanto, outras magias não poderiam ser generalizadas assim, porque as funções usadas são originárias das sources.
    Para mudar isso, você teria que, em alguns casos, modificar individualmente o código das spells ou complementar funções usadas, em outros casos (como da função doDanoWithProtect, usada em várias magias em área).
  22. Upvote
    jeanflamengo deu reputação a zipter98 em [Resolvido] Bug no spell Heavy Slam   
    Remova estas linhas:
    doChangeSpeed(cid, -getCreatureSpeed(cid)) doCreatureSetNoMove(cid, true) doRegainSpeed(cid) doCreatureSetNoMove(cid, false)
  23. Upvote
    jeanflamengo deu reputação a kaleudd em [Download] Remakes,pedras,paredes,escadas e Montanhas PXG   
    Estou trazendo as pedidas remakes das montanhas,pedras e paredes da pokexgames.
     
     
    Download + Scan:
     
     
     
     
    Créditos:
     
    Pokexgames
    Kaleudd
     
     
    seguem as prints a baixo!!!




  24. Upvote
    jeanflamengo deu reputação a Refe em Pokémon Origins Show-Off!   
    Hoje vim mostrar uns sistemas do CLIENT do Pokémon Origins





    Tela de Login:


     

    Catch Window:

    Fazendo ultimas modificações





    Pokémon Info:


     

    Info Window:

    Addon, TM/HM, Nick, Etc.

    Terminando a parte de Addon!



    Pokédex/Badge Case:

    Começando a fazer o design!



    Player Info:


     



    Coisas que eu julguei interessante para esse tópico:


     



  25. Upvote
    jeanflamengo deu reputação a Skulls em [Tutorial] Formulas e Callbacks das spells – Entendendo Melhor   
    Boa tarde pessoal, tudo bem?
     
    Hoje resolvi fazer um tutorial sobre dois recursos muito simples e úteis na hora de criar magias diferentes, inovadoras e divertidas.
     
    Motivação
     
    Eu nunca soube fazer spells direito, achava chato e monótono, portanto nunca procurei saber mais. Essa semana, acabei fazendo um evento que a recompensa era uma magia, então quis fazer algo diferente e bonito, que fugisse um pouco do padrão (dê uma olhada em: http://www.xtibia.com/forum/topic/238734-luna-event-bonus-spell-inspirado-no-sot-01/#entry1680858). Só que, na minha busca por aprender mais sobre as spells, eu vi que é um tanto nebuloso a parte de dano e de callbacks. Os tutoriais os utilizam nos scripts demonstrativos mas falam pouco a respeito. Li muito, descobri algumas coisas no empirismo e outras nas sources do TFS e me senti motivado a reunir tudo que encontrei em um tutorial.
     
    Importante: Este não é um tutorial que vai ensinar a criar uma spell, existem milhares com esse objetivo aqui no fórum e na internet em geral. O foco aqui é estudar dois recursos que podem tornar o processo criativo de spells muito mais interessante, divertido e único, abrindo possibilidades diferentes do que simplesmente uma magia que solta um efeito e dá dano.
     
    Bom, chega de mimimi e vamos ao que interessa.
     
    Conceitos
     
    Vamos começar definindo nossos dois objetos de estudo.
     
    Fórmulas, como o próprio nome já define, são expressões matemáticas usadas para representar algum valor. No nosso caso, as fórmulas de dano das magias são expressões matemáticas que sintetizam e representam o dano da nossa magia.
     
    Callbacks são, traduzindo ao pé da letra, funções que ligam de volta. Definindo melhor, são funções que disparam ações quando determinado evento/acontecimento ocorre. Isso é, elas nos dão um retorno a um evento ou chamad. Exemplos: addEvent, é um callback muito útil que dispara com o tempo chamando uma função; onDeath é um callback que dispara quando determinada criatura morre.
    Uma vez entendido teoricamente o que vamos estudar, mãos a obra.
     
    Entendendo
     
    Fórmulas
     
    O controle das fórmulas de dano das spells é feito pela função setCombatFormula, cuja chamada default é mostrada abaixo:
    setCombatFormula(combat, formulaType, min_a, min_b, max_a, max_b, min_lvl, max_lvl, min_mlvl, max_mlvl, min_dmg, max_dmg) Combat é o objeto combate em questão, normalmente ele é instanciado no inicio dos arquivos de spells como local combat = createCombatObject(). É esse objeto que controla, a partir de seus parâmetros, toda a dinâmica das spells: efeitos, dano, área, etc.
     
    Min_a e Max_a são múltiplicadores das fórmulas de dano máximo e mínimo
    Min_b e Max_b são números base das fórmulas de dano máximo e mínimo
    Min_lvl e Max_lvl são ponderadores do level na fórmula de dano máximo e mínimo baseado em ML, dividem o lvl do player.
    Min_mlvl e Max_mlvl são ponderadores do magic level na fórmula de dano máximo e mínimo baseado em ML, multiplicam o ml do player.
    Min_dmg e Max_dmg são os limites do dano máximo e mínimo, o menor dano possível é min_dmg e o maior dano possível é max_dmg.
    formulaType são os diferentes tipos de fórmulas que podem ser usados, isso é, formas diferentes de como os parâmetros de dano que foram passado serão utilizados.
     
    Existem três tipos relevantes de fórmulas, existe um quarto chamado undefined ou 0. Porém nele todos os parâmetros são zero. São eles:
     
    COMBAT_FORMULA_LEVELMAGIC ou 1
     
    Essa é a fórmula mais completa das três, utiliza de todos os parâmetros para definir o dano máximo e mínimo.
    Basicamente, a fórmula de dano é
    Dano mínimo = ((player_level / min_lvl + player_mlvl) * min_mlvl) * min_a + min_b) Dano máximo = ((player_level / max_lvl + player_mlvl * max_mlvl) * max_a + max_b) Se dano mínimo > min_dmg, então dano mínimo = min_dmg Se dano máximo > max_dmg, então dano máximo = max_dmg Considerações importantes, o valor final de dano máximo e dano mínimo deve ser negativo, o mesmo vale para os valores de min_dmg e max_dmg. Portanto, para evitar confusão vai uma dica simples: Sempre coloque min_a, min_b, max_a, max_b, min_dmg e max_dmg negativos e o restante positivo.
     
    COMBAT_FORMULA_SKILL ou 2
     
    Mais simples que o anterior, só utiliza em seu cálculo os parâmetros min_b, max_a e max_b. Leva em consideração, como veremos, level, arma e skill (referente à arma que ele estiver empunhando) do player. Min_dmg não serve para esse caso, mas max_dmg ainda vale como no anterior.
    Dano mínimo = min_b Dano máximo = Dano_Calculado * max_a + max_b Se dano máximo > max_dmg, então dano máximo = max_dmg Aqui Dano_Calculado é o calculo do seu dano com a sua arma, levando em conta seu level e skills.
    Novamente, o valor final dos danos deve ser negativo. Aqui, use todes os valores negativos e não terá problemas.
     
    COMBAT_FORMULA_DAMAGE ou 3
     
    A mais simples das três, leva em consideração somente min_b, que será o dano mínimo e max_b, que será o dano máximo. Para não ter problemas, use valores negativos.
     
    A respeito das fórmulas é isso. São as três fórmulas pré-definidas e seus funcionamentos.
     
    Callbacks
     
    Nosso estudo sobre callbacks vai se basear na função setCombatCallback que faz o controle dos callbacks dos objetos de combate. A seguir, a declaração da função setCombatCallback:
    setCombatCallback(combat, callbackType, “nome da funcao”) Vamos explicar primeiro o que essa função faz.
     
    Ela adiciona ao objeto combat especificado uma função como retorno a um determinado tipo de evento. Cada tipo de callback é referente a um evento e espera da função que você passou como parâmetro alguns parâmetros. Por exemplo, queremos adicionar um callback do tipo X com a função de retorno functionX, sabendo que callbacks do tipo x esperam funções que recebam x1, x2 e x3 como parâmetro.
     
    Então temos que definir a função functionX e criar a chamada do callback:
    function functionX(x1, x2, x3) code end setCombatCallback(combat, X, “functionX”) Acredito que tenham entendido um pouco do funcionamento, agora vou explicar cada tipo de callback. Temos quatro tipos, mostrados a seguir:
     
    CALLBACK_PARAM_LEVELMAGICVALUE ou 1
     
    Esse callback é definido para disparar quando o dano é aplicado. Não consegui descobrir exatamente em que momento ele é chamado, mas, quando definido, toda vez que sua magia causa dano ele vai disparar a função para a qual foi programado. Ele é utilizado para reprogramar a forma como o dano vai ser calculado. A grande sacada aqui é que você pode definir as formulas de dano como você bem entender (levando em conta level e ml) e melhor se encaixar ao seu propósito.
     
    Esse callback espera funções que recebam os parâmetros: cid, level, maglevel e um retorno com os valores máximos e mínimos de dano. Uma definição para esse callback seria:
    function functionX(cid, level, maglevel) min = -maglevel*1.1 + level max = -maglevel*2.2 + level*1.1 return min, max end setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, “functionX”) CALLBACK_PARAM_SKILLVALUE ou 2
     
    Similar ao anterior, porém danos com base em skills, esse callback é definido para disparar quando o dano é aplicado. Não consegui descobrir exatamente em que momento ele é chamado, mas, quando definido, toda vez que sua magia causa dano ele vai disparar a função para a qual foi programado. Ele é utilizado para reprogramar a forma como o dano vai ser calculado. A grande sacada aqui é que você pode definir as formulas de dano como você bem entender (levando em conta skills, level, ataque da arma e modo de ataque) e melhor se encaixar ao seu propósito.
     
    Esse callback espera funções que recebam os parâmetros: formulaBySkill(cid, level, skill, attack, p, factor) e um retorno com os valores máximos e mínimos de dano. Uma definição para esse callback seria:
    function functionX (cid, level, skill, attack, factor) min = -(1.2 * (attack * (skill + 5.8) / 25 + (level - 1) / 10) / factor) max = -(2 * (attack * (skill + 5.8) / 25 + (level - 1) / 10) / factor) return min, max end setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, “functionX”) Observação importante: no servidor que eu tenho aqui, por algum motivo sobrenatural desconhecido, tem um parâmetro nulo extra entre attack e factor. Então, se você tentar usar isso no seu servidor e der erro “factor attempt to call nil value” ou algo do tipo use isso:
    function functionX (cid, level, skill, attack, vazio, factor) Nos sources que eu olhei esse parâmetro não existe, não achei nada a respeito dele e ele é sempre 0. Se alguém souber o que ele significa, se ele significar algo, comente ai.
     
    CALLBACK_PARAM_TARGETTILE ou 3
     
    Esse callback é definido para disparar quando a magia atinge cada um dos tiles definidos em sua área. Ele pode ter uma diversidade de aplicações, que envolvem customizar efeitos e ações da magia de acordo com o tile que ela atinge. Vai depender da sua criatividade, mas há um leque infinito de coisas que podem ser feitas. Exemplo: Se uma área de neve for atingida por uma magia de fogo, ela descongela e vira um tile de terra ou pedra; se em um dos tiles que a magia acertar houver um item, esse item vai para a bp do player; em determinado tipo de terreno a magia dá um dano extra; e por ai vai.
     
    Esse callback espera funções que recebam os parâmetros: cid e tile. Uma definição para esse callback seria:
    function onTargetTile(cid, tile) addEvent(doSendMagicEffect, x*350, tile, config.effects.hit) End setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile") CALLBACK_PARAM_TARGETCREATURE ou 4
     
    Esse callback é parecido com o anterior. Ele é definido para disparar quando a magia atinge um criatura dentro da área de atuação dela. Ele pode ter uma diversidade de aplicações, que envolvem customizar efeitos e ações da magia de acordo com o tipo de criatura (diferentes monstros, se é player ou não, etc) que ela atinge. Vai depender da sua criatividade, mas há um leque infinito de coisas que podem ser feitas.
     
    Exemplo: Se um fire elemental for atingido por uma magia de fogo a vida dele aumenta ou um novo fire elemental surge; se o alvo da magia for um player há um dano adicional; se um monstro for atingido por essa magia ele é convencido e passa ate ajudar; e por ai vai
     
    Em uma magia como a que eu fiz para o evento luna, por exemplo, que dá vários hits ao longo de uma execução dela, cada hit dispara esse callback. Uma aplicação seria, então, a cada hit há uma chance de congelar e imobilizar o player.
     
    Esse callback espera funções que recebam os parâmetros: cid e target. Uma definição para esse callback seria:
    function onTargetCreature(cid, target) local chance = math.random(1, 18) if getGlobalStorageValue(5545) == -1 and isPlayer(target) and chance == 1 then registerCreatureEvent(target, "NoAtt") registerCreatureEvent(target, "NoSpell") registerCreatureEvent(target, "NoTgt") setGlobalStorageValue(config.storages.event, 1) addEvent(setGlobalStorageValue, 3000, 5545, -1) end chance = math.random(1, 15) if chance == 1 then doSendMagicEffect(getCreaturePosition(target), config.effects.hit) doCreatureSetNoMove(target, true) doSetItemOutfit(target, config.frozen_humans[math.random(1, #config.frozen_humans)], 1500) addEvent(backToMovement, 1800, target) end end setCombatCallback(combat, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature") Bom gente, foi isso o que consegui coletar, entender e aprender sobre as fórmulas de dano e callbacks das magias. Qualquer coisa que queiram acrescentar ou corrigir, fiquem a vontade para comentar.
     
    Espero que gostem.
    Abraços,
  • Quem Está Navegando   0 membros estão online

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