Ir para conteúdo

Líderes

Conteúdo Popular

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

  1. Benny

    [X] Backgrounds

    Informações : Tamanho : 30MB Quantidade : 118 Backgrounds Formato : RAR/JPG/PNG Preview : IMGUR Download : Mediafire Abraços =)
    4 pontos
  2. mkbrabsolute

    Auto Re-Mount TFS 1.0/1.1/1.2

    Olá Pessoal do XTIBIA, vejo que vários servidores estão procurando o sistema de auto remount. O Sistema de auto re-mount é: quando o player está com montaria, ao entrar em uma área PZ o player sai da montaria, e então ao voltar para uma área normal o player irá automaticamente voltar a montaria em que estava. O Nome já diz tudo, auto re-mount! Vamos ao tutorial. Abra sua pasta source, onde fica os arquivos .cpp, e .h e procure pelo arquivo player.cpp Ao abri-lo, localize: lastWalkthroughAttempt = 0; lastToggleMount = 0; Abaixo de lastToggleMount = 0; pule uma linha e adicione: reMount = false; Logo após ainda em player.cpp procure por: if (!group->access && isMounted()) { dismount(); g_game.internalCreatureChangeOutfit(this, defaultOutfit); E então abaixo de g_game.internalCreatureChangeOutfit(this, defaultOutfit);, adicione: reMount = true; } } else { if (reMount) { toggleMount(true); reMount = false; Ainda em player.cpp procure por: if ((OTSYS_TIME() - lastToggleMount) < 3000) { SUBSTITUA POR: if ((OTSYS_TIME() - lastToggleMount) < 3000 && !reMount) { Salve e feche. Agora na mesma pasta abra o arquivo player.h Procure por: bool inMarket; E logo abaixo adicione: bool reMount; Salve e feche. Pronto, recompile suas sources e seja feliz Créditos: Printer Absolute Nós vemos em breve
    2 pontos
  3. Masterlokinhon

    Stream Live tfs 1.0 e 1.2

    adoration você alterou alguma coisa no script streamloadplayer.lua ? se vocÊ poder postar o script pra eu dar uma olhada seria melhor. Benny Brigado adoration cole isso no streamloadplayer.lua
    2 pontos
  4. Informações Suport: (MYSQL E SQL) Base: (PGALAXY) - GabrielTXU Executavel (Distro): TFS 0.3.6 Versao: 8.54 + IP Changer Mapa Proprio (120 Hunts + 5 Quests) Servidor Estavel Uptime de (580 hrs) Testado Player EXP: 10x Pokemon EXP: 15x Catch System Inovado (Rate Por Skill "Catching" + Rate normal) Catch Esta Balanceado Catch Channel System (Veja todos os Catch do Servidor Pelo Canal Catch-Channel) Bonus Level System (Marca na Ball a quantia de Level que voce Upou Nesse Pokemon, Assim mudando o Comercio de Pokemons) Pokemon Level Max : 300 Pokemon Boost Max FREE: +50 Pokemon Boost Max VIP: +80 + (Bonus Boost) Novo Balanceamentos dos Pokemons Goback Surf Fly 6 Pokemons (na bag) Dive Order Pokedex Respaw de Shiny Aleatorio (1%) Configuraçoes 100% do PokeDashAdvanced na Lib/Configuration.lua e etc... Passive (Alguns Shinys nao apareçem o Passivo) Torneio Win e Lose Score PVP e PVP Team Teleport Potions e Revives Apricorns e Vitaminas Nuse Joy Cassino Invasao automatica (09:00 as 21:00) Npcs (Aura,mark,Pokemon Collector,lock ball e etc.....) Aura Task System (NPC MEGA TASK) 7 BALL Clan Look Score Rare Candy Evoluçao (Automatica e Por Stones) 90% Automatico e 10 % Stones Fome e Sentimento 1-2 Geraçao Full 3-6 Geraçao Imcompleta Shinys (1-2 Geraçao Full) Shinys (3-6 Geraçao Imcompleta) Erros [14/12/2014 18:12:37] [Error - CreatureScript Interface] [14/12/2014 18:12:37] data/creaturescripts/scripts/atk.lua:onAttack [14/12/2014 18:12:37] Description: [14/12/2014 18:12:37] (luaDoMonsterSetTarget) Monster not found [Esse Erro acontece na arena pvp e nao sei como arrumar, se tirar esse script buga o ataque dos pokemons "Wild" eles começam a atacar o jogador ao inves de Seu Pokemon] Alguns Erros vão surgir durante o Jogo: Erro no Exp.lua Erro Na hora de Evoluir (Automatico) erro de MaxHealth, algo assim Bugs gerais Os Pokemons Uniques Fazem Crashar o Servidor (Se voce pegar uma Pokeball Unique e jogar no Teleport, o Servidor Crasha) Os Pokemon Lock Fazem Crashar o Servidor (Se voce pegar uma Pokeball Lock e jogar no Teleport, o Servidor Crashar) Pode ser que + Alguns Atributos do PDA fazem Crashar o Servidor e estamos a Procura Disso Retirem o NPC SR.SPLIT (Segundo Andar do CP) Prints Downloads Server + Client Sources Utilitário: Map Padventures S/Respawns Scans Server + Client Sources Créditos Aberos Gristony GabrielTXU NextBR Valaquinhas Sukito TFS Team
    1 ponto
  5. Ola amigos do XTIBIA, estou trazendo aqui para vocês um TFS 0.4 8.6 com cast system e war system feita pelo LuanLuciano! lembrando que foi feita por ele não por mim, só estou disponibilizando aqui para vocês! TFS 0.4 DEV rev 3777 (by TFS Team) Anti-Divulgação (.servegame, .no-ip, .net, .com, .org, .pl, .biz, .br, .sytes, .info) War System Cast System (by Summ) Retirado bugs de anti-push .. Retirado bugs de elfbot ... Retirado erro de não aceitar outros items ... Retirado erro de Malformed File ... Add creatureevent onMoveItem() ... Add função getCreaturePathTo () ... E vários outros! -D__WAR_SYSTEM__ -D__CONSOLE__ Datapack Sources DEV-CPP
    1 ponto
  6. LuckOake

    Caixa Eletrônico

    Oooi povo Ékztibiano Eu (novamente) trouxe outro sistema pra vocês. Infelizmente quase ninguém posta conteúdo útil atualmente, então tô tentando erguer essa seção novamente, tanto é que vira e mexe eu posto sistemas aqui, e daqui a uns dias eu vou postar outros que tô fazendo. Bom, comecemos. O que é: Um sistema em que você insere um Cartão de Crédito em um Caixa Eletrônico para executar ações iguais às de um banco de verdade. Script: Configurando: Imagens: Observações: - Para usar o caixa eletrônico, você tem que dar Use With nele com o cartão. Créditos: LuckOake -- Pelo sistema
    1 ponto
  7. Tópico O Objetivo do tópico é destacar os mais usados Makers para seu servidor, e não os melhores, abaixo você pode encontrar o download de todos e suas prévias.. Conteúdo Gesior Clique para Baixar ModernACC ( Imagem ilustrativa ) Clique para Baixar DevACC Site Original Clique para Baixar ZnoteACC Clique para Baixar NicawACC Clique para Baixar Créditos Mudrock pela Lista Criadores pelos Makers
    1 ponto
  8. Masterlokinhon

    Stream Live tfs 1.0 e 1.2

    Olá Xtibianos, Vim trazer sistema de stream para seu site. faça o download dos arquivos: sql stream outfit imagens streamglobalevents Como funciona: Quando o server tiver abrindo ele carrega o mapa e envia para o mysql isso da um delay de 20 segundos +- e ele fica enviando informação da posição dos players para o mysql a cada 1 segundo Adicionar: executes os arquivos na pasta sql no seu banco de dados do seu servidor do tibia extraia a pasta stream para o seu site o arquivo loadplayer.data.php coloque na pasta principal do seu site extraia as pastas outfit e imagens para dentro da pasta stream que você extraiu no seu site extraia a pasta streamglobalevents dentro da pasta globalevents/scripts do seu servidor caso queira usar no tfs 1.2 edite streamloadplayer.lua por esse adicione as seguintes tags no globalevents.xml dentro da pasta globalevents <globalevent name="streamLoadMap" type="startup" script="streamloadmap.lua"/> <globalevent name="streamLoadPlayer" interval="1000" script="streamloadplayer.lua"/> Como usar: configure os arquivos dentro da pasta globalevents aonde estraiu streamloadmap.lua e streamloadplayer.lua local stream = { pos = {x = 1006, y = 993, z = 5}, -- A POSIÇÃO DO CENTRO DA STREAM posmax = {x = 20, y = 16} -- NÃO MUDE NADA }configure o arquivo mysql.php com as informação do seu MYSQL $mysql = mysql_connect("HOST", "USER", "PASSWORD"); if (!$mysql) die ("<h1>ERROR: mysql</h1>"); $db = mysql_select_db("DB"); para adicionar o stream para seu site só colocar include('stream/index.php'); Correções:[21/07/2015] correção de imagens no site [21/07/2015] correção dos nomes no site [21/07/2015] melhoramento no carregamento da página [21/07/2015] bug de carregamento de player no tfs 1.2 [21/07/2015] tfs 1.2 mostra summon e criaturas Imagens: https://youtu.be/DtzIdveeA_U Créditos: EU que fiz o script todo Kamil Karkus por fornecer o outfit.php e as imagens DkAngel - Pelo video
    1 ponto
  9. Furabio

    BaikWarks

    Créditos Dieguiin XP Marcos Vinicius Novo Baiak -VISUAL DO TEMPLO E DA CITY PRINCIPAL EDITADO POR MIM -ARRUMADOS OS BUGS DA DISTRO--- -CITYS TENEBRA,VENON,EDRON COM NOS HUNTS -Castle 24HRS (Unico) com aviso de invasores -Paladin arrumado, agóra pode healar com potion e atacar ao mesmo tempo -Utito Tempo San Arrumado Agóra não da mais Exausted em outras magias -Dodge System -Critical System -Itens Donates para vender no Site ou no Jogo -Itens VIP a mostra no templo -Todos itens DONATES dando as skills normalmente -Vários Teleports -Novas Hunts -Look Frags -Potions Editadas -War System -Muitas quests -City editada para um PvP muito melhor -Arena PVP -Fast Attack ROX Para melhor PvP -Quest de set free para Pally/Kinas -Quest de set free para Mages -quest para armas editadas -Treiners com novos visual -30% a mais de experiencia para players donates -10% a mais de experiencia para guild que domina o Castle 24HRS E muito mais! Comandos principais: !dodoge !critical !stamina !aol !bless !notice. Imagens Teleports Edron Venon Tenebra Templo Download:: http://www.4shared.c...BaiakWars.html? Virus ToTal:: https://www.virustot...is/1419116789/
    1 ponto
  10. Bruno

    Wand of Elements

    Introdução: É uma wand que ataca vários elementos aleatoriamente, porém não somente isso, você pode travar um único elemento através de uma talkaction. OBS: Testado em tfs 0.4 Instalação: Vá até data/weapons/scripts e crie um arquivo chamando wandelementos.lua e coloque o seguinte conteúdo: local min, max = 1700,1900 --Ataque mínino e ataque máximo local w = { [1] = {ef = 36, sh = 3, dmg = COMBAT_FIREDAMAGE}, [2] = {ef = 42, sh = 28, dmg = COMBAT_ICEDAMAGE}, [3] = {ef = 46, sh = 38, dmg = COMBAT_POISONDAMAGE}, [4] = {ef = 17, sh = 31, dmg = COMBAT_DEATHDAMAGE}, [5] = {ef = 47, sh = 35, dmg = COMBAT_ENERGYDAMAGE}, [6] = {ef = 36, sh = 31, dmg = COMBAT_PHYSICALDAMAGE}, [7] = {ef = 49, sh = 37, dmg = COMBAT_HOLYDAMAGE} } function onUseWeapon(cid, var) local effect = getPlayerStorageValue(cid, 4561) local target = getCreatureTarget(cid) if target ~= 0 then local wx = w[effect] or w[math.random(#w)] doSendDistanceShoot(getThingPos(cid), getThingPos(target), wx.sh) addEvent(doAreaCombatHealth, 100, cid, wx.dmg, getThingPos(target), 0, -min, -max, wx.ef) end return true end Altere o min e max de acordo com sua necessidade. Agora vá em data/weapons/weapons.xml e coloque o seguinte conteúdo: <wand id="7424" level="100" mana="30" event="script" value="wandelementos.lua"> <vocation id="1"/> <vocation id="2"/> <vocation id="5" showInDescription="0"/> <vocation id="6" showInDescription="0"/> </wand> Altere o id, level e mana de acordo com sua necessidade. Agora vamos configurar a talkaction que troca os elementos. Vá até data/talkactions/scripts e crie um arquivo chamando elementos.lua e coloque o seguinte conteúdo: local config = { wand_id = 7424, --ID da wand types = { ["all"] = -1, --Ataca os elementos aleatoriamente ["fire"] = 1, ["ice"] = 2, ["poison"] = 3, ["death"] = 4, ["energy"] = 5, ["physical"] = 6, ["holy"] = 7 } } function onSay(cid, words, param) local wand_left = getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid local wand_right = getPlayerSlotItem(cid, CONST_SLOT_RIGHT).itemid if wand_left ~= config.wand_id and wand_right ~= config.wand_id then doPlayerSendCancel(cid, "Voce deve estar equipado com uma ".. getItemNameById(config.wand_id) .." para usar este comando.") return true end if config.types[param] then setPlayerStorageValue(cid, 4561, config.types[param]) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Sua wand ira atacar ".. param .. ".") else local str = "" for i, _ in pairs(config.types) do str = str .. ", ".. i end doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Os elementos disponiveis sao: ".. string.sub(str, 3, #str) ..".") end return true end Altere o wand_id conforme configurado em weapons. Agora vá em data/talkactions/talkactions.xml e coloque o seguinte conteúdo: <talkaction words="!elemento;/elemento" event="script" value="elementos.lua"/> Exemplo de funcionamento: Agradeço MaXwEllDeN pela ajuda.
    1 ponto
  11. Bruno

    Auto Re-Mount TFS 1.0/1.1/1.2

    Vou avisar apenas 1 (UMA) vez, Qualquer assunto tratado aqui deverá ser sobre o conteúdo do tópico. Não irei mais aturar discussões. Sobre o Absolute, qualquer um que tiver rincha com ele, não utilize de conteúdos ou o próprio fórum para tentar falar algo sobre, qualquer membro que poste conteúdo e seja participativo será bem-vindo. Ninguém é obrigado a postar, como também ninguém é obrigado a comentar, se for para comentar asneiras, pense bem antes de fazê-la. Att, Bruno Minervino
    1 ponto
  12. Para agregar esto tendras que ver con un webmaster porque no sehacer eso. Acerca del la storage, por lo que sé no la usa, es directa en el db/bd. sorry pero no puedo ayudar mucho si estoy equivocado y alguien lo sabes sientase libre para corregirme. agradecido. Se alguém que por acaso ler e souber informar como fazer será bom se respondesse
    1 ponto
  13. Luga03

    Pokemon Dash v6 reupload by Valakinhas

    Man com a source vc consegue isto, ele aparece como estive-se atacando, mas não está dando dano né, toma ae o link do tutorial de como fazer isto pela source Criaturas Passívas: http://www.tibiaking.com/forum/topic/53480-criaturas-passivas/ Monstro Focando Summon antes do Player: http://www.tibiaking.com/forum/topic/53496-monstros-focando-summons/ vai precisar dos dois! porque oque está dando este problema ai, depende do de criaturas passívas!
    1 ponto
  14. Tópico movido para dúvidas / pedidos resolvidos.
    1 ponto
  15. Dj Sky

    Trabalhos

    A feita a mão está sensacional. As 2 outras, falta qualidade e sintonia. Tente seguir sempre o "flow" do trabalho que você quer apresentar.
    1 ponto
  16. Benny

    Stream Live tfs 1.0 e 1.2

    Ótimo sistema, obrigado por compartilhar =) E obrigado pelo suporte ao nosso amigo. Parabéns, @Masterlokinhon
    1 ponto
  17. Benny

    vip hp e mp extra

    Hm. Você basicamente vai adicionar 30% de HP/Mana ganha por level em tal vocação. Exemplo : gainhp="5" gainmana="30" 30% de 5 = 1.5;30% de 30 = 9. Sendo assim : 5 + (30% de 5 (1.5)); 30 + (30% de 30(9)). Ficando : gainhp="6.5" gainmana="39" Lembrando que eu sou do design, não tenho nada com Scripting haha. Se estiver errado, peço perdão. Abraços, Benny
    1 ponto
  18. hiaben27

    Erro no site

    Na pasta do seu site, entre na pasta config e abra o config.ini em blocas de notas, deve estar mais ou menos assim: install = "no" server_path = "C:\Users\SEUNOME\Desktop\diretorio\" signatures = "1" onde está escrito em azul você deve colocar a pasta do seu otserver, ou seja, onde o config.lua do seu servidor está localizado. Espero ter ajudado.
    1 ponto
  19. Dá esse erro aqui no distrô: RESOLVIDO! SCRIPT NO POST!
    1 ponto
  20. @, Tente assim:
    1 ponto
  21. Benny

    Trabalhos

    Podia ter dado um tratamento melhor na render, da primeira imagem. Sobre a segunda, achei o background bem vazio. Mas são ótimos trabalhos, parabéns!
    1 ponto
  22. delkawy

    Primeira Sprite - Bulbasaur

    Existe um servidor que provavelmente será um sucesso, está em desenvolvimento, o pessoal está gostando dos pokemon em perspectiva. Poke Universe Online, caso queira conhecer. @Topic Obrigado novamente. Tenho uma pergunta, acompanharia uma sequência de sprites? De pokemon.
    1 ponto
  23. Masterlokinhon

    Stream Live tfs 1.0 e 1.2

    Vou ajudar ate conseguirmos resolver o problema Se tiver como passar skype e melhor para resolver o problema, quando for resolvido eu posto aqui no forum a solução caso alguém esteja com o mesmo problema. pode mandar skype por aqui ou por pm
    1 ponto
  24. Masterlokinhon

    Stream Live tfs 1.0 e 1.2

    o seu servidor tem combat.lua próximo ao global.lua na pasta raiz data ? se não crie um arquivo lua e coloque isso e coloque no inicio do global.lua dofile('data/compat.lua') e pode apagar aquilo do streamloadplayer.lua function isPlayer(cid) return Player(cid) ~= nil end function isNpc(cid) return Npc(cid) ~= nil end
    1 ponto
  25. @@blaster_kid, Em data/creaturescripts/creaturescripts.xml adicione a seguinte tag: <event type="kill" name="AwardKill" script="awardkill.lua"/> Agora em data/creaturescripts/scripts crie um arquivo chamado awardkill.lua com o seguinte conteúdo: local config = { ["Demon"] = { storage = 10530, chance = 30, items = { {id = 2160, count = 5}, {id = 2400, count = 1} } }, ["Dragon"] = { storage = 10531, chance = 60, items = { {id = 2160, count = 5}, {id = 2400, count = 1} } }, ["Hero"] = { storage = 10532, chance = 15, items = { {id = 2160, count = 5}, {id = 2400, count = 1} } } } function onKill(cid, target) if isPlayer(target) then return true end local criatura = getCreatureName(target):lower() for i, j in pairs(config) do local nome = i:lower() if nome == criatura then local str = getPlayerStorageValue(cid, j.storage) if str < 10 then local rand = math.random(1, 100) if rand <= j.chance then local item = math.random(1, #j.items) doPlayerAddItem(cid, j.items[item].id, j.items[item].count) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Parabens! Voce ganhou um premio por matar ' .. criatura .. '.') setPlayerStorageValue(cid, j.storage, str < 0 and 1 or str + 1) end end end end return true end Ainda em data/creaturescripts/scripts, abra o arquivo login.lua e adicione o seguinte conteúdo antes do último return true: registerCreatureEvent(cid, "AwardKill") Explicação: ["Demon"] -- nome da criatura storage = 10530 -- uma storage livre para fazer a contagem para que o player receba apenas 10 vezes a recompensa chance = 30 -- change em porcentagem para que ele receba o item items = { {id = 2160, count = 5}, {id = 2400, count = 1} } Aqui é uma tabela, onde cada linha será um item aleatório que ele poderá receber, basta colocar o id e a quantidade. Att.
    1 ponto
  26. Ultima atualização dessa versão saindo essa semana, próxima atualização já estará na versão 1.2.
    1 ponto
  27. Killua

    Anti Nuke System

    Scripts com callback onLogin não precisam ser registrados no login.lua...
    1 ponto
  28. brun123

    Sistema Npc Gym Para Pokemon

    • nome: Sistema de Ginásio / GYM para pokemon. • autor: brun123 (mastercraft) • versão testada: TFS 0.36 pl 1 (8.54) Detalhes: Como cada servidor de pokemon é bem diferente, acredito que muitos erros vão aparecer devido a diferença de IDs das pokebolas por exemplo, mas vou ajudar no que posso. Primeiro passo: crie um arquivo com o nome gymlib.lua na pasta data/lib/, e coloque isso dentro do arquivo: Segundo passo: crie um arquivo chamado gym.lua na pasta data/creaturescripts/scripts/ e coloque isso dentro: Terceiro passo: abra o arquivo creaturescripts.xml (localizado em data/creaturescripts) e adicione essas 4 tags: <event type="cast" name="Gym1" event="script" value="gym.lua"/> <event type="attack" name="Gym2" event="script" value="gym.lua"/> <event type="direction" name="Gym3" event="script" value="gym.lua"/> <event type="death" name="Gym4" event="script" value="gym.lua"/> Quarto passo: crie um arquivo chamado brock.xml em data/npc e crie um chamado brock.lua em data/npc/scripts e coloque isso dentro: Quinto passo: se você usar o pokemon dash, vá no arquivo playerattack.lua (data/creatureevents/scripts) e adicione esses códigos embaixo da linha "function onAttack(cid, target)": if getPlayerStorageValue(target, 201) ~= -1 then for a, b in pairs(ginasios) do if getPlayerStorageValue(target, ginasios[getPlayerStorageValue(target, 201)].storage) == 1 then if getPlayerStorageValue(cid, ginasios[getPlayerStorageValue(target, 201)].storage) ~= 1 then doPlayerSendCancel(cid, "You can't attack this pokemon.") return false end end end end end Se você não usa o pokemon dash, crie um arquivo chamado playerattack.lua na pasta data/creatureevents/scripts e coloque isso dentro: function onAttack(cid, target) if getPlayerStorageValue(target, 201) ~= -1 then for a, b in pairs(ginasios) do if getPlayerStorageValue(target, ginasios[getPlayerStorageValue(target, 201)].storage) == 1 then if getPlayerStorageValue(cid, ginasios[getPlayerStorageValue(target, 201)].storage) ~= 1 then doPlayerSendCancel(cid, "You can't attack this pokemon.") return false end end end end return true end e adicione essa tag no creaturescripts.xml (data/creaturescripts): <event type="attack" name="PlayerAttack" event="script" value="playerattack.lua"/> e ainda, abra o arquivo login.lua e embaixo dessa linha: "function onLogin(cid)" adicione esse código: registerCreatureEvent(cid, "PlayerAttack") Último passo: vá em data/creaturescripts/scripts e abra o arquivo goback.lua (aqui por exemplo, pode ser que haja uma particulariedade de servidor para servidor), e procure pela linha: function onDeath(cid, deathList) e abaixo dela, adicione esse código: local owner = getCreatureMaster(cid) for x, y in pairs(ginasios) do if getPlayerStorageValue(owner, y.storage) == 1 then if getPlayerStorageValue(owner, 991) == 5 or not hasPokemon(owner) then setPlayerStorageValue(owner, 991, -1) else local number = tonumber(getPlayerStorageValue(owner, 991)) setPlayerStorageValue(owner, 991, number + 1) end end end Configuração dos NPCs: Abrindo o arquivo brock.lua na pasta data/npc/scripts, procure por esta linha: "doGymBattle("Brock", "Brock Geodude", cid, 1)" o "Brock" precisa ser o nome do NPC e o "Brock Geodude" precisa ser o nome do primeiro pokemon a ser usado. Agora nessa parte, no script do seu NPC, você também deve editar o nome do NPC no lugar de "brock". Se quiser que o player possa lutar com o NPC mesmo depois de tê-lo vencido, é só remover a mesma parte: if getPlayerStorageValue(cid, ginasios["Brock"].storage) >= 1 then return true end Ao abrir o arquivo gymlib.lua, você encontra essas duas linhas (são as primeiras): funcpokemon = {2220, 2222} -- ID das pokebolas (o pokemon tem que estar vivo nessas IDs) bpslot = CONST_SLOT_BACKPACK --em outros servers, pode ser que seja CONST_SLOT_AMMO o lugar onde fica a backpack no inventory Onde está funcpokemon, você coloca o ID de todas as pokebolas do seu server, mas esse ID tem que ser o ID da pokebola com algum pokemon vivo dentro, e esses IDs devem ser separados por vírgula. Onde está bpslot, você escreve onde fica a BACKPACK do seu server de pokemon. Se ficar no lugar normal de BPs, deixe como está, mas se sua BP fica no slot da munição (ammunition), você deve estar para CONST_SLOT_AMMO. Isso é tudo, agora vocês podem configurar os IDs e localização da BP facilmente, sem precisar conhecimentos mais avançados sobre scripting, e evitar erros no sistema. Abrindo o arquivo gymlib.lua, localizado em data/lib/ você encontra essa tabela: ginasios = { ["Brock"] = { storage = 900, msgdefeat = "You lost! You aren't strong enough yet, don't come back until you get stronger!", msgafk = "Go away if you don't have any pokemons!", msgwin = "Congratulations, you were strong enough to win this battle fairly! Take this Earth Badge as reward.", [1] = { msggo = "Lets fight then! I choose you, Geodude!", msgba = "That's enough, Geodude!", pokem = "Brock Geodude", nextp = "Brock Graveler"}, [2] = { msggo = "It's your turn, Graveler!", msgba = "Come back, Graveler!", pokem = "Brock Graveler", nextp = "Brock Golem"}, [3] = { msggo = "Crush'em, Golem!", msgba = "You did well, Golem!", pokem = "Brock Golem", nextp = "finish"} } } • storage significa a única storage que deve variar de NPC para NPC, tenha certeza de que essa storage não está sendo usada, é você não deve usar a storage 901 aqui, pois a mesma já está em uso pelo próprio sistema. • msgdefeat significa o que o NPC irá dizer quando o player perder o duelo. • msgafk significa o que o NPC irá dizer caso o player comece o duelo, mas não faça nada depois. • msgwin significa o que o NPC irá dizer quando o player vencer o duelo. • msggo / msgba significam os textos que o NPC irá dizer ao sumonar o pokemon dele, ou quando o mesmo morrer, respectivamente.• pokem / nextp significam o nome do pokemon que será utilizado, e o próximo pokemon a ser sumonado pelo NPC, respectivamente. Caso o nextp seja especificado como "finish", não haverá um próximo pokemon. • o número entre [] significa a ordem utilizada pelo líder para usar o tal pokemon, sendo 1 o primeiro pokemon, 2 o segundo e assim vai... Uma tabela detalhada sobre a configuração: Importante: caso for testar o sistema como foi postado aqui, é necessário criar antes os monstros Brock Geodude, Brock Graveler e Brock Golem, assim como adicioná-los no monsters.xml. Recomendações: é bom você impedir que o pokemon consiga retornar para a pokebola durante duelos (assim como foi feito no SvkE), para isso, basta adicionar esse código no arquivo goback.lua (data/actions) na parte inicial de retornar o pokemon: for a, b in pairs(ginasios) do if getPlayerStorageValue(cid, b.storage) == 1 then -- GYM doPlayerSendCancel(cid, "You can't return your pokemon during gym battles.") return true end end Aconselho fazer o mesmo caso seu server tenha script de revive. Deve-se também checar pelos storages usado em players, somente o 990 e o 991. No servidor testado, é utilizado apenas pokeballs e ultraballs, com IDs 2220 e 2222 (outra particularidade). Após ter instalado os arquivos, entre no jogo e use o comando /n Brock para testar o NPC. Último aviso: o prêmio ainda não foi adicionado (que seria a badge), pois esse sim é bem variado de servidor pra servidor. Já que nenhum servidor base já vem com os IDs das badges, cada um adicionou elas de modo diferente, por isso não pude fazer, mas existe uma parte sobre um prêmio no arquivo gym.lua (data/creaturescripts/scripts), procure por isso: --local item = getPlayerItemById(killer, true, 2307) --doTransformItem(item.uid, 2294) Você pode modificar para adicionar dinheiro ou outra coisa, e pode também desenvolver um sistema de badges. Eu não vou fazer badge aqui, mas se vocês tentarem, posso ajudar com problemas. Quaisquer erros, tentarei responder o mais rápido possível.
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...