Ir para conteúdo

Líderes

Conteúdo Popular

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

  1. ShowOff 151 Pokemon 45°

    Fae1z e 2 outros reagiu a drigobo por uma resposta no tópico

    3 pontos
    Bom dia TibiaKing! Venho hoje abrir minha galeria de Pokemons. Meu objetivo aqui é fazer os 151 Pokemons da primeira Geração, conforme as sprites ficam prontas eu vou postando aqui. Quero criar o hábito de praticar sprite todo dia para conseguir melhorar e porque faço por hobbie também Espero que vocês curtam <- Bulbasaur antigo. @up Bônus de Hoje 03/06 Talvez eu deva usar uma tonalidade mais esura, o que acham? ---> O USO É PROIBIDO, SE QUISER USAR, ANTES ME PEÇA. Vamos alimentar essa areia de Otpokemon para o pessoal que só faz por dinheiro fazer bem feito ou deixar de fazer Otserv que uso é o KPDO, não sei quem fez o carinha da equipe rocket, mas fica ae os créditos a ele e o pessoal do KPDO. Como eu citei acima, eu faço apenas por hobbie não sou nenhum manjador das artes dos manjadores. Mas toda critica para me ajudar é bem vinda. Tópico será atualizado com o passar do tempo.
  2. [Gesior Aac] Warots Layout

    Adilson Hacker e 2 outros reagiu a grafit por uma resposta no tópico

    3 pontos
    Download Scan Testado no Gesior https://github.com/gesior/Gesior2012/tree/TFS-1.0 Créditos: emil1174
  3. 2 pontos
    Source em VB6, pra quem quizer estudar ou criar proprio bot pra custom client. Blackd Mage (SAFE) Funçoes: - Full Light - Healing - Anti idle - Eat Food - Mana Train Download Source: http://www.4shared.com/archive/xTwzpkanba/Blackd_Mage_source.html?
  4. Sprites Mega Evoluções

    NyckDragon e um outro reagiu a TioDoLeite por uma resposta no tópico

    2 pontos
    Bom galera do TK, vim disponibilizar algumas sprites das Mega Evoluções do anime Pokémon 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 Print DOWNLOAD 4SHARED / MEDIAFIRE Créditos. PokeXGames por ter feito a maioria das sprites; Eu por ter cortado (Mega Latias, Mega Banete), e postado. Atualizado - 17 de outubro de 2014, 22:20.
  5. [projeto] Real Map

    luanluciano93 e um outro reagiu a PepeHanc por uma resposta no tópico

    2 pontos
    Ola , vou começar um projeto real map tentando deixar ele muito parecido com global , arrumando todas quest e botando tudo pra funcionar , bora la galera , mãos a obra Npc para criar item ( tentar a sorte ) funcionando Terofar adicionado . . . acabado os 3 bosses que precisam de prison key Muito obrigado elton123 que me ajudou com o script enfim adicionado Prince Drazzak , precisara de 5 players e uma golden prison key para matar ele
  6. Magnus Challenger

    gmstrikker e um outro reagiu a xWhiteWolf por uma resposta no tópico

    2 pontos
    eu q tinha feito uma merdinha, tenta agr hahah eu havia deletado a parte de checar se a task estava terminada.. nessas de dar ctrl c cada hr em uma versão diferente é normal haha Você não precisa alterar nada, sua tabela está perfeita. A única coisa que não tá testada aí é a de trainning, verifica pra mim por favor se dá algum erro no console qnd vc fala trainning. Eu não to conseguindo editar meu tópico e nem minhas mensagens mais o.O, enfim, aqui tá a versão com tudo corrigido!!
  7. Magnus Challenger

    gmstrikker e um outro reagiu a xWhiteWolf por uma resposta no tópico

    2 pontos
    mal a demora, minhas aulas voltaram e tá foda tirar tempo pra ver códigos antigos:: tenta trocar seu creaturescript por esse daqui: Também fiz uma opção de pegar a recompensa em skills e dei uma melhorada no script, basta substituir o script do npc por esse daqui: Você tem que garantir que em data/lib/constant existe essa tabela (se nao tiver, é só colocar): SKILL_IDS = { ["fist"] = SKILL_FIST, ["club"] = SKILL_CLUB, ["sword"] = SKILL_SWORD, ["axe"] = SKILL_AXE, ["distance"] = SKILL_DISTANCE, ["dist"] = SKILL_DISTANCE, ["shielding"] = SKILL_SHIELD, ["shield"] = SKILL_SHIELD, ["fishing"] = SKILL_FISHING, ["fish"] = SKILL_FISHING, ["level"] = SKILL__LEVEL, ["magic"] = SKILL__MAGLEVEL } e que essas variáveis possuam esses valores: SKILL_FIST = 0 SKILL_CLUB = 1 SKILL_SWORD = 2 SKILL_AXE = 3 SKILL_DISTANCE = 4 SKILL_SHIELD = 5 SKILL_FISHING = 6 SKILL__MAGLEVEL = 7 SKILL__LEVEL = 8
  8. (Resolvido)Monsters que Empurra

    Snowsz e um outro reagiu a klipstyle por uma resposta no tópico

    2 pontos
    mesmo fazendo rápido ficou ótimo cara, trabalho interessante pode ser usado em alguns eventos bacana igual Chaos Castle do MU onde os guardas empurram .
  9. (Resolvido)addEvent em uma storage

    Vodkart e um outro reagiu a Snowsz por uma resposta no tópico

    2 pontos
    Tenta. function doResetStorageValue(cid, time, storage, value) if isCreature(cid) then return addEvent(function() setPlayerStorageValue(cid, value, storage) end, time) end end local signal = {[NORTH] = {0, -1}, [SOUTH] = {0, 1}, [EAST] = {1, 0}, [WEST] = {-1, 0}} local d = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid) local p = getThingPosWithDebug(cid) local t = {} for b = 1, 6 do local pos = getThingPositionWithDebug(cid) pos.x = pos.x + signal[d][1] * b pos.y = pos.y + signal[d][2] * b if canWalkOnPos(pos, false, true, true, true, false) and isSightClear(getThingPositionWithDebug(cid), pos, false) then table.insert(t, pos) end end if #t <= 0 then return true end function doAquaJet(cid, area, areaEff, eff, pos, a) if not isCreature(cid) then return true end if not pos then return true end doAreaCombatHealth(cid, WATERDAMAGE, areaEff, 0, 0, 0, eff) doAreaCombatHealth(cid, WATERDAMAGE, area, whirl3, -min, -max, 0) doTeleportThing(cid, pos, true) -- if a == 6 then // essa opçao pra tirar a storage eu eliminei porque se o pokemon parar antes de terminar o for a storage tb nao sae -- setPlayerStorageValue(cid, 4440929, -1) --end ) end for a = 0, 6 do local AquaJet = { [0] = {675, {x=p.x, y=p.y-(a+0), z=p.z}, {x=p.x+1, y=p.y-(a-2), z=p.z}}, --pra cima [1] = {673, {x=p.x+(a+0), y=p.y, z=p.z}, {x=p.x+(a+0), y=p.y+1, z=p.z}}, --direito [2] = {674, {x=p.x, y=p.y+(a+0), z=p.z}, {x=p.x+1, y=p.y+(a+0), z=p.z}}, --baixo [3] = {676, {x=p.x-(a+0), y=p.y, z=p.z}, {x=p.x-(a-2), y=p.y+1, z=p.z}} --esquerdo } addEvent(doAquaJet, 310*a, cid, AquaJet[d][2], AquaJet[d][3], AquaJet[d][1], t[a], a) end doResetStorageValue(cid, 2000, 4440929, -1) setPlayerStorageValue(cid, 4440929, 1) addEvent(doDisapear, 180, cid) addEvent(doAppear, 1950, cid, 0)
  10. [Função] getPlayersInArea

    Storm e um outro reagiu a grafit por uma resposta no tópico

    2 pontos
    Função que retorna os players que estão numa área específica function getPlayersInArea(fromPos, toPos) -- function by amoeba13 playersInArea = {} for x = fromPos.x, toPos.x do for y = fromPos.y, toPos.y do for z = fromPos.z, toPos.z do totalArea = {x=x, y=y, z=z} playerz = getTopCreature(totalArea) if isPlayer(playerz.uid) then table.insert(playersInArea, playerz.uid) end end end end return playersInArea end Exemplo de uso: function onSay(cid, words, param, channel) local area = getPlayersInArea({x = 153, y = 50, z = 7}, {x = 156, y = 53, z = 7}) if area then for i = 1, (#area) do doTeleportThing(area[i], {x = 160, y = 51, z = 7}, false) end end return true end Créditos: Killua
  11. Instalando Gesior ACC + TFS 1.0

    thiagozim reagiu a tiroleivi por uma resposta no tópico

    1 ponto
    Neste vídeo eu irei mostrar como instalar o Gesior + TFS 1.0 Xampp : Xampp 1.7.3 Servidor : [10.51] Global Map WebSite : [2015] Gesior 2012 1.0 - V2
  12. (2º) | [8.60] - Glorious Server

    wachelo reagiu a jNo por uma resposta no tópico

    1 ponto
    Baseado no Galaxy Server e uns update feito, esse é o melhor OT que eu fiz, por enquanto. '-' Baixe e vejam, in game é mais show. Ta bem dahora as VIPS, deem uma olhada; ■ Glorious Server ■ 8.60 ■ By: Juliano e João - Novo templo - 10 VIPS Free - 1 VIP Donate - 1 VIP Supremmy - System Points - Sala Donates - 3 Novas citys - 35 novas quests - 6 Novos Sets - TFS 3.1 - Novos Sistemas instalados - Novos monstros, NPc's e comandos explicativos - Não contém nenhum bug in game. - Contém alguns erros no distro, não consegui resolver. - Novas ilhas e novas VIPS Senha do ADM: juliano1 / juliano2 Senha para descompactar: jNo Scan Download OBS: Conteúdo exclusivo do Tibia King, não aceito que postem em outros forums, se postar eu vou pedir pra remover.
  13. [Showoff] Nto NS Modern Acc

    vagosclub2 reagiu a LeoTK por uma resposta no tópico

    1 ponto
    ae galera gostaria de saber se a idéia ta ficando boa.... vamos as prints: Pagina principal do site Um pouco do conteúdo do site Espero que curtam xD
  14. 1 ponto
    Estarei postando Downloads das Distros [TFS 1.0 e 1.2]-[10.78] x86 e x64, para aqueles que estão tendo problemas na hora de compilar. Bom vamos lá : 1º- TFS 1.2 - 10.78 x86 ------------------- DOWNLOAD - SCANN - Novos OutFits & Mounts 2º- TFS 1.2 - 10.78 x64 ------------------- DOWNLOAD - SCANN - Novos OutFits & Mounts 3º- TFS 1.2 - 10.78 x64 Ubuntu 14.04 - DOWNLOAD - SCANN - Novos OutFits & Mounts 4º- TFS 1.0 - 10.78 x86 ------------------- DOWNLOAD - SCANN - V13 5º- TFS 1.0 - 10.78 x64 ------------------- DOWNLOAD - SCANN - V13 6º- TFS 1.0 - 10.78 x64 Ubuntu 14.04 - DOWNLOAD - SCANN - V13 Sources : Source TFS 1.0 - V13 Source TFS 1.2 - 10.78 Novos Outfits & Mounts Créditos : Bruno Minervino Mitsuig Tiroleivi Fireelement
  15. [C++] doStartTrade(cid, target, item)

    Drazyn1291 reagiu a grafit por uma resposta no tópico

    1 ponto
    Bom dia! Há um certo tempo eu tive um servidor de Tibia que possuía um sistema bem interessante de tradevip. Funcionava da seguinte maneira, o player que possuísse premdays(ou VIP) usava o comando !tradevip [DIAS], [Nome do Jogador] e automaticamente gerava uma janela de trade com um item e assim poderiam ser vendidos dias de premium sem o perigo de ninguém ser roubado. Por padrão isso não é possível no Tibia, mas um usuário chamado Oneshot fez modificações nas sources para tornar isso possível. Segue agora as modificações que permitem funcionar esse sistema: Em luascript.h, adicione essa linha, abaixo das linhas parecidas. static int32_t luaDoStartTrade(lua_State* L); Em luascript.cpp, adicione isso perto das linhas parecidas. //doStartTrade(cid, target, item) lua_register(m_luaState, "doStartTrade", LuaInterface::luaDoStartTrade); Ainda em luascript.cpp, adicione isso logo abaixo de alguma estrutura parecida. int32_t LuaInterface::luaDoStartTrade(lua_State* L) { ScriptEnviroment* env = getEnv(); Item* item = env->getItemByUID(popNumber(L)); if(!item) { errorEx(getError(LUA_ERROR_ITEM_NOT_FOUND)); lua_pushboolean(L, false); return 1; } Player* target = env->getPlayerByUID(popNumber(L)); Player* player = env->getPlayerByUID(popNumber(L)); if(!player || !target) { errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND)); lua_pushboolean(L, false); return 1; } if(g_game.internalStartTrade(player, target, item)) { lua_pushboolean(L, true); return 1; } return 1; } Agora use sua imaginação para criar seus scripts. Créditos: Oneshot
  16. [C++] Alterando BaseSpeed

    trancx123 reagiu a grafit por uma resposta no tópico

    1 ponto
    Alterações nas sources para editar a BaseSpeed dos players. Vá em player.h e procure: void updateBaseSpeed() { if (!hasFlag(PlayerFlag_SetMaxSpeed)) { baseSpeed = vocation->getBaseSpeed() + (2 * (level - 1)); } else { baseSpeed = PLAYER_MAX_SPEED; } } A fórmula é (2 * (level - 1) 2 * level do player - 1 = velocidade do player
  17. Scripter King

    Underewar reagiu a luanluciano93 por uma resposta no tópico

    1 ponto
    O Scripter King segue o mesmo propósito do Mapper King e Spriter King, espero que curtam e participem do tópico. REGRAS: • O Rei escolhe um tema para o duelo de Scripts. • Os membros que quiserem participar podem enviar o script pronto até 72 horas contadas depois da escolha do tema. • Os scripts devem ser enviados para: [email protected] (scripts fora do tema serão desclassificados e cada membro só pode enviar um script). • Os participantes podem votar, mas não no seu script. (caso isso aconteça o mesmo será desclassificado). • Se nenhum script for enviado em 72 horas, o rei deve escolher outro tema. • Após entregue a conquista de Scripter King ao vencedor, o mesmo deve escolher um novo tema em até 48 horas, caso contrário, a conquista é transferida ao segundo colocado. • Apenas o atual rei ficará com a conquista do Scripter King. • Após 15 votos, o membro que obter maior número de votos vira o rei. (caso houver empate, o próximo voto aos membros que empataram decidirá) • Uma vez votado, o membro não pode mudar o voto. • Cada script deve ser de autoria do participante. • Cada voto deve ser justificado. Histórico: 30/05/2015 - Snowsz Então para começar, eu me declaro o Atual rei, o primeiro da linhagem, e o primeiro tema é ... Peguei um tópico da seção de script que não esta resolvido. Aqui vai .. "Em um conjunto de players, um deles puxa uma alavanca, e são enviados para uma sala sem saída onde aparecerá um monstro, o time tem um determinado tempo para mata-lo, se o tempo acabar, eles são enviados para uma saída e o monstro some. Se matarem são enviados para uma saída depois de 1 minuto. O script deve ser feito para a versão 0.4 do TFS. Apenas um time por vez. " Divirtam-se
  18. 1 ponto
    Boa tarde galera do TK! Estou aqui postando link do download do SPR e DAT do otpokemon 7.0, eu estava pesquisando sobre otpokemon e acabei encontrando as SPR e DAT e bem atualizada, tem todas as sprites de pokemon de todas as gerações, e outras sprites do otpokemon! Download SRT e DAT do Otpokemon 7.0! http://www.4shared.com/rar/IrksvJy1ba/Dat_e_spr_do_otpokemon_70.html +REP é bom se esse tópico ajudou!
  19. [7.4, 7.6, 7.72] Tibia Classic Bot

    joaaoinacio reagiu a grafit por uma resposta no tópico

    1 ponto
    Tibia Classic Bot Versões 7.4 , 7.6 e 7.72 Esse é um dos poucos bots e o mais completo para estas versões mais antigas... Eu tenho acompanhado desde a versão 1.6.4 dele (atual 1.6.8). Segue abaixo algumas das hotkeys que podem ser usadas nele: Para que a hotkey fique "automática" ela deve ser adicionada na parte persistent , caso contrário a hotkey só será ativada uma vez. Download: https://mega.co.nz/#!x41jxAqa!sqL7cfy3_p-4wjfOrPB1qpUq_UrHuUd46G1wBJVn9nI Scan: https://www.virustotal.com/pt/file/b86169815eeddbaef3808be3d60e523b8a73a18113056ee516f10efd61105207/analysis/1400633901/ Créditos: Xavious O BOT também pode ser encontrado no seguinte link: http://tpforums.org/forum/threads/3889-7-4-7-6-7-72-ClassicBotter-1-6-8
  20. .dat .spr WoNo v.2.43

    Poostsmaan reagiu a GBs por uma resposta no tópico

    1 ponto
    Olá Galera, para a alegria de vocês que gostam de Narutibia, e estavam esperando o Wono disponibilizar o novo Cliente mas não sabiam que viria em OTC e ainda mais copilado. Mas com meu "Trabalho" eu vim disponibilizar o .dat e .spr para aqueles que queria os sprites Akatsuki e Anbu... Download: Clique aqui Scan: Clique aqui REP++
  21. Tutoriais para PDA

    I3reno reagiu a Wend II por uma resposta no tópico

    1 ponto
    Galera hoje vou lhe mostrar-lhes alguns tutorias para PDA, que eu vi e alguns queriam saber, aqui vai: 1° Como configurar o exp do seu server. 2°como adicionar um novo fly, ride e etc, OBS: nao vou mostrar como adicionar no dat editor, eu irei ensinar como configurar ele no script: vá em data/lib/configuration.lua, e procure essa linha: 3° pokemons e items iniciais (creio que muitos ainda nao sabem como modificar) 4° Como adicionar uma nova ball para o PDA 5° Como aumentar e diminuir o Cauth do pokemon. 6° Golden arena: 7° como aumentar o drop de loots: 8° como aumentar a velocidade do player: 9° como modificar seu rme para poketibia. 10° como mudar o efeito do emoticon. 11° como deixar o pokemon passivo, ou agressivo. 12° como mudar a efetividade de um pokemon 13° como adicionar ou remover um pokemon do HeadButt 14° Como adicionar um Passive no Pokemon: 15° Breve abreviação das configurações que existe no configuration.lua da pasta lib: Creditos: Slicer (pelo servidor que eu estou pegando essas informaçoes) Eu (por criar o tutorial) StyloMaldoso (por um tutorial que me ajudou) Nextbr (por ajuda com a abreviação do configuration.lua) por enquanto é só esses tutoriais, se alguém tiver mais alguma duvida, pergunte aqui no tópico mesmo. OBS: se tiver faltando alguém nos créditos que eu não saiba, me avisem. Abraços, e comentem.
  22. [C++] onDropLoot(cid, item)

    joe rod reagiu a grafit por uma resposta no tópico

    1 ponto
    Event droploot acontece quando um monstro ou player dropa 1 item. Em creatureevent.cpp procure: bool CreatureEvents::playerLogin(Player* player) { //fire global event if is registered bool result = true; for(CreatureEventList::iterator it = m_creatureEvents.begin(); it != m_creatureEvents.end(); ++it) { if(it->second->getEventType() == CREATURE_EVENT_LOGIN && !it->second->executeLogin(player) && result) result = false; } return result; Adicione abaixo: bool CreatureEvents::dropLoot(Creature* creature, Item* item) { bool result = true; for(CreatureEventList::iterator it = m_creatureEvents.begin(); it != m_creatureEvents.end(); ++it) { if(it->second->getEventType() == CREATURE_EVENT_DROPLOOT && !it->second->executeDropLoot(creature, item)) result = false; } return result; } Ainda em creatureevents.cpp procure: else if(tmpStr == "preparedeath") m_type = CREATURE_EVENT_PREPAREDEATH; Adicione abaixo: else if(tmpStr == "droploot") m_type = CREATURE_EVENT_DROPLOOT; Procure: case CREATURE_EVENT_PREPAREDEATH: return "onPrepareDeath"; Adicione abaixo: case CREATURE_EVENT_DROPLOOT: return "onDropLoot"; Procure: case CREATURE_EVENT_PREPAREDEATH: return "cid, deathList"; Adicione abaixo: case CREATURE_EVENT_DROPLOOT: return "cid, item"; Procure: uint32_t CreatureEvent::executeLogout(Player* player, bool forceLogout) { //onLogout(cid, forceLogout) if(m_interface->reserveEnv()) { ScriptEnviroment* env = m_interface->getEnv(); if(m_scripted == EVENT_SCRIPT_BUFFER) { env->setRealPos(player->getPosition()); std::stringstream scriptstream; scriptstream << "local cid = " << env->addThing(player) << std::endl; scriptstream << "local forceLogout = " << (forceLogout ? "true" : "false") << 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", player->getName().c_str()); env->setEventDesc(desc); #endif env->setScriptId(m_scriptId, m_interface); env->setRealPos(player->getPosition()); lua_State* L = m_interface->getState(); m_interface->pushFunction(m_scriptId); lua_pushnumber(L, env->addThing(player)); lua_pushboolean(L, forceLogout); bool result = m_interface->callFunction(2); m_interface->releaseEnv(); return result; } } else { std::cout << "[Error - CreatureEvent::executeLogout] Call stack overflow." << std::endl; return 0; } } Adicione abaixo: uint32_t CreatureEvent::executeDropLoot(Creature* creature, Item* item) { //onDropLoot(cid, item) 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; env->streamThing(scriptstream, "item", item, env->addThing(item)); 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", player->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)); LuaScriptInterface::pushThing(L, item, env->addThing(item)); bool result = m_interface->callFunction(2); m_interface->releaseEnv(); return result; } } else { std::cout << "[Error - CreatureEvent::executeDropLoot] Call stack overflow." << std::endl; return 0; } } Em creatureevent.h procure: CREATURE_EVENT_PREPAREDEATH, Adicione abaixo: CREATURE_EVENT_DROPLOOT Procure: uint32_t executeTarget(Creature* creature, Creature* target); Adicione abaixo: uint32_t executeDropLoot(Creature* creature, Item* item); Agora em player.h procure a função: void Player::dropLoot(Container* corpse) Troque por: void Player::dropLoot(Container* corpse) { if(!corpse || lootDrop != LOOT_DROP_FULL) return; uint32_t start = g_config.getNumber(ConfigManager::BLESS_REDUCTION_BASE), loss = lossPercent[LOSS_CONTAINERS], bless = getBlessings(); while(bless > 0 && loss > 0) { loss -= start; start -= g_config.getNumber(ConfigManager::BLESS_REDUCTION_DECREAMENT); bless--; } uint32_t itemLoss = (uint32_t)std::floor((5. + loss) * lossPercent[LOSS_ITEMS] / 1000.); for(int32_t i = SLOT_FIRST; i < SLOT_LAST; ++i) { Item* item = inventory[i]; if(!item) continue; Creature* creature = NULL; bool deny = false;item creature = g_game.getCreatureByID(getID()); CreatureEventList droploot = getCreatureEvents(CREATURE_EVENT_DROPLOOT); for(CreatureEventList::iterator it = droploot.begin(); it != droploot.end(); ++it) { if(!(*it)->executeDropLoot(this, item)) deny = true; } if(!deny) { uint32_t rand = random_range(1, 100); if(skull > SKULL_WHITE || (item->getContainer() && rand < loss) || (!item->getContainer() && rand < itemLoss)) { g_game.internalMoveItem(NULL, this, corpse, INDEX_WHEREEVER, item, item->getItemCount(), 0); sendRemoveInventoryItem((slots_t)i, inventory[(slots_t)i]); } } } } Em monster.cpp procure: void MonsterType::dropLoot(Container* corpse) { if(corpse && lootDrop == LOOT_DROP_FULL) mType->dropLoot(corpse); } Troque por: void MonsterType::dropLoot(Container* corpse) { Item* tmpItem = NULL; for(LootItems::const_iterator it = lootItems.begin(); it != lootItems.end() && !corpse->full(); ++it) { uint32_t owner = corpse->getCorpseOwner(); Creature* creature = g_game.getCreatureByID(owner); if((tmpItem = createLoot(*it)) && g_creatureEvents->dropLoot(creature, tmpItem)) { if(Container* container = tmpItem->getContainer()) { if(createChildLoot(container, (*it))) corpse->__internalAddThing(tmpItem); else delete container; } else corpse->__internalAddThing(tmpItem); } } corpse->__startDecaying(); uint32_t ownerId = corpse->getCorpseOwner(); if(!ownerId) return; Player* owner = g_game.getPlayerByID(ownerId); if(!owner) return; LootMessage_t message = lootMessage; if(message == LOOTMSG_IGNORE) message = (LootMessage_t)g_config.getNumber(ConfigManager::LOOT_MESSAGE); if(message < LOOTMSG_PLAYER) return; std::stringstream ss; ss << "Loot of " << nameDescription << ": " << corpse->getContentDescription() << "."; if(owner->getParty() && message > LOOTMSG_PLAYER) owner->getParty()->broadcastMessage((MessageClasses)g_config.getNumber(ConfigManager::LOOT_MESSAGE_TYPE), ss.str()); else if(message == LOOTMSG_PLAYER || message == LOOTMSG_BOTH) owner->sendTextMessage((MessageClasses)g_config.getNumber(ConfigManager::LOOT_MESSAGE_TYPE), ss.str()); } Exemplo de uso da função: function onDropLoot(cid, item) local block = {2221, 1221, 2922} for i=1, #block do if item.itemid == block[i] then return false end end return true end Créditos: Caotic
  23. getWinningRatio(win, lose)

    Milbradt reagiu a Lyu por uma resposta no tópico

    1 ponto
    O que faz? : Retorna o percentual de um frag (vitórias & derrotas). function getWinningRatio(win, lose) if(type(win) ~= "number" or type(lose) ~= "number") then return nil, error("You need to specify a number value.") end if(win == 0 and lose == 0) then return 0.0 end local ratio = win / (win + lose) * 100 local i = 4 if(math.floor(ratio) < 10) then i = 3 end ratio = tostring(ratio):sub(1, i) return tonumber(ratio) end Como usar? : doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Seu percentual é "..getWinningRatio(230, 78).."%.") Resultado : Seu percentual é 74.6%. Onde 230 pode ser uma storage de vitórias do player e 78 as derrotas. Creio que será dificil esta função ser utilizada. Talvez seja útil para eventos! créditos : Halls Santos
  24. (Resolvido)Como Modificar os Itens Iniciais

    Yfej Global reagiu a Wakon por uma resposta no tópico

    1 ponto
    Tem dois scripts para firstitems, um deles deve estar ativado e você está modificando o outro. Um fica em "/mods" como firstitems.xml e o outro em "Data/creaturescripts/scripts" como firstitems.lua, tente modificar um deles.
  25. (Resolvido)[PEDIDO] Sistema de colheita

    klipstyle reagiu a Snowsz por uma resposta no tópico

    1 ponto
    http://www.tibiaking.com/forum/forum/220-aulas-de-scripting/
  26. (Resolvido)[PEDIDO] Script de lootear

    biel.stocco reagiu a SoulSarti por uma resposta no tópico

    1 ponto
    Tente o seguinte script: em actions.xml ponha a tag: <action itemid="2380" event="script" value="nomedoarquivo.lua"/> Explicando: onde está o chance = {x,y} -- Ai você põe a chance min e max. Seria o [{2351, 2400}] que você pôs no seu exemplo(OBS: Se você quiser por um valor maior que 2350, não esqueça de mudar o p = math.random(1,x), onde x seria o maior número constado na tabela). onde está o item = {x,y} -- x é o id do item, y é o countmax, do seu exemplo. Note que no script que fiz, o sistema randomiza essa quantidade: doPlayerAddItem(cid, crocodilo[1].item[1], math.random(1,crocodilo[1].item[2])) nesse math.random, o sistema vai randomizar um numero entre 1 e o y que você quiser no "item". onde está summon = "Larva" -- troque pelo monstro que você quiser, mas lembre-se: Você precisa por o nome exato do monstro, com as letras maiúsculas, se necessário. Onde você encontra os "for", o sistema checará o math.random "p", que randomizará um número entre 1 e 2350 (que depois servirá para checar qual evento acontecerá) e então comparará o número randomizado com os valores de chance que você colocou. Quando ele encontrar o valor adequado ao evento (demarcado em [1], [2], etc de cada "tabela") ele fará o player dizer a msg correspondente ao evento. Se você quiser mudar isso, basta trocar o "doCreatureSay(etc etc etc)" por doPlayerSendCancel(cid,""..crocodile/lion.msg.."") *em vermelho: nome do monstro/tabela na qual estará rodando o script .-. * Depois dos "for" você verá vários If's. Estes servem para checar cada evento possível da tabela. Quando ele encontrar o evento escolhido pelo math.random, ele fará as ações do evento, constadas na tabela. Caso você deseje mudar os eventos na tabela, então altere os eventos no devido If. Os valores de Item, Damage, Chance, Summon e Msg podem ser alterados livremente, o script funciona de modo que independentemente do valor constado na tabela, ele executa as ações. Agora, se você quiser que além de um item, ele te dê também uma storagevalue, por exemplo, então você terá que mexer na tabela e depois acrescentar a ação no devido If. Caso queria adicionar mais monstros, basta dar um ctrl c + ctrl v na tabela, alterar o nome da mesma, os ids, se quiser, claro e depois criar os ifs para aquela tabela, antes do return true. OBS: Caso o itemEx.uid dê problemas, troque-os por item2.uid que estará tudo certo. Enfim, eu poderia ter feito o script para aceitar qualquer tipo de tabela nova colocada, mas ai daria mais trabalho e eu estou sem tempo hahaha espero que funcione. Qualquer problema, poste aqui e eu tentarei resolver. Boa sorte, xD
  27. (Resolvido)[PEDIDO] Sistema de colheita

    biel.stocco reagiu a klipstyle por uma resposta no tópico

    1 ponto
    vou tentar ajudar primeiro com a quantia aleatória, até porque sou meio amador na área.
  28. (Resolvido)[Ajuda] Spell exaustion

    lowereeee reagiu a klipstyle por uma resposta no tópico

    1 ponto
  29. (Resolvido)Ganhar todos os addons ao logar

    JonatasLucasf reagiu a Snowsz por uma resposta no tópico

    1 ponto
    local storage = 5465 function onLogin(cid) if getPlayerStorageValue(cid, storage) <= 0 then doPlayerAddAddons(cid, 1) doPlayerAddAddons(cid, 2) setPlayerStorageValue(cid, storage, 1) end return true end
  30. (Resolvido)Dúvida Besta ._. Ajuda ai

    Drazyn1291 reagiu a Wend II por uma resposta no tópico

    1 ponto
    as configurações no itemeditor são até fáceis, funciona assim quando alguma opção no itemeditor estive com a cor vermelha você deve marca a caixinha ao lado da opção! exemplo está faltando marca essa opção do meu tile ai no itemeditor só que não marquei, ao marca a cor vermelha sai e assim o item está configurado correto Resolvido? se sim clique em melhor resposta ~~
  31. (Resolvido)[Action] LoadFunction

    Fir3element reagiu a xWhiteWolf por uma resposta no tópico

    1 ponto
    cara vc não pode simplesmente pegar a sua pasta data de 8.6 e tacar num servidor 10.78. Vai dar incompatibilidade em tudo kk muita diferença entre as versões, sources etc.. recomendo usar o padrão do 10.78 e ir adicionando as coisas q vc tinha e que são importantes aos poucos pra ver oque dá erro
  32. Ajuda com Script Galera

    Obelivion reagiu a Wise por uma resposta no tópico

    1 ponto
    Tenta aí: function onAttack(cid, target) local n = {'[Alliance]', '[Horda]'} if not isPlayer(target) then return true end if getCreatureName(cid):find(n[1]) or getCreatureName(cid):find(n[2]) then if getCreatureName(cid):find(n[1]) and getCreatureName(target):find(n[1]) or getCreatureName(cid):find(n[2]) and getCreatureName(target):find(n[2]) then doCreatureSetSkullType(cid, SKULL_RED) else doCreatureSetSkullType(cid, SKULL_NONE) end end return true end Não se esqueça de registrar o creature event em login.lua e de adicionar a tag do mesmo (data\creaturescripts).
  33. Ajuda script servesave global

    Lokozoido reagiu a Wend II por uma resposta no tópico

    1 ponto
    Tente esse, vá na pasta Servidor\data\globalevents\scripts e crie um arquivo GlobalSave.lua e adicione isso function prepareShutdown(minutes) if(minutes <= 0) then doSetGameState(GAMESTATE_SHUTDOWN) return false end if(minutes == 1) then doBroadcastMessage("Servidor vai ser Reiniciado em " .. minutes .. " minuto Para salvar, Desloguem e aguardem!") elseif(minutes <= 3) then doBroadcastMessage("Servidor vai ser Reiniciado em " .. minutes .. " minutos Para salvar, Desloguem e aguardem.") else doBroadcastMessage("Servidor vai ser Reiniciado em " .. minutes .. " minutos Para salvar, Desloguem e aguardem.") end shutdownEvent = addEvent(prepareShutdown, 60000, minutes - 1) return true end function onTimer() return prepareShutdown(5) -- Quantos minutos pra executar o ServeSave. end no globalevents.xml adicione essa tag <globalevent name="GlobalSave" time="05:00" event="script" value="GlobalSave.lua"/> esse script serve para desligar o servidor sozinho, para ligar você precisará de algum "Restater" recomendo usar esse > OTC OTRestarter.rar
  34. ShowOff 151 Pokemon 45°

    drigobo reagiu a Arttxel por uma resposta no tópico

    1 ponto
    Caro drigobo eu particularmente gostei bastante de suas sprites e achei ótimo a iniciativa de faze-los em 45º, mantenha o trabalho!
  35. ShowOff 151 Pokemon 45°

    drigobo reagiu a Fir3element por uma resposta no tópico

    1 ponto
    Não entendo muito de sprites, mas achei foda Boa sorte com seu objetivo.
  36. usar lavanca e remover x item da bp

    PepeHanc reagiu a Caronte por uma resposta no tópico

    1 ponto
    http://www.tibiaking.com/forum/topic/57238-teleporter-cristal-10-11/
  37. Tutoriais para PDA

    Wend II reagiu a luanluciano93 por uma resposta no tópico

    1 ponto
    Ótimo tutorial.
  38. Tutoriais para PDA

    Wend II reagiu a Caronte por uma resposta no tópico

    1 ponto
    Bem legal o pack, boa formatação... aprovado, bonificado e movido
  39. [PokeTibia] DarkBot

    Raiat reagiu a Darkeyren por uma resposta no tópico

    1 ponto
    Opa, compilei uma versão exclusiva pra você brother apenas pra 32 bits, espero que resolva. Download
  40. [Showoff] New City

    runeraserver reagiu a Drazyn1291 por uma resposta no tópico

    1 ponto
    Isto tem cara de um Torre! mas torre do que?? hmm, 5 min dps... poderia fazer uma feira medieval ¬¬ só nas ideias malukas aq
  41. Npc muda de vocaçao

    OTpokemon ownz reagiu a Duuhzera por uma resposta no tópico

    1 ponto
    Galera, preciso de um script de um npc que funcionaria da seguinte forma: -Apenas uma vocaçao podera falar com ele, caso nao seja a vocaçao correta, ele mandara uma mensagem (tudo configuravel) -Se for a vocaçao correta, tera duas opçoes, digamos... voce pode dar 15 itens de ID 1550 e mais 15 itens de ID 1290 (apenas exemplo) para se tornar uma vocaçao, e outros itens para se tornar a outra vocaçao, tem a escolha de uma das duas, após se transformar em uma das duas vocaçoes, nao podera voltar atras.. ou seja, ganhara uma storage que caso fale com o npc, o npc apenas mande uma msg e um "bye" rep+ vlw gente :3 qualquer duvida pergunta ai uup
  42. [CRACK] IBOT 10.76 e outras versoes

    Alissongu reagiu a Leite por uma resposta no tópico

    1 ponto
    Estou trazendo algumas versoes do ibot com crack #Ibot 10.53: iBot v2.5.0 (10.53).rar #Ibot 10.58: iBot.rar #Ibot 10.75: iBot.rar #Ibot 10.76: iBot.rar Se foi util da um rep+
  43. (Resolvido)[Pedido] Bike System Poketibia

    denzeru reagiu a Adriano SwaTT por uma resposta no tópico

    1 ponto
    Obrigado, que bom que funcionou. Faça bom proveito e boa sorte com seu projeto. Até breve.
  44. (Resolvido)[Pedido] Bike System Poketibia

    denzeru reagiu a Adriano SwaTT por uma resposta no tópico

    1 ponto
    O script da bike ficará assim: Agora em creaturescripts.xml adicione a tag: <event type="logout" name="EventLogout" event="script" value="SystemLogout.lua"/> E em SystemLogout.lua, adicione o script abaixo: function onLogout(cid) if getPlayerStorageValue(cid, 12120) > 0 then return doPlayerSendCancel(cid, "You can't logout while riding in the bike.") and false end return true end Agora em login.lua, adicione a tag abaixo junto com as do gênero: registerCreatureEvent(cid, "EventLogout") Boa sorte.
  45. [Pedido] Banners para campeonatos

    r0bert0lol reagiu a leoleo por uma resposta no tópico

    1 ponto
  46. (Resolvido)Como mudar efeito do tiro da arma

    Izzy iss reagiu a Caronte por uma resposta no tópico

    1 ponto
    Que bom, pode avaliar a ?
  47. [Pedido] Banners para campeonatos

    r0bert0lol reagiu a loreal por uma resposta no tópico

    1 ponto
    mlz pela demora espero que gostem xD
  48. [Pedido] Banners para campeonatos

    r0bert0lol reagiu a loreal por uma resposta no tópico

    1 ponto
    espero que gostem abraço
  49. (Resolvido)Modificação nos items...

    JonatasLucasf reagiu a Lekstar por uma resposta no tópico

    1 ponto
    sim, se apagar o attribute charges ficara infinito. mas tambem pode colocar por tempo, um exemplo é a soft boots no caso é so substituir charges por duration : <attribute key="duration" value="12000"/> 12000 = 200 minutos Te ajudei ? REP+
  50. [Spell] Summoning Ultimate Boss!

    Wend II reagiu a Newtonnotwen por uma resposta no tópico

    1 ponto
    Aew galerinha, essa spell faz basicamente o player "correr" em círculos e após certo tempo quando atingi uma velocidade alta, ele sumona um boss! (Vídeo demonstrativo se encontra logo abaixo) Monstro surgindo (imagem apenas imaginativa) Lembrando que você pode editar os efeitos e as frases como quiser. Primeiramente crie um monstro para ser seu boss, depois siga os seguintes passos: Em data/talkactions/scripts crie um arquivo.lua nomeie para boss e adicione: Editando: -Verde: Variáveis, script auto-explicativo, qualquer duvida pergunte. -Vermelho: Nome do seu monstro. Em talkactions.xml adicione: Editando: -Verde: Palavra magica. Agora um vídeo demonstrativo: Créditos: Newtonnotwen Comentem!
Líderes está configurado para São Paulo/GMT-03:00

Informação Importante

Confirmação de Termo