Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 06/07/15 em %

  1. Bruno

    Dominus World - The new era

    Introdução Este é um Baiak com o mapa modificado e atualizado com a última versão do Tibia, o intuito do projeto é valorizar um mapa muito jogado mesclando com o que há de novo. O Servidor será composto pela city principal, que segue o padrão do mapa porém com um diferencial, é uma cidade isolada, cercada por uma imensa muralha onde será acessível apenas por passagens secretas ou por navegação. Showoff Sistemas Em breve Agradecimentos @Daniel @RetornoDeLaug
    6 pontos
  2. Bruno

    [TFS 1.x] Vip System by Account

    Este é o sistema de Vip Account do Mock, convertido ao TFS 1.1 e TFS 1.2, utilizando a nova funcionalidade de concatenação. Vip System: Piso Vip: Talkaction para Add Vip: Créditos: Bruno Minervino Mock
    4 pontos
  3. Cria um .lua em (action/script) local config = { --[vocationId] = outfitId, --Ex.: [0] = 101, [1] = 258, } function onUse(cid) local outfit, playerOutfit = config[getPlayerVocation(cid)], getCreatureOutfit(cid) if outfit then if getCreatureCondition(cid, CONDITION_OUTFIT) and playerOutfit.lookType == outfit then doRemoveCondition(cid, CONDITION_OUTFIT) doPlayerSendTextMessage(cid, 27, "You removed your outfit.") else playerOutfit.lookType = outfit doSetCreatureOutfit(cid, playerOutfit, -1) doPlayerSendTextMessage(cid, 27, "You put an outfit.") end end return true end Em action.xml <action itemid="id que voce usa" event="script" value="nome do arquivo.lua"/> Creditos: Zipter98
    3 pontos
  4. Categoria: Download de Sprite Créditos: Lord Stryton Prévia Download Kingler e Shiny Kingler.zip Scan https://www.virustotal.com/en/file/1e3b560404357b5813740f5269a7376baead7857c9ae9f2755606e0597f5db1d/analysis/1433672712/
    2 pontos
  5. larissaots

    Pokemon XY - Mega Evolução

    Categoria: Download de Sprite Créditos: PokeXGames, TioDoLeite Conteúdo: Mega Alakazam Mega Ampharos [Novo] Mega Banete [Novo] Mega Blastoise Mega Blaziken Mega Charizard X Mega Charizard Y Mega Gengar Mega Latias [Novo] Mega Lucario Mega Tyranitar Prévia Download Pokemon XY - Mega Evolução.rar Scan https://www.virustotal.com/en/file/1fcf1fedbfa2cf03d0f411a99139405746861cd11f8dd009d37f40219f86c251/analysis/1433674051/
    1 ponto
  6. Wend ll

    xPoketibia [Open source] (OFICIAL!)

    Olá Galera do XTibia! Venho apresentar para vocês um novo projeto, o xPoketibia, o poketibia se trata de um servidor que está sendo desenvolvido para tentar substituir o PDA em termos de uso dos OT-admin (sair dessa mesmice de servidores PDA) , o mesmo será disponibilizado aqui no fórum com suas devidas versões\atualizações. Estamos usando uma base antiga que está um pouco desatualizada e com muitos bugs , não editamos o mapa ainda por isso o mapa que está sendo usado é o do dash , tentaremos ao máximo trazer incríveis mapas e sistemas. Andamento do servidor Level System: 90% Caught System: 50% Go-Back System: 50% Portrait System: 50% Evolution System: 100% NPC Nurse System: 50% Pokedex System: 50% Ghost System: 50% Wild Pokemon Passive: 50% Moves System: 90% Limite de 6 Pokemons: 50% Duel System (Pela Party) 50% Tv / Cam System 50% 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 Vários outros sistemas que tenho em mente. Changelog do servidor: Prints: Downloads: Servidor > http://www.4shared.com/rar/VAp3P-nwba/xPoketibia_Project.html? Client > http://www.4shared.com/rar/l5iti909ba/Client_xP.html? Source > http://www.4shared.com/rar/Cb_mNAJvba/sources_xP.html? Repositório no GitHub > Quase lá ~~ Créditos: Wend Silva < euBrun 123GabrieltxuDaniel Colaboradores xTibia por alguns códigosAvuenja por está ajudando com o Github é isso Galera vou indo fazendo com o tempo , não me cobrem , tenho vida social também , não é todo o dia que vou está disponível pra mexer no servidor , mas é isso nada de novo , mas apenas outro distro totalmente diferente com source , creio que vai ajudar muitas pessoas que curte o PDA, Lembrando que ele não vai ser livre de bugs , peço ajuda também para a galera que ajudem no projeto com sugestões e relatando os bugs que encontrarem. Thank you ~~
    1 ponto
  7. larissaots

    Perfeitas sprites PxG

    Categoria: Download de Sprite Créditos: Jonathan Pires Conteúdo: Espeon, Flareon, Jolteon, Gallade, Heracross, Kangaskhan, Miltank, Rhydon, Mr. Mime, Snorlax, Togekiss, Umbreon e entre outros em formato obd. Sprites Download https://mega.co.nz/#!J5x20aIY!0K_AMZYQMoWAgRHg9zs1H0OdGl8oXdKvZFKodiX2bfs
    1 ponto
  8. HadesBR

    Yurots 1.2 (sem edição)

    Yurots 1.2 Não tem muito o que falar do server, mapa simples, Yurots versão 8.10 atualizado para versão 8.60 sem editar, A distro é TFS 0.4 mas coloquei o download só da pasta data caso queira usar outra, quem ja jogou conhece, quem não viu, vale a pena conferir. Ótimo para editar pois é bem leve, apesar de alguns bugs no mapa que são simples. Download completo Download (somente a pasta Data) Creditos: •TFS Team •God Bon
    1 ponto
  9. larissaots

    Ambipom [Pokemon]

    Categoria: Download de Sprite Créditos: Lord Stryton Prévia Download Ambipom.zip Scan https://www.virustotal.com/en/file/240ab43f2e5693e3d5447b55ebdac35881779517f6e5e9bbf4952d682d71ebc1/analysis/1433672532/
    1 ponto
  10. shept

    Novos Tipos de DAMAGE (como criar)

    em enums.h abaixo disso, ou abaixo de outro tipo de COMBAT: COMBAT_FIREDAMAGE = 1 << 3, add (nesse caso o nome que eu coloquei é dark, mas é claro que vc pode colocar outro nome): COMBAT_DARKDAMAGE = 1 << 4, // não sei o que esses numeros querem dizer mas deixem esse valor vc precisa aumentar o contador, neste caso é só 1 de aumento COMBAT_COUNT = 12 // normal contador agora com o aumento: COMBAT_COUNT = 13 // contador aumentado em 1 em game.cpp abaixo desse "case" vc vai colocar o seu novo damage, isso é muito importante, aqui que vc vai dizer qual a cor que ele vai ser, qual o efeito que vai ser feito quando ele for usado por um player ou monstro... case COMBAT_LIFEDRAIN: { color = TEXTCOLOR_RED; effect = CONST_ME_MAGIC_RED; break; } add: case COMBAT_DARKDAMAGE: { color = TEXTCOLOR_DARKRED; // aqui vc escolhe a cor possivel do seu novo damage effect = CONST_ME_BLACKSMOKE; // aqui o effect do seu novo damage break; } aqui estão as cores possiveis para o seu damage, não estou certo se são apenas essas, se alguém souber e puder falar eu mudarei aqui. TEXTCOLOR_BLUE = 5, TEXTCOLOR_LIGHTGREEN = 30, TEXTCOLOR_LIGHTBLUE = 35, TEXTCOLOR_MAYABLUE = 95, TEXTCOLOR_DARKRED = 108, TEXTCOLOR_LIGHTGREY = 129, TEXTCOLOR_SKYBLUE = 143, TEXTCOLOR_PURPLE = 154, TEXTCOLOR_RED = 180, TEXTCOLOR_ORANGE = 198, TEXTCOLOR_YELLOW = 210, TEXTCOLOR_WHITE_EXP = 215, TEXTCOLOR_NONE = 255, em monsters.cpp abaixo do else if: } else if (tmpName == "lifedrain") { combat->setParam(COMBAT_PARAM_TYPE, COMBAT_LIFEDRAIN); add: } else if (tmpName == "dark") { combat->setParam(COMBAT_PARAM_TYPE, COMBAT_DARKDAMAGE); agora vc precisa colocar o seu damage como possivel de ser atribuida como imunidade pra monstros... em monsters.cpp abaixo: } else if ((attr = immunityNode.attribute("lifedrain"))) { if (attr.as_bool()) { mType->damageImmunities |= COMBAT_LIFEDRAIN; } add: } else if ((attr = immunityNode.attribute("dark"))) { if (attr.as_bool()) { mType->damageImmunities |= COMBAT_DARKDAMAGE; } agora vc precisa colocar ele como element percent, aquele que vai na tag dos monsters. ainda em monsters.cpp below: } else if ((attr = elementNode.attribute("lifedrainPercent"))) { mType->elementMap[COMBAT_LIFEDRAIN] = pugi::cast<int32_t>(attr.value()); add: } else if ((attr = elementNode.attribute("darkPercent"))) { mType->elementMap[COMBAT_DARKDAMAGE] = pugi::cast<int32_t>(attr.value()); em spells.cpp abaixo (eu não tenho certeza se essa mudança é necessaria, mas faça ) "lifedrain", add: "dark", isso é tudo... mas tenha certeza que os nomes que vc for dar pro seu damage sejam os mesmos em todas as mudanças pra não ter bugs... funciona em tfs 1.1 ou 1.2 ... nas outras não sei, não uso essas mais velhas... créditos: silveralol (otland) // eu por trazer pra cá.
    1 ponto
  11. Vodkart

    Doplayersetskill

    Função para mudar a quantidade de skills ou magic level do jogador. lib/050-function function doPlayerSetSkill(cid, skill, amount) local pid = getPlayerGUID(cid) doRemoveCreature(cid,true) db.executeQuery("UPDATE `player_skills` SET `value` = ".. amount .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. skill ..";") return TRUE end function doPlayerSetMagic(cid, amount) local pid = getPlayerGUID(cid) doRemoveCreature(cid,true) db.executeQuery("UPDATE `players` SET `maglevel` = " .. amount .. " WHERE `id` = "..pid) return TRUE end exemplo de uso
    1 ponto
  12. larissaots

    Rapidash [Pokemon]

    Categoria: Download de Sprite Créditos: Lord Stryton Prévia Download Rapidash PxG.rar Scan https://www.virustotal.com/en/file/0dc58b498f011d47ad5a04f4c676d58dcec64872e9a2813fbd0f7acddebed0e7/analysis/1433671507/
    1 ponto
  13. Dragon Ball Hiper

    Dragon Ball Hiper Online

    Saudaçoes Hoje Trago A Voçes Uns dos Melhores Dragon Ball Online , Servidor 24Horas Sem Lag , Hospedado em Canada Com Uma Qualidade Super Boa , Varias Vocaçoes Free , e Vip , Quests Fodasticas , PvP 100% igualado . Informações sobre o Servidor: Vocaçoes Free : 26 VIPS : 8 Versao : 8.6 Rates Experience: 100 x Stages Loot: 0.2x Magic: 10x Skills 10x RB Minimo : 250 RB Maximo : 600 LeveL PVP ; 200 Maximo Level : 801 imagens xD TEMPLO : PARTE 2 INICIO CC21 Parte 2 SALA EVENTO PVP Servidor Baseado Em DBOBRASIL : Com uma Boa Qualidade . Servidor é serio Sem ReseT , Suporte 24 Hrs Estao Esperando Oque ? Acesse server.dragonballhiper.com
    1 ponto
  14. larissaots

    Mega Venusaur [Pokemon]

    Categoria: Download de Sprite Créditos: Lord Stryton Prévia Download Scan https://www.virustotal.com/en/file/d5c22c0590cceae4f5c094ae732f0c93081f75781148954cb8c96956349b81ca/analysis/1433670654/
    1 ponto
  15. larissaots

    Mega aerodactyl [Pokemon]

    Categoria: Download de Sprite Créditos: Lord Stryton Prévia Download Mega aerodactyl.zip Scan https://www.virustotal.com/en/file/6c9daa483343988814b394978f285baa524bb1ae2506a61b39003bef44edf760/analysis/1433671052/
    1 ponto
  16. larissaots

    Mega sharpedo [Pokemon]

    Categoria: Download de Sprite Créditos: Lord Stryton Prévia Download Mega sharpedo.zip Scan https://www.virustotal.com/en/file/30d926de41efe10740a260ce81a46832fb257dcb727f892795d09180e8ccc7cf/analysis/1433671269/
    1 ponto
  17. larissaots

    Shiny Rhydon [Pokemon]

    Categoria: Download de Sprite Créditos: Lord Stryton Prévia Download Scan https://www.virustotal.com/en/file/36b29c9d81e19769f33431e07832efa24cea1e2f72edb855cf3aeacf94efae2d/analysis/1433671862/
    1 ponto
  18. larissaots

    Shiny Mega Slowbro [Pokemon]

    Categoria: Download de Sprite Créditos: Lockwood Sprite
    1 ponto
  19. larissaots

    Mega Sceptile [Pokemon]

    Categoria: Download de Sprite Créditos: Lockwood Sprite
    1 ponto
  20. larissaots

    Shiny Mega Charizard Y [Pokemon]

    Categoria: Download de Sprite Créditos: Lockwood Sprite
    1 ponto
  21. larissaots

    [Remake] PokeBalls

    Categoria: Download de Sprite Créditos: rydeofsky Sprite
    1 ponto
  22. larissaots

    Pack de shinys!

    Categoria: Download de Sprite Créditos: Vinicius Xxgamexx Sprites Download Pack De Sprites By Vinicius Xxgamexx.rar Scan https://www.virustotal.com/sv/file/b987ebe66f1505c9f21532433c202c1ac2e961e5dbb4ddc3bcd98ee91a21186a/analysis/1423861929/
    1 ponto
  23. Benny

    Feedback - Seção Design

    Olá, pessoal Bem, pra melhorar a seção eu preciso saber o que vocês estão achando, não é ? rs. O Tony já tinha criado um tópico desse, mas era bem antigo .. Então eu tô re-criando. Aqui vocês podem dar sugestões, criticar, e elogiar também (: Atual Equipe : Algumas perguntas que podem ajudar : O que estão achando da seção? estamos sendo atenciosos com vocês no suporte etc ? E da atual equipe ? Qual tipo de conteúdo vocês querem? (Tutoriais, downloads) Enfim, é isso Tópicos já postados : X-Design 2015
    1 ponto
  24. Vim aqui postar mais uma pagina legalzinha e mostrar como configurar ela em seu Gesior! Requisitos Gesior 2012 ou Gesiors para tfs 1.0 abra a pasta htdocs/pages ou www/pages copie e cole qualquer arquivo.php e renomeie mounts, ficando um arquivo mounts.php apague todo conteúdo do arquivo copiado e cole o código abaixo. basicamente pronto, caso seu servidor tenha algo diferente da pagina basta dar um control+F, buscar a descrição e alterar a gosto! Imagens Créditos: Piabeta! mounts.php
    1 ponto
  25. Bruno

    Npc do Destino

    Tenta assim: local config = { pos1 = {x = 1000, y = 550, z = 7}, pos2 = {x = 1002, y = 553, z = 7}, templo = {x = 160, y = 54, z = 7}, tempo = 2 -- minutos para ficar na sala } local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} 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 creatureSayCallback(cid, type, msg) if (not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid if (msgcontains(msg, 'destino')) then selfSay('Posso escolher seu destino?', cid) talkState[talkUser] = 1 elseif ((msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1) then local rand = math.random(1, 2) local pos = (rand == 1 and config.pos1 or config.pos2) doTeleportThing(cid, pos) addEvent(function() doTeleportThing(cid, config.templo) end, config.tempo * 60 * 1000) talkState[talkUser] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
    1 ponto
  26. Bruno

    Npc do Destino

    Qual a versão do servidor?
    1 ponto
  27. Amigo, a dúvida já foi resolvida, o problema dele não é adicionar a tabela uma vez que o próprio website faz isso! O problema é que a tabela já existia na database e ele tentou instalar novamente, causando aquele aviso.
    1 ponto
  28. A tabela z_spells já está criada, isso não é um erro! Se você quiser, você pode excluir e instalar novamente.
    1 ponto
  29. Lord Stryton

    [Novo]TV System

    TV System. Este novo sistema de TV pega em qualquer servidor, testado em Dash, PDA, e tfs 0.3.6 pl1 do meu server de pokémon. PDA 1° Action Vá na pasta Actions crie um arquivo .lua com o nome: TVsystem.lua e coloquem isso dentro: Ainda em Actions! Crie outro arquivo.lua chamado de Gravadora.lua, e coloque isso dentro: Agora vamos programa-lo no action.lua: Vá em actions.lua, e coloque: <action itemid="16547-16550;13495-11498;15675-15680" event="script" value="TVsystem.lua"/> <action itemid="12330" event="script" value="Gravadora.lua"/> TVSystem: na parte que está em azul, você terá que colocar os ids das televisões. Gravadora: na parte que está em azul você coloca o id da camera. Agora vamos criar um NPC, e configura-lo na pasta data/Lib. Vá na pasta do NPC e crie um NPC Chamado Paulo. Paulo.xml e coloque isso dentro: Agora na Pasta data/LIB, crie um arquivo chamado: tvsystem.lua E coloque dentro: Na parde de azul no script da lib, será assim: Outfit do NPC +200. Por exemplo LookType 400+200 ficará 600. Caso ocorra algum Bug Fala a e no tópico. Dash Em breve Créditos a um desconhecido. -E amim por editar.
    1 ponto
  30. Bruno

    mysql erro

    Essas colunas é para warsystem com invite para war... O problema foi resolvido? Tópico movido para a seção de dúvidas e pedidos resolvidos.
    1 ponto
  31. @@leonardo macedo, Conforme conversamos, o seu problema esta sendo apenas alterar o email do pagseguro no config.php. Agora está funcionando! Lembrando que você precisa adicionar manualmente os postos para quem comprar!
    1 ponto
  32. Bruno

    mysql erro

    @sk8sk8ter, Rode essa query: DROP TABLE IF EXISTS `woe`; CREATE TABLE `woe` ( `id` INT( 11 ) NOT NULL AUTO_INCREMENT , `started` INT( 11 ) NOT NULL , `guild` INT( 11 ) NOT NULL , `breaker` INT( 11 ) NOT NULL , `time` INT( 11 ) NOT NULL , PRIMARY KEY ( `id` ) ,UNIQUE (`id`) ) ENGINE = MYISAM
    1 ponto
  33. Furabio

    Rapidash [Pokemon]

    O Download desse não está funcionando, teria como arrumar ?
    1 ponto
  34. larissaots

    Novo ground

    Categoria: Download de Sprite Créditos: Nechros Sprite
    1 ponto
  35. larissaots

    Pedra

    Categoria: Download de Sprite Créditos: Nechros Sprite
    1 ponto
  36. larissaots

    Carro preto

    Categoria: Download de Sprite Créditos: Nogard Sprite
    1 ponto
  37. larissaots

    Mãos

    Categoria: Download de Sprite Créditos: Nogard Sprite
    1 ponto
  38. larissaots

    Bicicleta

    Categoria: Download de Sprite Créditos: Nogard Sprite
    1 ponto
  39. Ficou bem fica PibetaBro! Reputads!
    1 ponto
  40. VictorWEBMaster

    Rank Reset

    Opa, salve! Utilize o highscore abaixo! Estou à disposição Para que você consiga fazer o sistema funcionar perfeitamente, você deve adicionar isso a uma classe dentro da pasta de classes. Abra a pasta de classes do seu gesior, edite a players. Pode substituir tudo... por isto: Caso dê algum erro, verifique o nome da tabela de resets, deve ser reset, caso seja resets, mude no player.php tudo que se refere a reset. Espero ter ajudado.
    1 ponto
  41. Veja se isso ajuda amigo.
    1 ponto
  42. Madarada

    Dúvida Spriting - Software

    não é o programa que faz as sprites sairem boas, e sim quem está fazendo as sprites.
    1 ponto
  43. larissaots

    [TFS 1.X] Anti-Magebomb

    Créditos: luanluciano93 Objetivo Esse script limita uma quantidade de MC logados por IP, podendo evitar várias coisas, como por exemplo o magebomb. Tutorial Basta criar um arquivo em creaturescript/scripts/ com o nome anti-magebomb.lua e coloque esse código dentro: -- <event type="login" name="Anti-Magebomb" script="anti-magebomb.lua"/> local AccPorIp = 2 function onLogin(player) local mc = 0 for _, verificar in ipairs(Game.getPlayers()) do if player:getIp() == verificar:getIp() then mc = mc + 1 if mc > AccPorIp then return false end end end return true end A tag do creaturescript.xml já esta como comentário no script, é só copiar. OBS: Esse script funciona em TFS 1.1 E 1.2, para TFS 1.0 mude as funções: onLogin(player) --> onLogin(cid) player:getIp() --> Player(cid):getIp()
    1 ponto
  44. perguntar para quem desenvolve ou quem ta aqui para ser admin é uma coisa, agora os players de hj em dia, nao ligam pra muita coisa, nego so quer um site para criar conta, ver os chares e no maximo os mais curioso uma pagina que cite quests, os sistemas do ot e um lugar pra reportar bug ou ficar chorando que alguem fez isso ou aquilo, ou que nao caiu os pontos e bla bla bla!
    1 ponto
  45. Lord Stryton

    Erondino patch v17.1 + Source

    O que mudou? Ficou a mesma coisa. O outro v17 BPO Open sources não mudou praticamente nada.
    1 ponto
  46. ferreira998

    [10.10+] Forest Floor

    Forest Floor Imagem: RME/data/versão/grounds.xml Antes da linha: </materials> Adicione: <brush name="forest floor" type="ground" server_lookid="20776" z-order="3500"> <item id="20776" chance="25"/> <item id="20777" chance="16"/> <item id="20778" chance="17"/> <item id="20779" chance="18"/> <item id="20780" chance="19"/> <item id="20781" chance="20"/> <border align="outer" id="556"/> <border align="inner" to="none" id="10"/> </brush> RME/Data/10.31/borders.xml <border id="556"> -- Forest Floor Willian -- <borderitem edge="n" item="21113"/> <borderitem edge="e" item="21124"/> <borderitem edge="s" item="21123"/> <borderitem edge="w" item="21114"/> <borderitem edge="cnw" item="21115"/> <borderitem edge="cne" item="21116"/> <borderitem edge="csw" item="21117"/> <borderitem edge="cse" item="21118"/> <borderitem edge="dnw" item="21119"/> <borderitem edge="dne" item="21120"/> <borderitem edge="dsw" item="21121"/> <borderitem edge="dse" item="21122"/> </border> RME/Data/10.31/tilesets.xml Dê CTRL + F e digite Nature, em baixo de: <terrain> adicione: <brush name="forest floor"/> Se Gostou deixe aquele like. Créditos : William Ferreira
    1 ponto
  47. caotic

    onSetOpponnent(cid, monster)

    Ola galera xtibanaana. O creatureevent onsetopponent acontence quando uma criatura seta outra como opponent para ir prosseguir como target. Vá em creatureevent.cpp e procure: else if(tmpStr == "preparedeath") m_type = CREATURE_EVENT_PREPAREDEATH; Adicione embaixo: else if(tmpStr == "opponent") m_type = CREATURE_EVENT_OPPONENT; Procure: case CREATURE_EVENT_PREPAREDEATH: return "onPrepareDeath"; Coloque embaixo: case CREATURE_EVENT_OPPONENT: return "onSetOpponent"; Continuado procure: case CREATURE_EVENT_PREPAREDEATH: return "cid, deathList"; Coloque abaixo: case CREATURE_EVENT_OPPONENT: return "cid, monster"; Adicione a função: uint32_t CreatureEvent::executeSetOpponent(Creature* creature, Creature* target) { //onSetOpponent(cid, monster) if(m_interface->reserveEnv()) { ScriptEnviroment* env = m_interface->getEnv(); if(m_scripted == EVENT_SCRIPT_BUFFER) { env->setRealPos(creature->getPosition()); std::stringstream scriptstream; scriptstream << "local cid = " << env->addThing(creature) << std::endl; scriptstream << "local target = " << env->addThing(target) << std::endl; scriptstream << m_scriptData; bool result = true; if(m_interface->loadBuffer(scriptstream.str())) { lua_State* L = m_interface->getState(); result = m_interface->getGlobalBool(L, "_result", true); } m_interface->releaseEnv(); return result; } else { #ifdef __DEBUG_LUASCRIPTS__ char desc[35]; sprintf(desc, "%s", creature->getName().c_str()); env->setEventDesc(desc); #endif env->setScriptId(m_scriptId, m_interface); env->setRealPos(creature->getPosition()); lua_State* L = m_interface->getState(); m_interface->pushFunction(m_scriptId); lua_pushnumber(L, env->addThing(creature)); lua_pushnumber(L, env->addThing(target)); bool result = m_interface->callFunction(2); m_interface->releaseEnv(); return result; } } else { std::cout << "[Error - CreatureEvent::executePrepareDeath] Call stack overflow." << std::endl; return 0; } } Vá em creatureevent.h e procure: CREATURE_EVENT_PREPAREDEATH, Adicione embaixo: CREATURE_EVENT_OPPONENT Procure: uint32_t executeAttack(Creature* creature, Creature* target); Coloque embaixo: uint32_t executeSetOpponent(Creature* creature, Creature* target); Vá em monster.cpp e procure a função: bool Monster::isOpponent(const Creature* creature) Substitua por essa: bool Monster::isOpponent(const Creature* creature) { bool opponent = true; CreatureEventList attackEvents = getCreatureEvents(CREATURE_EVENT_OPPONENT); Creature* target = g_game.getCreatureByID(creature->getID()); for(CreatureEventList::iterator it = attackEvents.begin(); it != attackEvents.end(); ++it) { if(!(*it)->executeSetOpponent(target, this)) opponent = false; } if (!opponent) { return false; } return (isSummon() && getMaster()->getPlayer() && creature != getMaster()) || ((creature->getPlayer() && !creature->getPlayer()->hasFlag(PlayerFlag_IgnoredByMonsters)) || (creature->getMaster() && creature->getMaster()->getPlayer())); } Exemplo: function onSetOpponent(cid, target) local blockedpass = {"Fire Devil", "Demon", "Lord Dragon"} if table.find(blockedpass, getCreatureName(target)) then return true end return true end
    1 ponto
  48. Pluzetti

    Insignias em Otclient

    -Muitas pessoas devem querer as insignias no Ot Client, eu estava procurando na net e achei esse sistema, fui logo colocar no meu Ot Client, porém deu erro e fui caçar o erro...está 100% funcional, bora começar? 1º Edições no server: Vá em: talkactions/scripts...crie um arquivo lua com o nome: talkGym.lua: e coloque isso dentro do arquivo: function onSay(cid, words, param) if gymbadges[param] then doPlayerSendCancel(cid, "#getBadges# "..param.." "..getPlayerItemCount(cid, gymbadges[param])) end return true end Em Xml: <talkaction words="#getGym#" event="script" value="talkGym.lua"/> PARA QUEM QUISER QUE ATUALIZE NA HORA QUE GANHAR O GYM npc/scripts/todos os npcs de gym: doPlayerSendCancel(cid, "#getBadges# "..getCreatureName(this).." "..getPlayerItemCount(cid, gymbadges[getCreatureName(this)])) Embaixo dessa linha if b.uid > 0 then doTransformItem(b.uid, b.itemid - 8) end Ficando assim: local function doWinDuel(cid, npc) if not isCreature(cid) then return true end local this = npc local a = gymbadges[getCreatureName(this)] + 8 doCreatureSay(npc, "You won the duel! Congratulations, take this "..getItemNameById(a - 8).." as a prize.", 1) local b = getPlayerItemById(cid, true, a) if b.uid > 0 then doTransformItem(b.uid, b.itemid - 8) end doPlayerSendCancel(cid, "#getBadges# "..getCreatureName(this).." "..getPlayerItemCount(cid, gymbadges[getCreatureName(this)])) end No server é apenas isso, agora vamos em: Otclient>modules>game_skills: Skills Otui: Em baixo de tudo la em ultimo coloque SkillButton id: pokeGym size: 143 69 margin-top: 8 UIButton id: gymBrock size: 32 32 anchors.top: parent.top anchors.right: parent.right margin-right: 120 UIButton id: gymMisty anchors.top: gymBrock.top anchors.left: gymBrock.right margin-left: 3 UIButton id: gymSurge anchors.top: gymBrock.top anchors.left: gymMisty.right margin-left: 3 UIButton id: gymErika anchors.top: gymBrock.top anchors.left: gymSurge.right margin-left: 3 UIButton id: gymSabrina anchors.top: gymBrock.bottom anchors.left: gymBrock.left margin-top: 6 UIButton id: gymKoga anchors.top: parent.top anchors.top: gymBrock.bottom anchors.left: gymMisty.left margin-top: 6 UIButton id: gymBlaine anchors.top: parent.top anchors.top: gymBrock.bottom anchors.left: gymSurge.left margin-top: 6 UIButton id: gymKira anchors.top: parent.top anchors.top: gymBrock.bottom anchors.left: gymErika.left margin-top: 6 Skills.Lua: Inicio do Script: local gyms = { ["Brock0"] = "/images/game/pokemon/clan/brock", ---- terminados em 0 apagado, terminados em 1 aceso ["Brock1"] = "/images/game/pokemon/clan/brock", ["Misty0"] = "/images/game/pokemon/clan/misty", ["Misty1"] = "/images/game/pokemon/clan/misty", ["Surge0"] = "/images/game/pokemon/clan/surge", ["Surge1"] = "/images/game/pokemon/clan/surge", ["Erika0"] = "/images/game/pokemon/clan/erika", ["Erika1"] = "/images/game/pokemon/clan/erika", ["Sabrina0"] = "/images/game/pokemon/clan/sabrina", ["Sabrina1"] = "/images/game/pokemon/clan/sabrina", ["Koga0"] = "/images/game/pokemon/clan/koga", ["Koga1"] = "/images/game/pokemon/clan/koga", ["Blaine0"] = "/images/game/pokemon/clan/blaine", ["Blaine1"] = "/images/game/pokemon/clan/blaine", ["Kira0"] = "/images/game/pokemon/clan/kira", ["Kira1"] = "/images/game/pokemon/clan/kira", } Em baixo de: connect(g_game, { onGameStart = refresh, onGameEnd = offline }) Coloque: connect(g_game, 'onTextMessage', getGym) Ficando: connect(g_game, { onGameStart = refresh, onGameEnd = offline }) connect(g_game, 'onTextMessage', getGym) Em baixo de: g_keyboard.unbindKeyDown('Ctrl+S') skillsWindow:destroy() skillsButton:destroy() end Coloque: function autoUpdateTalks() local player = g_game.getLocalPlayer() if not player then return end ---------- g_game.talk("#getGym# Brock") g_game.talk("#getGym# Misty") g_game.talk("#getGym# Surge") g_game.talk("#getGym# Erika") g_game.talk("#getGym# Sabrina") g_game.talk("#getGym# Koga") g_game.talk("#getGym# Blaine") g_game.talk("#getGym# Kira") ---------- end function getGym(mode, text) local t = string.explode(text, " ") local badges = skillsWindow:recursiveGetChildById("gym"..t[2]) if not g_game.isOnline() then return end if mode == MessageModes.Failure then if text:find("#getBadges#") then badges:setImageSource(gyms[t[2]..""..tonumber(t[3])]) end end end Ficando: g_keyboard.unbindKeyDown('Ctrl+S') skillsWindow:destroy() skillsButton:destroy() end function autoUpdateTalks() local player = g_game.getLocalPlayer() if not player then return end ---------- g_game.talk("#getGym# Brock") g_game.talk("#getGym# Misty") g_game.talk("#getGym# Surge") g_game.talk("#getGym# Erika") g_game.talk("#getGym# Sabrina") g_game.talk("#getGym# Koga") g_game.talk("#getGym# Blaine") g_game.talk("#getGym# Kira") ---------- end function getGym(mode, text) local t = string.explode(text, " ") local badges = skillsWindow:recursiveGetChildById("gym"..t[2]) if not g_game.isOnline() then return end if mode == MessageModes.Failure then if text:find("#getBadges#") then badges:setImageSource(gyms[t[2]..""..tonumber(t[3])]) end end end Em baixo de: function refresh() local player = g_game.getLocalPlayer() if not player then return end Coloque: autoUpdateTalks() Ficando: function refresh() local player = g_game.getLocalPlayer() if not player then return end autoUpdateTalks() Espero que gostem. PS: O erro que dava no meu era que não aparecia a opção skills no OTC. Créditos: Noninhouh
    1 ponto
  49. É galera, tem um tempo já que eu venho pesquisando sobre um .otb vazio e nunca achei, e no item editor quando você cria um e vai criar um item surge aquele erro de sempre "Wrong items set" o que impossibilita a criação do .otb. Aqui no Brasil nunca vi ninguém precisar, mas se pesquisar tem muito gringo procurando. Mas pra que serve um .otb vazio? Você vai criar um projeto mas quer mudar tudo, sprites... TUDO, mas o servidor ta cheio de item do Tibia, coisas desnecessárias, é ai que entra o .otb vazio, a partir dele você cria seus items. O .otb contem só o item de n° 100, que é o primeiro item, dai é só criar o restante e configurar. Farei um Pack disponibilizarei junto 2 items editores 8.54 que são bem uteis. Dúvidas? comentem. Ajudei? Rep+ Download | Scan
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...