Ir para conteúdo

narutomaniacos

Cavaleiro
  • Total de itens

    158
  • Registro em

  • Última visita

  • Dias Ganhos

    1

Histórico de Reputação

  1. Upvote
    narutomaniacos deu reputação a Gengo em sistema de dialogo para tfs 1.3   
    Você precisa adaptar conforme suas necessidades, segue ai, se não funcionar, só lamento, como disse, vc precisa adaptar conforme suas tfs
    local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function greetCallback(player) player:doSendDialogNpc(Npc():getId(), "Olá jovem, vejo que você conseguiu chegar até aqui!\nClique em Recompensa e fique feliz pela conquista!", "Fechar&Recompensa") return true end function creatureSayCallback(cid, type, msg) if not npcHandler:isFocused(cid) then return false end end function onReleaseFocus(player) player:doSendDialogNpcClose() end npcHandler:setCallback(CALLBACK_GREET, greetCallback) npcHandler:setCallback(CALLBACK_ONRELEASEFOCUS, onReleaseFocus) npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())  
  2. Upvote
    narutomaniacos deu reputação a Gengo em sistema de dialogo para tfs 1.3   
    local OpcodeDialog = 80 local Actions = { open = 1, closed = 2 } function Player.doSendDialogNpc(self, npc, msg, opc) if ( not opc ) then opc = {} end self:sendExtendedOpcode(OpcodeDialog, table.serialize({ action = Actions.open, data = { npcId = npc, message = msg, options = opc } })) end function Player.doSendDialogNpcClose(self) self:sendExtendedOpcode(OpcodeDialog, table.serialize({ action = Actions.closed })) end  
  3. Upvote
    narutomaniacos deu reputação a GamerGoiano em TFS 1.3 8.60 by Nekiro (Tela Extendida)   
    Eu compilei pelo visual basic, toda vez que eu compilava com o codeblocks ficava muito grande a .exe e pesado
    no Visual Basic é bem melhor e mais organizado
  4. Upvote
    narutomaniacos deu reputação a GamerGoiano em TFS 1.3 8.60 by Nekiro (Tela Extendida)   
    e vc configurou o banco de dados?
  5. Thanks
    narutomaniacos deu reputação a GamerGoiano em TFS 1.3 + Otclient + Sources (Com TELA MAIOR)   
    Detalhes: Pra ver em tela extendida, aperta (CTRL .) e (CTRL -) ou (CTRL = )
    Coloquei 20 de maxview
    Pra deixar online basta baixar uma datapack 1.3 e a spr e dat 10.98 e colocar esses arquivos abaixo dentro das respectivas pastas (OTCLIENT E TFS)
    Download: https://www.dropbox.com/s/uzkfyw9j2ycmcln/TFS 1.3 %2B OTCLIENT e Sources.rar?dl=0
    Scan: https://www.virustotal.com/gui/file/8da85efd1e19132291ae511b1ca430d59c1eb404aff2e1bc2951a165cab07c10/detection

  6. Thanks
    narutomaniacos deu reputação a GamerGoiano em TFS 1.3 8.60 by Nekiro (Tela Extendida)   
    Download: https://www.mediafire.com/file/8phk1r3z9i9ye61/tfs+1.3+8.60+by+nekiro.rar/file
    Scan: https://www.virustotal.com/gui/file/3513f18d45c9109f62fa6d1b4de9c21c2297d920fb09947972cd3a190919749c/detection
    Conteúdo: Otclient Com Sources, TFS com Sources, Site Znote, Tudo Configurado.
     
    Como usar:
    Basta baixar, extrair, criar um banco de dados no xampp mais atualizado com o nome: Tibia e importar os 2 banco de dados que estão na pasta do TFS
    Copiar a pasta htdocs e colocar em C:\Xampp substituir a pasta Htdocs que tem lá.
    Abrir o Servidor e Abrir o cliente e jogar. (Crie a conta no site)
     
    Descrição:
    Esse é o TFS 1.3 que o Nekiro passou pra 8.60, eu apenas extendi a tela pra ficar melhor.
    Deixei TFS em x64 bits pq eu compilei pelo vcpkg, se quiser pode compilar vc mesmo em x86.

    Alterações:
    1. Tela Extendida (Aumentei a tela pra 20)
    2. Adicionado X Y Z no Minimap
    3. Removi os Painéis como Padrão
    4. Atalho pra aumentar e diminuir zoom CTRL + e CTRL -


  7. Upvote
    narutomaniacos deu reputação a Marshmello em Mensagem Ao LoGar Stilo OTP   
    Fala Galera BLZ Vim Trazer Uma Script Feita Port Min De Msg QUando Vc Logar Na Sua Conta
     
    Vai Em Creaturescipt e crie Uma Arquivo Chama Admlg Ficnado Admlg.lua
    e ADD
    Dps Vai em creaturescript.xml e add
     
    SE Gosta Deixe seu REP+
    Creditos A Minha pela Script
  8. Upvote
    narutomaniacos deu reputação a Roksas em [Tutorial] Conhecendo o math.random   
    Iaaae galera tudo bom? Hoje irei dar umas informações, ensinar mais a respeito do "math.random"!
    Introdução Modos de usá-lo Finalização


    math.random


    Bom galera, o math.random é uma função da linguagem Lua, que pertence á biblioteca MATH. Essa função é utilizada para gerar "valores" aleatórios, numa linguagem mais fácil de compreender: ele sorteia os valores!


    Como utilizar?

    A função math.random, por narutreza é composta desta forma:

    math.random(inicial, final)

    Aonde o "inicial" corresponde ao primeiro valor, e o "final" ao último valor. Exemplo:


    math.random (1, 20)

    Aqui sorteamos qualquer valor entre 1 e 20. (Valor inicial/final).

    Um outro exemplo de uso:

    doSendAnimatedText(position,"Hail Eks", math.random(1, 255))

    Aqui iremos mandar aquelas mensagens coloridas, as cores vão variar de 1 a 255 (Valor inicial/final). Entenderam?

    Ok, até aqui utilizamos valores "OBRIGATÓRIOS". Mas porque? Dei alguns exemplos acima, como:


    math.random(1, 20)

    Iremos sortear qualquer valor entre 1 e 20. MAS, e se eu não quiser passar pelo valor 15? Como fazemos?

    Simples, criamos uma variável com os valores desejados, e outra randomizando, exemplo:


    local quero_esses = {2,5,10}random = quero_esses[math.random(1, #quero_esses)]

    Vamos entender essa lógica? Na variável "random", especifiquei que quero randomizar entre 2, 5 e 10. que utilizei acima, coloquei o "VALOR INICIAL", que é o primeiro valor, não importa qual, da minha variável/table/array... e usando o símbolo #, verifico o "tamanho da tabela", ou seja, pego todos os valores da mesma. Que no caso estão na variável (quero_esses).

    Sorteando qualquer valor entre os da minha variável, pode ser 2, 5 ou 10!

    Podemos também utilizar essa lógica do sorteamento DESEJADO, para quests de sorte. Exemplo de uso:


    local possibilidades = {2148, 2450, 2555} -- Possíveis items a ganhar!local randomizar = possibilidades[math.random(1,#possibilidades)]function onUse(cid, item, frompos, item2, topos)if getPlayerStorageValue(cid,2033) == -1 thendoPlayerAddItem(cid,randomizar,1)doPlayerSendTextMessage(cid,27,"Parabéns, o seu prêmio da quest foi sorteado!")setPlayerStorageValue(cid,2033,1)endreturn trueend

    Viram? Depois de criar as duas variáveis, uma randomizando e a outra com os valores, basta usar o nome da variável que randomiza, para escolher os valores entre "2148,2450 e 2555" no caso!

    É isso galera, espero que façam bom uso do math.random, como por exemplo: Sistema de chance de dropar, ou acontecer X coisa


    Beijo grande.
  9. Upvote
    narutomaniacos recebeu reputação de mcjefi em Skills stages   
    Vi umas pessoas querendo esse script então como não achei no forum resolvi postar..
    serve para regular os rates do seu server, exemplo: do level 30 até o 49 o Rate ml(dificuldade para UPAR) é 1
     
    primeiro vá em config.lua procure por Rates em rateSkill deixe 1
    Em creaturescript/scripts/skills (caso não tenha pasta skills crie)
     
    copie e cole qualquer script, então o renomeie para "stagesconfig" e cole isso dentro:
     
     
     
    Depois, copie e cole qualquer script, então o renomeie para "skillstageslogin" e cole isso dentro:
     
     
     
    Depois, copie e cole qualquer script, então o renomeie para "skillstagesadvance" e cole isso dentro:
     
     
     
    Depois vá em login.lua e registre as tags:
    registerCreatureEvent(cid, "SkillStagesLogin") registerCreatureEvent(cid, "SkillStagesAdvance") e então em creaturescripts.xml: <event type="login" name="SkillStagesLogin" event="script" value="skills/skillstageslogin.lua" /> <event type="advance" name="SkillStagesAdvance" event="script" value="skills/skillstagesadvance.lua" />  
    Para configurar é simples, basta ir em stagesconfig: por exemplo no fist fight
    {0,3},{30,2} = no level 0 o rate skill sera 3, isso só ira mudar no level 30 que o rate sera 2, configure todas as skills ao seu gosto!
    OBS: Testado em tfs 0.3.6(8.60)
    Creditos: Autor desconhecido(caso você seja o criador do escript informe e colocarei os creditos), eu pelo tópico.
    Espero ter ajudado.
  10. Upvote
    narutomaniacos deu reputação a Tiagone em Mapa DBO 8.6 By Madara Rinnegan   
    Bom estava fazendo esse mapa com o Intuito de abrir um servidor de Dragon Ball serio,entretanto eu não to com mto animo de deixa um OT abrir e cuida dele semanalmente estou entediado e eu não so tanto fan de Tibia,só jogo para passar o meu Tempo e mata o Tédio de vez enquanto,então vim aki posta meu mapa pra os cara priguiçosos... de criar um mapa ou para aqueles que tem animo de abrir ot... mais não quer abrir com um mapa 8.0 limitado.bom vou cita algumas coisas que tem no mapa abaixo.

    Algumas Coisas que tem no Mapa


    30+ Quests de level 1 até o 500 Vip/Free tambem 100% Spells Balanceadas 100% Caves de level 1 até a 500 100% Eventos todos os dias da semana Diferenciados os eventos(Segunda a Domingo) 100% Senzu Leaf,Root,Bean e Magic(Red) 100% Items em geral esta 100% System Passiva 100% Vocations Balanceadas 100% Transforms Sem Rb de lvl 1 a 200 esta tudo 100% Transforms Com Rb de lvl 1 a 600 esta tudo 100% Transform God do filme 2015 esta adicionada para quase todos os saiyajins menos zaiko,Kagome,Pan... Bills com algumas Transforms Original God Freeza Transform Original Npc's 100% Comandos 100% tem comando de vende pontos... System do Log foi colocado para qualquer coisa que o Player falar no jogo ser salvo,assim vocês vão poder ver se alguem hackio alguem ou se roubo algo de alguem... Vocations Balanceadas(total de vocation é de até 35- vocations tanto free quanto vip) Planetas e Citys adicionados... Quest Log sendo atualizado a cada Quest feita Shenlong sendo chamado após ter pego as 7 esferas do dragão as esferas estão nas citys free só basta pega o radar com o Trunks e clica que vai marca no Mini Mapa. Arena Feita Trainers para fica só e trainer em conjuto adicionados Houses adicionadas Survival Adicionada na City 17(Premium) Castle Of Honor Adicionado com direito a ir cave Guild dominante
    Algumas Coisas que fis no Site

    Site Modern ACC Shop 100% Paginas 100% Paginas Adicionada para Facilita o Jogador como a Pagina de (Personagems,Tasks,Quests,Infos...) eu fis algumas coisas no Layout mais só modifiquei as cores colokei 1 faceloog proprio... Tem quase todas informação do mapa no site,como eventos,caves,mapa,quests,tasks... Coisas Que Pretendo para a V2

    System Fly System Naves Arruma Os Erros Coloca as Sources Para Download arrumadinha... Posta um Mapa renovado sem algums erros... Erros que não consigui resolver

    Quando se deslonga,o set para de Heala,ou seja as função desabilita ai precisa tira o Set ou Item do Slot e coloca-lo novamente no Slot.
    Print's das coisas no Mapa

     

    Print's das coisas no Site e algumas transforms:

     
    Info Do Servidor TFS 0.3.6 não é Open Source(por enquanto) Versão do Mapa 8.60
    Scans:
    Client: Click Aqui
    Mapa: Só Consiguir coloca o Scan do Site meu PC é ruim pra krl e net pior ainda ai não to consiguindo fazer scan.
    Site: Click Aqui

    Download:
    Mapa: Click Aqui
    Client: Click Aqui
    Database: Click Aqui
    Site: Click Aqui

    Creditos:
    Eu Por ter feito praticamente tudo '-' xtibia por me ajuda nos scripts e algums erro que me deu dor de cabeça do Krl
  11. Upvote
    narutomaniacos deu reputação a Stigal em xTibia - Recruta!   
    Seja bem-vindo ao nosso tópico de recrutamento.
     
    Estamos iniciando uma nova fase de evolução e desenvolvimento, e para isso necessitamos de pessoas qualificadas e de potencial para ingressar em nossa equipe.
     
    Reformulamos algumas sessões do fórum, e estamos com cargos novos.
    Seguindo o mesmo padrão das nossas pips, que vocês podem acompanhar abaixo:
     

       
       
       
       
     
    Voltaremos com o nosso antigo projeto x-Dev, onde o melhor desenvolvedor do fórum ganhara um cargo na equipe,  com o foco em compartilhar novos sistemas e tutoriais, tendo assim o reconhecimento pelo trabalho prestado em nossa comunidade.
     
    Temos também o novo grupo Lenda, onde entra os membros que um dia já fizeram muito por esta comunidade, e o grupo Herói, ficará para os membros que estiveram e colaboraram com a nossa comunidade.
     
    Tem interesse de compartilhar seu conhecimento com a comunidade? Gostaria de fazer parte da equipe xTibia?
    Estamos abertos a todo tipo de sugestão para a melhoria da comunidade, deixe seu comentário com a sua sugestão.
     
    Todos aqueles que tiverem interesse de estar ingressando a nossa nova equipe, poderá entrar em contato conosco.
    Estaremos fazendo a nova seletiva em breve.  =]
     
    #MakeEkzGreatAgain
     
    coming soon...
    .
  12. Upvote
    narutomaniacos deu reputação a Gengo em [Encerrado] Quest storage   
    Na pasta do seu servidor vai em data/creaturescripts/login.lua e adicione em baixo de if( lastLogin > 0 ) then
    if getCreatureStorage(cid, 8605) == 1 then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid) ) ) doCreatureSetStorage(cid, 8605, -1) end e no final do mesmo arquivo antes do ultimo return true adicione:
    registerCreatureEvent(cid, "deathrecord") na mesma pasta data/creaturescript crie um arquivo chamado  deathrecord.lua e adicione:
    function onDeath(cid) if isPlayer(cid) then return doCreatureSetStorage(cid, 8605, 1) end return true end E por fim em data/creaturescript/creaturescript.xml adicione a seguinte tag: 
    <event type="death" name="deathrecord" event="script" value="deathrecord.lua"/>  
  13. Upvote
    narutomaniacos deu reputação a zipter98 em Quest Simples   
    Action:
    local config = { time = 10, --Tempo para fazer a quest, em minutos. toPosition = {x = x, y = y, z = z}, --Para onde os jogadores serão teleportados. positions = { {x = x, y = y, z = z}, --Posições que os jogadores devem ficar. {x = x, y = y, z = z}, {x = x, y = y, z = z}, {x = x, y = y, z = z}, }, level = 100, --Level mínimo para fazer a quest. storages = {8605, 8606}, } function onUse(cid) local pid = {} if getPlayerStorageValue(cid, config.storages[2]) > -1 then return doPlayerSendCancel(cid, "You already completed that quest.") end for _, online in pairs(getPlayersOnline()) do if getPlayerStorageValue(online, config.storages[1]) > -1 then return doPlayerSendCancel(cid, "Someone is at the quest right now.") end end for i, position in pairs(config.positions) do local p = getTopCreature(position).uid if p < 1 or not isPlayer(p) then return doPlayerSendCancel(cid, "Not enough players to start the quest.") elseif getPlayerLevel(p) < config.level then return doPlayerSendCancel(cid, "Some player is at a level below "..config.level..".") end pid[#pid + 1] = p end for _, player in pairs(pid) do doPlayerSendTextMessage(player, MESSAGE_STATUS_CONSOLE_ORANGE, "Good luck at the quest!\nTime: "..config.time.." minutes.") doTeleportThing(player, getClosestFreeTile(player, config.toPosition)) setPlayerStorageValue(player, config.storages[1], 1) end addEvent(function() for _, player in pairs(pid) do if isPlayer(player) and getPlayerStorageValue(player, config.storages[1]) > -1 then doPlayerSendTextMessage(player, 27, "Oh, timeout. Sorry. :/") setPlayerStorageValue(player, config.storages[1], -1) doTeleportThing(player, getTownTemplePosition(getPlayerTown(player))) end end end, config.time * 60 * 1000) return true end Tag: <action actionid="xxx" event="script" value="nome_do_arquivo.lua"/> Troque xxx pelo actionid. Creaturescript: function onLogout(cid) if getPlayerStorageValue(cid, 8605) > -1 then return doPlayerSendCancel(cid, "You can't logout on the quest.") and false end return true end function onLogin(cid) if getPlayerStorageValue(cid, 8605) > -1 then setPlayerStorageValue(cid, 8605, -1) end return true end Tags: <event type="logout" name="questLogout" event="script" value="nome_do_arquivo.lua"/> <event type="login" name="questLogin" event="script" value="nome_do_arquivo.lua"/> Em data/creaturescripts/scripts, abra o arquivo exp2.0.lua. Acima de: if getPlayerStorageValue(cid, 6598754) >= 1 or getPlayerStorageValue(cid, 6598755) >= 1 then Coloque: if getPlayerStorageValue(cid, 8605) > -1 then for _, pid in pairs(getPlayersOnline()) do if getPlayerStorageValue(pid, 8605) > -1 then doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid))) doPlayerSendTextMessage(pid, 27, "Someone died and you lost the quest. Better luck on the next time!") setPlayerStorageValue(pid, 8605, -1) end end doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) return false end No código de premiação da quest, coloque as seguintes linhas:
    setPlayerStorageValue(cid, 8605, -1) setPlayerStorageValue(cid, 8606, 1)
  14. Upvote
    narutomaniacos deu reputação a fromhellbdm em [OLD] Crie seu Client Próprio (8.60 - 10.XX)   
    aqui também, esse tutorial nao funciona.
    obrigado por postar
  15. Upvote
    narutomaniacos deu reputação a Tony Araujo em [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
     
  16. Upvote
    narutomaniacos deu reputação a Luga03 em [c++] code list   
    Olá! Ultimamente eu vi que tem pessoas que dizem:
     
     


    "Nem vou sair do PDA, pois é muito complicado usar source"
     
     


    Então vi que o pessoal não sabe procurar no google, nem nos fóruns nem nada pra poder achar algo interessante... então resolvi fazer uma lista de tutorias em C++
     
     


    Essa lista vai ser mais pensada para Derivados, em especial os de pokemons, mas claro que vão poder usar em qual quer outro tipo de servidor, vai depender de sua criatidade!
     
     


    Outro motivo de eu fazer isso, é que sempre q preciso de code q esqueci de anotar o link, preciso procurar dnv kk
     
     


     
     
     


    Obs: Codes são apenas para TFS 0.3.6 e 0.4
     
     


    Caso esteja ALL é por que funciona em ambas versões aciam!
     
     


     
     
     


    Então vamos lá!
     
     


     
     
     


    Extra (Adicionar)
     
     


    ShootEffect
     
     


    MagicEffect
     
     


     
     
     


    Functions LUA
     
     


     
     
     


    [ALL] doPlayerOpenChannel(cid, channelid)
     
     


    Função: Abrir um determinado channel
     
     


     
     
     


    [TFS 0.3.6] doSetCreatureNick(cid, nick)
     
     


    Função: Muda nome da criatura especificada
     
     


     
     
     


    [ALL] doCreateMonsterNick(MonsterName, nick, position)
     
     


    Função: Cria uma criatura com nome diferente
     
     


     
     
     


    [ALL] doCreatureCastSpell(cid, spellname)
     
     


    Função: Faz criatura executar uma spell
     
     


     
     
     


    Creaturescripts
     
     


     
     
     


    [ALL] onMove(...)
     
     


    Função: Sempre que mover algum item, ele é executado
     
     


     
     
     


    [0.3.6] onSpawn(cid)
     
     


    Função: Executa sempre que uma criatura aparece
     
     


     
     
     


    [ALL] onOpenContainer(cid, item)
     
     


    Função: Executa sempre que abrir algum container
     
     


     
     
     


    Features:
     
     


     
     
     


    [ALL] Teleport Summon
     
     


    Função: Quando summon se distânciar 6 SQM's de distância, summon é teleportado para o lado do player
     
     


     
     
     


    [TFS 0.4] Passive System
     
     


    Função: Caso o monstro for passivo, ele só vai atacar o player, se o player atacar ele primeiro
     
     


     
     
     


    [ALL] Ghost System
     
     


    Função: Fazer criatura passar pelas paredes
     
     


     
     
     


    [ALL] Heal Color
     
     


    Função: Muda a cor de heal padrão do server
     
     


     
     
     


    [ALL] Monster Level
     
     


    Função: Adicionar level system nos monstros
     
     


     
     
     


    [ALL] Auto Stacking Items
     
     


    Função: Sempre que por um item stackable no mesmo lugar, ele se junta
     
     


     
     
     


    [ALL] Extended Limit Effects
     
     


    Função: Aumenta o limite padrão (256) para um valor muito maior!
     
     


     
     
     


    [ALL] Player canWalkthrough
     
     


    Função: Player pode passar por cima de player
     
     


     
     
     


     
     
     


    Pronto!
     
     


    A maioria dos links que eu acho interessante, eu já coloquei, ainda tenho outros links, só que são de outros fóruns, pretendo trazer o conteúdo pra o XTibia e irei atualizar o tópico com o tempo!
     
     


     
     
     


     
     
     


     
     
     


     
     
     
  17. Upvote
    narutomaniacos deu reputação a Krono em Adicionar novos Efects ao servidor   
    Bom, encontrei esse tutorial, e estou compartilhando com vocês para sanar algumas duvidas.
    Ele ensina como aumentar o numero de efects no tibia, alterando as sourcers do servidor, é importante que todos os passos sejam seguidos a com rigor, e que mantenha um backup em caso de erro.
    Tutorial:
     
    Primeiramente, você precisará da source do distro usado em seu servidor ou uma source compatível com a versão do seu servidor.
    Tendo elas, abra o arquivo .dev (com o Dev-C++, é claro).

    No arquivo const.h, procure por:
    enum MagicEffect_t Você poderá notar que o código só estará configurado até o último efeito (no caso, 68):

    enum MagicEffect_t { MAGIC_EFFECT_DRAW_BLOOD = 0x00, MAGIC_EFFECT_LOSE_ENERGY = 0x01, MAGIC_EFFECT_POFF = 0x02, MAGIC_EFFECT_BLOCKHIT = 0x03, MAGIC_EFFECT_EXPLOSION_AREA = 0x04, MAGIC_EFFECT_EXPLOSION_DAMAGE = 0x05, MAGIC_EFFECT_FIRE_AREA = 0x06, MAGIC_EFFECT_YELLOW_RINGS = 0x07, MAGIC_EFFECT_POISON_RINGS = 0x08, MAGIC_EFFECT_HIT_AREA = 0x09, MAGIC_EFFECT_TELEPORT = 0x0A, //10 MAGIC_EFFECT_ENERGY_DAMAGE = 0x0B, //11 MAGIC_EFFECT_WRAPS_BLUE = 0x0C, //12 MAGIC_EFFECT_WRAPS_RED = 0x0D, //13 MAGIC_EFFECT_WRAPS_GREEN = 0x0E, //14 MAGIC_EFFECT_HITBY_FIRE = 0x0F, //15 MAGIC_EFFECT_POISON = 0x10, //16 MAGIC_EFFECT_MORT_AREA = 0x11, //17 MAGIC_EFFECT_SOUND_GREEN = 0x12, //18 MAGIC_EFFECT_SOUND_RED = 0x13, //19 MAGIC_EFFECT_POISON_AREA = 0x14, //20 MAGIC_EFFECT_SOUND_YELLOW = 0x15, //21 MAGIC_EFFECT_SOUND_PURPLE = 0x16, //22 MAGIC_EFFECT_SOUND_BLUE = 0x17, //23 MAGIC_EFFECT_SOUND_WHITE = 0x18, //24 MAGIC_EFFECT_BUBBLES = 0x19, //25 MAGIC_EFFECT_CRAPS = 0x1A, //26 MAGIC_EFFECT_GIFT_WRAPS = 0x1B, //27 MAGIC_EFFECT_FIREWORK_YELLOW = 0x1C, //28 MAGIC_EFFECT_FIREWORK_RED = 0x1D, //29 MAGIC_EFFECT_FIREWORK_BLUE = 0x1E, //30 MAGIC_EFFECT_STUN = 0x1F, //31 MAGIC_EFFECT_SLEEP = 0x20, //32 MAGIC_EFFECT_WATERCREATURE = 0x21, //33 MAGIC_EFFECT_GROUNDSHAKER = 0x22, //34 MAGIC_EFFECT_HEARTS = 0x23, //35 MAGIC_EFFECT_FIREATTACK = 0x24, //36 MAGIC_EFFECT_ENERGY_AREA = 0x25, //37 MAGIC_EFFECT_SMALLCLOUDS = 0x26, //38 MAGIC_EFFECT_HOLYDAMAGE = 0x27, //39 MAGIC_EFFECT_BIGCLOUDS = 0x28, //40 MAGIC_EFFECT_ICEAREA = 0x29, //41 MAGIC_EFFECT_ICETORNADO = 0x2A, //42 MAGIC_EFFECT_ICEATTACK = 0x2B, //43 MAGIC_EFFECT_STONES = 0x2C, //44 MAGIC_EFFECT_SMALLPLANTS = 0x2D, //45 MAGIC_EFFECT_CARNIPHILA = 0x2E, //46 MAGIC_EFFECT_PURPLEENERGY = 0x2F, //47 MAGIC_EFFECT_YELLOWENERGY = 0x30, //48 MAGIC_EFFECT_HOLYAREA = 0x31, //49 MAGIC_EFFECT_BIGPLANTS = 0x32, //50 MAGIC_EFFECT_CAKE = 0x33, //51 MAGIC_EFFECT_GIANTICE = 0x34, //52 MAGIC_EFFECT_WATERSPLASH = 0x35, //53 MAGIC_EFFECT_PLANTATTACK = 0x36, //54 MAGIC_EFFECT_TUTORIALARROW = 0x37, //55 MAGIC_EFFECT_TUTORIALSQUARE = 0x38, //56 MAGIC_EFFECT_MIRRORHORIZONTAL = 0x39, //57 MAGIC_EFFECT_MIRRORVERTICAL = 0x3A, //58 MAGIC_EFFECT_SKULLHORIZONTAL = 0x3B, //59 MAGIC_EFFECT_SKULLVERTICAL = 0x3C, //60 MAGIC_EFFECT_ASSASSIN = 0x3D, //61 MAGIC_EFFECT_STEPSHORIZONTAL = 0x3E, //62 MAGIC_EFFECT_BLOODYSTEPS = 0x3F, //63 MAGIC_EFFECT_STEPSVERTICAL = 0x40, //64 MAGIC_EFFECT_YALAHARIGHOST = 0x41, //65 MAGIC_EFFECT_BATS = 0x42, //66 MAGIC_EFFECT_SMOKE = 0x43, //67 MAGIC_EFFECT_INSECTS = 0x44, //68 MAGIC_EFFECT_LAST = MAGIC_EFFECT_INSECTS, //for internal use, dont send to client MAGIC_EFFECT_NONE = 0xFF, MAGIC_EFFECT_UNKNOWN = 0xFFFF }; Agora basta dar continuidade, configurando novos efeitos, como desejar. Por exemplo, aqui está configurado até o efeito 90 (source de NTO):
     

    enum MagicEffect_t { MAGIC_EFFECT_DRAW_BLOOD = 0x00, MAGIC_EFFECT_LOSE_ENERGY = 0x01, MAGIC_EFFECT_POFF = 0x02, MAGIC_EFFECT_BLOCKHIT = 0x03, MAGIC_EFFECT_EXPLOSION_AREA = 0x04, MAGIC_EFFECT_EXPLOSION_DAMAGE = 0x05, MAGIC_EFFECT_FIRE_AREA = 0x06, MAGIC_EFFECT_YELLOW_RINGS = 0x07, MAGIC_EFFECT_POISON_RINGS = 0x08, MAGIC_EFFECT_HIT_AREA = 0x09, MAGIC_EFFECT_TELEPORT = 0x0A, //10 MAGIC_EFFECT_ENERGY_DAMAGE = 0x0B, //11 MAGIC_EFFECT_WRAPS_BLUE = 0x0C, //12 MAGIC_EFFECT_WRAPS_RED = 0x0D, //13 MAGIC_EFFECT_WRAPS_GREEN = 0x0E, //14 MAGIC_EFFECT_HITBY_FIRE = 0x0F, //15 MAGIC_EFFECT_POISON = 0x10, //16 MAGIC_EFFECT_MORT_AREA = 0x11, //17 MAGIC_EFFECT_SOUND_GREEN = 0x12, //18 MAGIC_EFFECT_SOUND_RED = 0x13, //19 MAGIC_EFFECT_POISON_AREA = 0x14, //20 MAGIC_EFFECT_SOUND_YELLOW = 0x15, //21 MAGIC_EFFECT_SOUND_PURPLE = 0x16, //22 MAGIC_EFFECT_SOUND_BLUE = 0x17, //23 MAGIC_EFFECT_SOUND_WHITE = 0x18, //24 MAGIC_EFFECT_BUBBLES = 0x19, //25 MAGIC_EFFECT_CRAPS = 0x1A, //26 MAGIC_EFFECT_GIFT_WRAPS = 0x1B, //27 MAGIC_EFFECT_FIREWORK_YELLOW = 0x1C, //28 MAGIC_EFFECT_FIREWORK_RED = 0x1D, //29 MAGIC_EFFECT_FIREWORK_BLUE = 0x1E, //30 MAGIC_EFFECT_STUN = 0x1F, //31 MAGIC_EFFECT_SLEEP = 0x20, //32 MAGIC_EFFECT_WATERCREATURE = 0x21, //33 MAGIC_EFFECT_GROUNDSHAKER = 0x22, //34 MAGIC_EFFECT_HEARTS = 0x23, //35 MAGIC_EFFECT_FIREATTACK = 0x24, //36 MAGIC_EFFECT_ENERGY_AREA = 0x25, //37 MAGIC_EFFECT_SMALLCLOUDS = 0x26, //38 MAGIC_EFFECT_HOLYDAMAGE = 0x27, //39 MAGIC_EFFECT_BIGCLOUDS = 0x28, //40 MAGIC_EFFECT_ICEAREA = 0x29, //41 MAGIC_EFFECT_ICETORNADO = 0x2A, //42 MAGIC_EFFECT_ICEATTACK = 0x2B, //43 MAGIC_EFFECT_STONES = 0x2C, //44 MAGIC_EFFECT_SMALLPLANTS = 0x2D, //45 MAGIC_EFFECT_CARNIPHILA = 0x2E, //46 MAGIC_EFFECT_PURPLEENERGY = 0x2F, //47 MAGIC_EFFECT_YELLOWENERGY = 0x30, //48 MAGIC_EFFECT_HOLYAREA = 0x31, //49 MAGIC_EFFECT_BIGPLANTS = 0x32, //50 MAGIC_EFFECT_CAKE = 0x33, //51 MAGIC_EFFECT_GIANTICE = 0x34, //52 MAGIC_EFFECT_WATERSPLASH = 0x35, //53 MAGIC_EFFECT_PLANTATTACK = 0x36, //54 MAGIC_EFFECT_TUTORIALARROW = 0x37, //55 MAGIC_EFFECT_TUTORIALSQUARE = 0x38, //56 MAGIC_EFFECT_MIRRORHORIZONTAL = 0x39, //57 MAGIC_EFFECT_MIRRORVERTICAL = 0x3A, //58 MAGIC_EFFECT_SKULLHORIZONTAL = 0x3B, //59 MAGIC_EFFECT_SKULLVERTICAL = 0x3C, //60 MAGIC_EFFECT_ASSASSIN = 0x3D, //61 MAGIC_EFFECT_STEPSHORIZONTAL = 0x3E, //62 MAGIC_EFFECT_BLOODYSTEPS = 0x3F, //63 MAGIC_EFFECT_STEPSVERTICAL = 0x40, //64 MAGIC_EFFECT_YALAHARIGHOST = 0x41, //65 MAGIC_EFFECT_BATS = 0x42, //66 MAGIC_EFFECT_SMOKE = 0x43, //67 MAGIC_EFFECT_EFEITO69 = 0x44, //69 MAGIC_EFFECT_EFEITO70 = 0x45, //70 MAGIC_EFFECT_EFEITO71 = 0x46, //71 MAGIC_EFFECT_EFEITO72 = 0x47, //72 MAGIC_EFFECT_EFEITO73 = 0x48, //73 MAGIC_EFFECT_EFEITO74 = 0x49, //74 MAGIC_EFFECT_EFEITO75 = 0x50, //75 MAGIC_EFFECT_EFEITO76 = 0x51, //76 MAGIC_EFFECT_EFEITO77 = 0x52, //77 MAGIC_EFFECT_EFEITO78 = 0x53, //78 MAGIC_EFFECT_EFEITO79 = 0x54, //79 MAGIC_EFFECT_EFEITO80 = 0x55, //80 MAGIC_EFFECT_EFEITO81 = 0x56, //81 MAGIC_EFFECT_EFEITO82 = 0x57, //82 MAGIC_EFFECT_EFEITO83 = 0x58, //83 MAGIC_EFFECT_EFEITO84 = 0x59, //84 MAGIC_EFFECT_EFEITO85 = 0x60, //85 MAGIC_EFFECT_EFEITO86 = 0x61, //86 MAGIC_EFFECT_EFEITO87 = 0x62, //87 MAGIC_EFFECT_EFEITO88 = 0x63, //88 MAGIC_EFFECT_EFEITO89 = 0x64, //89 MAGIC_EFFECT_EFEITO90 = 0x65, //90 MAGIC_EFFECT_LAST = MAGIC_EFFECT_EFEITO90, //for internal use, dont send to client MAGIC_EFFECT_NONE = 0xFF, MAGIC_EFFECT_UNKNOWN = 0xFFFF }; Não esqueça de deixar MAGIC_EFFECT_LAST, sempre como sendo o último efeito configurado. Por exemplo, se o meu último efeito configurado é MAGIC_EFFECT_EFEITO71 = 0x46, //71, então, ficará como:
    MAGIC_EFFECT_LAST = MAGIC_EFFECT_EFEITO71, No arquivo tools.cpp, procure por:
    MagicEffectNames magicEffectNames[] = Basta configurar os efeitos novamente, assim como no arquivo anterior (const.h). Ficando assim (no caso, também até o 90):

    MagicEffectNames magicEffectNames[] = { {"redspark", MAGIC_EFFECT_DRAW_BLOOD}, {"bluebubble", MAGIC_EFFECT_LOSE_ENERGY}, {"poff", MAGIC_EFFECT_POFF}, {"yellowspark", MAGIC_EFFECT_BLOCKHIT}, {"explosionarea", MAGIC_EFFECT_EXPLOSION_AREA}, {"explosion", MAGIC_EFFECT_EXPLOSION_DAMAGE}, {"firearea", MAGIC_EFFECT_FIRE_AREA}, {"yellowbubble", MAGIC_EFFECT_YELLOW_RINGS}, {"greenbubble", MAGIC_EFFECT_POISON_RINGS}, {"blackspark", MAGIC_EFFECT_HIT_AREA}, {"teleport", MAGIC_EFFECT_TELEPORT}, {"energy", MAGIC_EFFECT_ENERGY_DAMAGE}, {"blueshimmer", MAGIC_EFFECT_WRAPS_BLUE}, {"redshimmer", MAGIC_EFFECT_WRAPS_RED}, {"greenshimmer", MAGIC_EFFECT_WRAPS_GREEN}, {"fire", MAGIC_EFFECT_HITBY_FIRE}, {"greenspark", MAGIC_EFFECT_POISON}, {"mortarea", MAGIC_EFFECT_MORT_AREA}, {"greennote", MAGIC_EFFECT_SOUND_GREEN}, {"rednote", MAGIC_EFFECT_SOUND_RED}, {"poison", MAGIC_EFFECT_POISON_AREA}, {"yellownote", MAGIC_EFFECT_SOUND_YELLOW}, {"purplenote", MAGIC_EFFECT_SOUND_PURPLE}, {"bluenote", MAGIC_EFFECT_SOUND_BLUE}, {"whitenote", MAGIC_EFFECT_SOUND_WHITE}, {"bubbles", MAGIC_EFFECT_BUBBLES}, {"dice", MAGIC_EFFECT_CRAPS}, {"giftwraps", MAGIC_EFFECT_GIFT_WRAPS}, {"yellowfirework", MAGIC_EFFECT_FIREWORK_YELLOW}, {"redfirework", MAGIC_EFFECT_FIREWORK_RED}, {"bluefirework", MAGIC_EFFECT_FIREWORK_BLUE}, {"stun", MAGIC_EFFECT_STUN}, {"sleep", MAGIC_EFFECT_SLEEP}, {"watercreature", MAGIC_EFFECT_WATERCREATURE}, {"groundshaker", MAGIC_EFFECT_GROUNDSHAKER}, {"hearts", MAGIC_EFFECT_HEARTS}, {"fireattack", MAGIC_EFFECT_FIREATTACK}, {"energyarea", MAGIC_EFFECT_ENERGY_AREA}, {"smallclouds", MAGIC_EFFECT_SMALLCLOUDS}, {"holydamage", MAGIC_EFFECT_HOLYDAMAGE}, {"bigclouds", MAGIC_EFFECT_BIGCLOUDS}, {"icearea", MAGIC_EFFECT_ICEAREA}, {"icetornado", MAGIC_EFFECT_ICETORNADO}, {"iceattack", MAGIC_EFFECT_ICEATTACK}, {"stones", MAGIC_EFFECT_STONES}, {"smallplants", MAGIC_EFFECT_SMALLPLANTS}, {"carniphila", MAGIC_EFFECT_CARNIPHILA}, {"purpleenergy", MAGIC_EFFECT_PURPLEENERGY}, {"yellowenergy", MAGIC_EFFECT_YELLOWENERGY}, {"holyarea", MAGIC_EFFECT_HOLYAREA}, {"bigplants", MAGIC_EFFECT_BIGPLANTS}, {"cake", MAGIC_EFFECT_CAKE}, {"giantice", MAGIC_EFFECT_GIANTICE}, {"watersplash", MAGIC_EFFECT_WATERSPLASH}, {"plantattack", MAGIC_EFFECT_PLANTATTACK}, {"tutorialarrow", MAGIC_EFFECT_TUTORIALARROW}, {"tutorialsquare", MAGIC_EFFECT_TUTORIALSQUARE}, {"mirrorhorizontal", MAGIC_EFFECT_MIRRORHORIZONTAL}, {"mirrorvertical", MAGIC_EFFECT_MIRRORVERTICAL}, {"skullhorizontal", MAGIC_EFFECT_SKULLHORIZONTAL}, {"skullvertical", MAGIC_EFFECT_SKULLVERTICAL}, {"assassin", MAGIC_EFFECT_ASSASSIN}, {"stepshorizontal", MAGIC_EFFECT_STEPSHORIZONTAL}, {"bloodysteps", MAGIC_EFFECT_BLOODYSTEPS}, {"stepsvertical", MAGIC_EFFECT_STEPSVERTICAL}, {"yalaharighost", MAGIC_EFFECT_YALAHARIGHOST}, {"bats", MAGIC_EFFECT_BATS}, {"smoke", MAGIC_EFFECT_SMOKE}, {"efeito69", MAGIC_EFFECT_EFEITO69}, {"efeito70", MAGIC_EFFECT_EFEITO70}, {"efeito71", MAGIC_EFFECT_EFEITO71}, {"efeito72", MAGIC_EFFECT_EFEITO72}, {"efeito73", MAGIC_EFFECT_EFEITO73}, {"efeito74", MAGIC_EFFECT_EFEITO74}, {"efeito75", MAGIC_EFFECT_EFEITO75}, {"efeito76", MAGIC_EFFECT_EFEITO76}, {"efeito77", MAGIC_EFFECT_EFEITO77}, {"efeito78", MAGIC_EFFECT_EFEITO78}, {"efeito79", MAGIC_EFFECT_EFEITO79}, {"efeito80", MAGIC_EFFECT_EFEITO80}, {"efeito81", MAGIC_EFFECT_EFEITO81}, {"efeito82", MAGIC_EFFECT_EFEITO82}, {"efeito83", MAGIC_EFFECT_EFEITO83}, {"efeito84", MAGIC_EFFECT_EFEITO84}, {"efeito85", MAGIC_EFFECT_EFEITO85}, {"efeito86", MAGIC_EFFECT_EFEITO86}, {"efeito87", MAGIC_EFFECT_EFEITO87}, {"efeito88", MAGIC_EFFECT_EFEITO88}, {"efeito89", MAGIC_EFFECT_EFEITO89}, {"efeito90", MAGIC_EFFECT_EFEITO90} }; Não esqueça de configurar exatamente como em const.h. Por exemplo, se no arquivo anterior o efeito 71 está configurado como:
    MAGIC_EFFECT_EFEITO71 = 0x46, //71 Então, você terá que configurar o mesmo efeito com os mesmos caracteres do nome desse efeito em tools.cpp (no código, digo configurar os caracteres exatamente iguais aos do arquivo anterior, após a vírgula >):
    {"efeito71", MAGIC_EFFECT_EFEITO71}, Compile e adicione o executável do distro à seu servidor.
     
    Vamos a configuração no seu servidor. Vá até o diretório da pasta lib (data/lib) e abra o arquivo 000-constant.lua. Nele, procure por:
    CONST_ME_ E então configure, logo após o último efeito (no caso, 68 seria: CONST_ME_INSECTS = 68), todos os efeitos com os mesmos caracteres dos quais você adicionou na source em const.h e tools.cpp. Se você configurou por exemplo, até o efeito número 80 nos arquivos anteriores, então no script da lib ficaria dessa forma:
    CONST_ME_DRAWBLOOD = 0 CONST_ME_LOSEENERGY = 1 CONST_ME_POFF = 2 CONST_ME_BLOCKHIT = 3 CONST_ME_EXPLOSIONAREA = 4 CONST_ME_EXPLOSIONHIT = 5 CONST_ME_FIREAREA = 6 CONST_ME_YELLOW_RINGS = 7 CONST_ME_GREEN_RINGS = 8 CONST_ME_HITAREA = 9 CONST_ME_TELEPORT = 10 CONST_ME_ENERGYHIT = 11 CONST_ME_MAGIC_BLUE = 12 CONST_ME_MAGIC_RED = 13 CONST_ME_MAGIC_GREEN = 14 CONST_ME_HITBYFIRE = 15 CONST_ME_HITBYPOISON = 16 CONST_ME_MORTAREA = 17 CONST_ME_SOUND_GREEN = 18 CONST_ME_SOUND_RED = 19 CONST_ME_POISONAREA = 20 CONST_ME_SOUND_YELLOW = 21 CONST_ME_SOUND_PURPLE = 22 CONST_ME_SOUND_BLUE = 23 CONST_ME_SOUND_WHITE = 24 CONST_ME_BUBBLES = 25 CONST_ME_CRAPS = 26 CONST_ME_GIFT_WRAPS = 27 CONST_ME_FIREWORK_YELLOW = 28 CONST_ME_FIREWORK_RED = 29 CONST_ME_FIREWORK_BLUE = 30 CONST_ME_STUN = 31 CONST_ME_SLEEP = 32 CONST_ME_WATERCREATURE = 33 CONST_ME_GROUNDSHAKER = 34 CONST_ME_HEARTS = 35 CONST_ME_FIREATTACK = 36 CONST_ME_ENERGYAREA = 37 CONST_ME_SMALLCLOUDS = 38 CONST_ME_HOLYDAMAGE = 39 CONST_ME_BIGCLOUDS = 40 CONST_ME_ICEAREA = 41 CONST_ME_ICETORNADO = 42 CONST_ME_ICEATTACK = 43 CONST_ME_STONES = 44 CONST_ME_SMALLPLANTS = 45 CONST_ME_CARNIPHILA = 46 CONST_ME_PURPLEENERGY = 47 CONST_ME_YELLOWENERGY = 48 CONST_ME_HOLYAREA = 49 CONST_ME_BIGPLANTS = 50 CONST_ME_CAKE = 51 CONST_ME_GIANTICE = 52 CONST_ME_WATERSPLASH = 53 CONST_ME_PLANTATTACK = 54 CONST_ME_TUTORIALARROW = 55 CONST_ME_TUTORIALSQUARE = 56 CONST_ME_MIRRORHORIZONTAL = 57 CONST_ME_MIRRORVERTICAL = 58 CONST_ME_SKULLHORIZONTAL = 59 CONST_ME_SKULLVERTICAL = 60 CONST_ME_ASSASSIN = 61 CONST_ME_STEPSHORIZONTAL = 62 CONST_ME_BLOODYSTEPS = 63 CONST_ME_STEPSVERTICAL = 64 CONST_ME_YALAHARIGHOST = 65 CONST_ME_BATS = 66 CONST_ME_SMOKE = 67 CONST_ME_INSECTS = 68 CONST_ME_EFEITO69 = 69 CONST_ME_EFEITO70 = 70 CONST_ME_EFEITO71 = 71 CONST_ME_EFEITO72 = 72 CONST_ME_EFEITO73 = 73 CONST_ME_EFEITO74 = 74 CONST_ME_EFEITO75 = 75 CONST_ME_EFEITO76 = 76 CONST_ME_EFEITO77 = 77 CONST_ME_EFEITO78 = 78 CONST_ME_EFEITO79 = 79 CONST_ME_EFEITO80 = 80 CONST_ME_EFEITO81 = 81 CONST_ME_EFEITO82 = 82 CONST_ME_EFEITO83 = 83 CONST_ME_EFEITO84 = 84 CONST_ME_EFEITO85 = 85 CONST_ME_EFEITO86 = 86 CONST_ME_EFEITO87 = 87 CONST_ME_EFEITO88 = 88 CONST_ME_EFEITO89 = 89 CONST_ME_EFEITO90 = 90 CONST_ME_NONE = 255 CONST_ME_LAST = CONST_ME_EFEITO90 Pronto novos efeitos adicionados.
     
    Creditos: Bizzle
     
     
    Espero que o tutorial seja de utilidade.
    Att~~ Krono
  18. Upvote
    narutomaniacos deu reputação a samlecter em [Encerrado] Como crio uma stone de evolução   
    Usa PDA sem level? caso a resposta seja sim, siga os passos:
     
     
    Vá em data\lib\some functions
     
    Procure por function doConvertStoneIdToString ou pesquise o nome de uma stone, exemplo: Water Stone
     
    vai encontrar uma "lista"
    function doConvertStoneIdToString(stoneID) local t = { [11453] = "Heart Stone", [11441] = "Leaf Stone", [11442] = "Water Stone", [11443] = "Venom Stone", ...
     
    Copie um dos exemplos e edite assim:
     
    Mude 11442 para o ID da Stone que quer adicionar
    Mude Water Stone para o nome da Stone
     
     
    Feito isso, vá em data\lib\configuration
     
    Procure por algo parecido com isso:
    leaf = 11441 grass = 11441 water = 11442 venom = 11443 thunder = 11444 rock = 11445 punch = 11446 fire = 11447 coccon = 11448 crystal = 11449 dark = 11450 earth = 11451 enigma = 11452 heart = 11453 ice = 11454 boostStone = 12618 metal = 12232 ancient = 12244 Aqui você não pode dar espaço, digamos que vá adicionar uma stone chamada Porra Loca aqui você deixa assim:
     
    PorraLoca = 12244 -- Troque 12244 pelo ID da stone que está adicionando
     
    ou
     
    porraloca = 12244 -- Troque 12244 pelo ID da stone que está adicionando
     
     
    Depois, ainda em configurations, você copia a evolução de um pokemon, edita os nomes, o id da stone, exemplo:
    ["Chikorita"] = {level = 40, evolution = "Bayleef", count = 1, stoneid = 11441, stoneid2 = 0}, ["Bayleef"] = {level = 85, evolution = "Meganium", count = 2, stoneid = 11441, stoneid2 = 0}, ["Cyndaquil"] = {level = 40, evolution = "Quilava", count = 1, stoneid = 11447, stoneid2 = 0}, Copia um desses e edita, não esquece da virgula no final. Como editar:
     
    ["Cyndaquil] = {level = 40, evolution = "Quilava", count = 1, stoneid = 11447, stoneid2 = 0},
     
    Substitua Cyndaquil pelo pokemon que você quer que evoluar
     
    Substitua Quilava para o pokemon em que irá evoluir
    Substitua 11447 pelo ID da Stone criada
     
    ...
     
    Depois, ultimo passo, vá em data\actions\actions.xml
     
    Procure por algo parecido com isso:
    -- PEDRAS DE EVO <action itemid="11441-11454;12232;12242;12244;12417;12419;12401-12414;14632" event="script" value="evolution.lua" allowfaruse="1"/> Depois do ultimo número, você coloca um ";" e id da stone, exemplo de como ficaria, supondo que o ID da sua stone seja 14444
    -- PEDRAS DE EVO <action itemid="11441-11454;12232;12242;12244;12417;12419;12401-12414;14632;14444" event="script" value="evolution.lua" allowfaruse="1"/>  
     
     
  19. Upvote
    narutomaniacos deu reputação a Drakopoulos em [DxP] Exclusivo Poketibia OpenSource+Cliente+Site+DB   
    N lembro quem foi que falou da speed dos pokemons, mas estava olhando aqui e está funcionando da seguinte maneira..
     No lib\112 - pokemonStatus.lua em agility =  é a velocidade dos pokemons wilds (selvagens)
    e em monster\pokes, na XML do pokemon terá speed= é a velocidade dos pokemons summons (dos players).
  20. Upvote
    narutomaniacos deu reputação a Drakopoulos em Erro catch   
    Creio estar faltando a function isShinyName, vá em some functions.lua (lib) e adicione ela..
    function isShinyName(name) return tostring(name) and string.find(doCorrectString(name), "Shiny")end
     
  21. Upvote
    narutomaniacos deu reputação a VictorTasquin em Spell de summon   
    Ta ai o script com mensagem @narutomaniacos
     
    Agoira exaustion, você vai no Spells XML, procura pela spell, e modifica o exaustion. Caso a flag exaustion não exista, insira:
    Caso de algum erro, poste que lhe ajudarei.
  22. Upvote
    narutomaniacos recebeu reputação de williamserravalle em Skills stages   
    Vi umas pessoas querendo esse script então como não achei no forum resolvi postar..
    serve para regular os rates do seu server, exemplo: do level 30 até o 49 o Rate ml(dificuldade para UPAR) é 1
     
    primeiro vá em config.lua procure por Rates em rateSkill deixe 1
    Em creaturescript/scripts/skills (caso não tenha pasta skills crie)
     
    copie e cole qualquer script, então o renomeie para "stagesconfig" e cole isso dentro:
     
     
     
    Depois, copie e cole qualquer script, então o renomeie para "skillstageslogin" e cole isso dentro:
     
     
     
    Depois, copie e cole qualquer script, então o renomeie para "skillstagesadvance" e cole isso dentro:
     
     
     
    Depois vá em login.lua e registre as tags:
    registerCreatureEvent(cid, "SkillStagesLogin") registerCreatureEvent(cid, "SkillStagesAdvance") e então em creaturescripts.xml: <event type="login" name="SkillStagesLogin" event="script" value="skills/skillstageslogin.lua" /> <event type="advance" name="SkillStagesAdvance" event="script" value="skills/skillstagesadvance.lua" />  
    Para configurar é simples, basta ir em stagesconfig: por exemplo no fist fight
    {0,3},{30,2} = no level 0 o rate skill sera 3, isso só ira mudar no level 30 que o rate sera 2, configure todas as skills ao seu gosto!
    OBS: Testado em tfs 0.3.6(8.60)
    Creditos: Autor desconhecido(caso você seja o criador do escript informe e colocarei os creditos), eu pelo tópico.
    Espero ter ajudado.
  23. Upvote
    narutomaniacos recebeu reputação de danrlei5 em Skills stages   
    Vi umas pessoas querendo esse script então como não achei no forum resolvi postar..
    serve para regular os rates do seu server, exemplo: do level 30 até o 49 o Rate ml(dificuldade para UPAR) é 1
     
    primeiro vá em config.lua procure por Rates em rateSkill deixe 1
    Em creaturescript/scripts/skills (caso não tenha pasta skills crie)
     
    copie e cole qualquer script, então o renomeie para "stagesconfig" e cole isso dentro:
     
     
     
    Depois, copie e cole qualquer script, então o renomeie para "skillstageslogin" e cole isso dentro:
     
     
     
    Depois, copie e cole qualquer script, então o renomeie para "skillstagesadvance" e cole isso dentro:
     
     
     
    Depois vá em login.lua e registre as tags:
    registerCreatureEvent(cid, "SkillStagesLogin") registerCreatureEvent(cid, "SkillStagesAdvance") e então em creaturescripts.xml: <event type="login" name="SkillStagesLogin" event="script" value="skills/skillstageslogin.lua" /> <event type="advance" name="SkillStagesAdvance" event="script" value="skills/skillstagesadvance.lua" />  
    Para configurar é simples, basta ir em stagesconfig: por exemplo no fist fight
    {0,3},{30,2} = no level 0 o rate skill sera 3, isso só ira mudar no level 30 que o rate sera 2, configure todas as skills ao seu gosto!
    OBS: Testado em tfs 0.3.6(8.60)
    Creditos: Autor desconhecido(caso você seja o criador do escript informe e colocarei os creditos), eu pelo tópico.
    Espero ter ajudado.
  24. Upvote
    narutomaniacos deu reputação a Skulls em [OTC] Adaptando seu OTC para aceitar a função doCreatureSetHideHealth   
    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,
  25. Upvote
    narutomaniacos recebeu reputação de GGgames em ML upando igual em todos os niveis   
    Em creaturescript/scripts/skills (caso não tenha pasta skills crie)
     
    copie e cole qualquer script, então o renomeie para "stagesconfig" e cole isso dentro:
     
     
     
    Depois, copie e cole qualquer script, então o renomeie para "skillstageslogin" e cole isso dentro:
     
     
     
    Depois, copie e cole qualquer script, então o renomeie para "skillstagesadvance" e cole isso dentro:
     
     
     
    Depois vá em login.lua e registre as tags:
    registerCreatureEvent(cid, "SkillStagesLogin") registerCreatureEvent(cid, "SkillStagesAdvance") e então em creaturescripts.xml: <event type="login" name="SkillStagesLogin" event="script" value="skills/skillstageslogin.lua" /> <event type="advance" name="SkillStagesAdvance" event="script" value="skills/skillstagesadvance.lua" />  
    o script é autoexplicativo: {30,3} = no level 30 o rate skill sera 3, configure todas as skills do seu server do jeito que desejar!
    Espero ter ajudado.
  • Quem Está Navegando   0 membros estão online

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