Ir para conteúdo

Líderes

Conteúdo Popular

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

  1. Wend ll

    PDA By: Bolz:: Versão [GOD anna]

    Fala galera do xtibia, Hoje estou trazendo o servidor PDA by: Bolz editado por mim, Passei um bom tempo Editando ele Espero que gostem;; • Menu: ├ Informações; ├ Ediçoes; ├ Erros; ├ Prints; ├ Download; └ Creditos. • Informações Basicas • • Erros do servidor • • PrintScreen • • Download's • Servidor PDA by: Bolz [Editado Por Mim ] http://www.4shared.com/rar/06OG8lB5ba/pda_by_bolz_verso_god_anna.html? OTClient:: http://www.4shared.com/rar/x5LgTQKLce/OTclient.html? @Atualizado 02/04/2014 • Menu: ├ Ediçoes; ├ Prints; ├ Download; • Edições / ajustes • • PrintScreen • • Download's • Servidor PDA by: Bolz [Editado Por Mim v2 ] http://www.4shared.com/rar/_lB31rwxba/PDA_By_Bolz_Verso_GOD_anna_v2.html? OTclient v2:: http://www.4shared.com/rar/aiqka_kQce/OTclient_v2.html? • Creditos • Slicer (pelo servidor) Brun123 (por alguns scripts, e por criar o pda) Stylo Maldoso (pelo mapa) Bolz (por editar Maior Parte do Server) Eu ( por Corrigir Varios bugs e Editar varias coisas no Servidor) Gabrielsales ( pelos Systemas:: "Held item", "Ditto system" ) valakas ( Por ter ajudado a resolve o Bug da Barra de Ataques do OTclient v2) Xtibia (por alguns scripts) Cometem OQ acharam do Server Tou parando com as atualizações por enquanto POr causa das Provas (Tenho que Passa) Mais quando terminar as Aulas posto Nova atualiazação... Obrigado a Todos que Elogiaram minha edição nesse Belo servidor
    8 pontos
  2. caotic

    onDropLoot(cid, item)

    Ola galera xtibianaaa. Event droploot acontece quando um monstro ou player dropa 1 item. Vamos la: Vá em creatureevent.cpp e 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; } Logo em seguida coloque: 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; } Procure: else if(tmpStr == "preparedeath") m_type = CREATURE_EVENT_PREPAREDEATH; Coloque em seguida: else if(tmpStr == "droploot") m_type = CREATURE_EVENT_DROPLOOT; Logo apos procure: case CREATURE_EVENT_PREPAREDEATH: return "onPrepareDeath"; Coloque abaixo: case CREATURE_EVENT_DROPLOOT: return "onDropLoot"; Procure: case CREATURE_EVENT_PREPAREDEATH: return "cid, deathList"; Coloque embaixo: 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; } } Coloque logo apos: 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; } } Vá em creatureevent.h e procure:CREATURE_EVENT_PREPAREDEATH, Coloque abaixo: CREATURE_EVENT_DROPLOOT Procure: uint32_t executeTarget(Creature* creature, Creature* target); Coloque abaixo: uint32_t executeDropLoot(Creature* creature, Item* item); Vá em player.h na função: void Player::dropLoot(Container* corpse) Troque por esta função: 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]); } } } } Vá em monster.cpp e procure: 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()); } Evento em uso: 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
    4 pontos
  3. homersapiens

    Diamond Shop

    Diamond Shop Para Instalar é bem fácil, extraia o arquivo game_shop.rar na pasta modules do OT Client(otc) Depois disso extraia esse arquivo shop.rar na pasta data/images Daí você pergunta: Ta mas e como funciona? Simples, por Talkactions, para configurar basta criar as talkactions no server. Para ficar mais fácil, tente criar as talkactions com as mesmas falas. /buyaddon -- para outfits !buy -- para vips #box# -- para box 4 !clan -- para clans Imagens: Só Postarei o Shop, os scripts são por sua conta! Algum Erro Poste no Tópico(Não atenderei dúvidas via pm/skype etc...) Créditos *Reps São Bem Vindos
    3 pontos
  4. 1 ponto
  5. Conteudo Retirado.
    1 ponto
  6. gabrielbsales

    [PDA] New Ditto System[PXG]

    Bom, esse ditto system: -Copia o pokemon e o balanceia sem necessidade de puxa-lo. -Copias Habilidades... Primeiramente, vá no some functions.lua - Localizado na pasta lib. E adicione isto no final(depois do ultimo end): Bom, essas são as funções de transformar e destransformar. Agora, vá no order.lua - Localizado no actions/scripts. E procure por: -------- TRANSFORM ---------- Apague tudo aqui dentro, até o: -------- LIGHT -------------- Ali dentro, bote: Pronto, ditto ja está tranformando, agora falta o !revert, para isso vá em talkactions/scripts e crie um arquivo(.lua) com nome de dittorevert, e dentro coloque: Agora, no talkactions.xml adicione esta linha: <talkaction words = "!revert;/revert" hide="yes" event = "script" value = "dittorevert.lua"/> Se fizer tudo corretamente, funcionará normalmente. Gif: Créditos: Gabrielbsales(sou op faço tudo solo)
    1 ponto
  7. 115757

    [Arquivado]ohayo!

    1 ponto
  8. meubk

    Aura System

    Olá hoje venho trazer um sistema não tão inovador por varios servers tem, porem o meu é mto diferente, para escolher sua aura vc precisa conversar com um npc, onde vc pode configurar para ser paga, precisar de level, ou somente para premiuns, no meu sistema está disponiveis as seguintes auras: Fire Ice Earth Death Holy Energy Que são os tipos mais comuns de magias do tibia, bom no script, enquanto vc está parado a aura são simples efeitos que acompanham o player e não foi feio por OnThink que pode causar lags no servidor, foi feito de um modo diferente, qndo vc está sendo atacado dependendo da chance escolhida a aura libera poderes, acertando alvos que estão te atacando, isso acontece automaticamente. Bom chega de explicação e vamos a instalação. Entre na pasta data/lib e crie um arquivo chamado configAura.lua e cole o seguinte código: -- [[ AURA SYSTEM LIB (BY: XXOTSERVXX) ]] -- -- [[ CONFIGURAÇÕES DO NPC ]] -- npc = { level = 1, -- level para pegar aura (1 para não precisar) price = 0, -- preço para comprar a aura (0 para ser gratis) premmy = false, -- precisar ser premium (false para não precisar) } -- [[ OUTRAS CONFIGURAÇÕES ]] -- auexchance = 20 -- chance de acontecer uma explosão de aura(maixmo 100) aurast = 56897 -- storage da aura (troque se ja estiver usando ela) Bom nesse script é onde você vai poder configurar variias coisas do script, é só seguir os comentários no script. Continuando na mesma pasta data/lib crie outro arquivo com o nome libAura.lua e cole o seguinte script: -- [[ FUNÇÕES ]] -- au = { ["fire"] = {ef = {5, 6, 15, 36}, sh = 3, dmg = COMBAT_FIREDAMAGE}, ["ice"] = {ef = {41, 42, 43}, sh = 28, dmg = COMBAT_ICEDAMAGE}, ["earth"] = {ef = {8, 45, 20}, sh = 29, dmg = COMBAT_EARTHDAMAGE}, ["death"] = {ef = {17, 34, 38}, sh = 31, dmg = COMBAT_DEATHDAMAGE}, ["holy"] = {ef = {39, 49}, sh = 30, dmg = COMBAT_HOLYDAMAGE}, ["energy"] = {ef = {11, 47, 48}, sh = 35, dmg = COMBAT_ENERGYDAMAGE} } function isAura(cid) if type(getPlayerStorageValue(cid, aurast)) == "string" then return true end return false end function addAura(cid, aura) return setPlayerStorageValue(cid, aurast, aura) end function getAura(cid) return getPlayerStorageValue(cid, aurast) end function startAura(cid, aura) a = au[aura] if not isCreature(cid) then return true end doSendMagicEffect(getThingPos(cid), a.ef[math.random(1, #a.ef)]) addEvent(startAura, 2000, cid, aura) end arrex = createCombatArea{ {0, 0, 1, 0, 0}, {0, 1, 1, 1, 0}, {1, 1, 2, 1, 1}, {0, 1, 1, 1, 0}, {0, 0, 1, 0, 0} } function sendExplosion(cid, aura, model) rateatk = math.ceil(getPlayerLevel(cid)/2*1,5) a = au[aura] min, max = rateatk/2, rateatk if model == 1 then doAreaCombatHealth(cid, a.dmg, getThingPos(cid), arrex, -min, -max, a.ef[math.random(1, #a.ef)]) elseif model == 2 then for i = 0, 3 do doSendDistanceShoot(getThingPos(cid), getPositionByDirection(getThingPos(cid), i, 1), a.sh) doAreaCombatHealth(cid, a.dmg, getPositionByDirection(getThingPos(cid), i, 1), 0, -min, -max, a.ef[math.random(1, #a.ef)]) end end end function getPositionByDirection(position, direction, size) -- TFS FUNCTION local n = size or 1 if(direction == NORTH) then position.y = position.y - n elseif(direction == SOUTH) then position.y = position.y + n elseif(direction == WEST) then position.x = position.x - n elseif(direction == EAST) then position.x = position.x + n elseif(direction == NORTHWEST) then position.y = position.y - n position.x = position.x - n elseif(direction == NORTHEAST) then position.y = position.y - n position.x = position.x + n elseif(direction == SOUTHWEST) then position.y = position.y + n position.x = position.x - n elseif(direction == SOUTHEAST) then position.y = position.y + n position.x = position.x + n end return position end Neste script não é recomendado mexer a não ser que vc seje um scritper e saiba oque faça. Agora entre na pasta data/creaturescripts/scripts e crie um arquivo chamado creatureAura.lua e cole o seguinte código: function onStatsChange(cid, attacker, type, combat, value) if type == STATSCHANGE_HEALTHLOSS then if isAura(cid) then if math.random(1, 100) < auexchance then sendExplosion(cid, getAura(cid), math.random(1, 2)) end end end return true end function onLogin(cid) if isAura(cid) then startAura(cid, getAura(cid)) end return true end Também não é recomendando mexer, continuando nesta mesma pasta (data/creaturescripts/scripts) procure pelo login.lua e no final do script antes do return true end, cole isto: registerCreatureEvent(cid, "loginAura") registerCreatureEvent(cid, "statsAura") Vá na pasta anterior data/creaturescripts e procure pelo arquivo creaturescripts.xml e adicione as seguintes tags: <event type="login" name="loginAura" event="script" value="creatureAura.lua"/> <event type="statschange" name="statsAura" event="script" value="creatureAura.lua"/> Agora entre na pasta data/npc e crie um arquivo chamado Npc Aura.xml e cole o seguinte codigo: <?xml version="1.0" encoding="UTF-8"?> <npc name="Npc Aura" script="npcAura.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="128" head="55" body="53" legs="42" feet="0" addons="2"/> <parameters> <parameter key="message_greet" value="Ola, diga {aura} para ver as auras disponiveis."/> </parameters> </npc> Entre na pasta data/npc/scripts e crie um arquivo chamado npcAura.lua e cole o seguinte código: 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 if msgcontains(msg, 'aura') then if not isAura(cid) then selfSay('Temos disponiveis as seguintes auras: {fire}, {ice}, {earth}, {death}, {holy} e {energy}, qual você quer aprender ?', cid) talkState = 1 else selfSay('Você já tem á '..getAura(cid).." aura.", cid) end elseif isInArray({"fire", "ice", "earth", "death", "holy", "energy"}, msg) and talkState == 1 then if getPlayerLevel(cid) < npc.level then return selfSay("Desculpe mais para aprender a aura é preciso level "..npc.level..".") end if getPlayerMoney(cid) < npc.price then return selfSay("Desculpe mais para aprender a aura é preciso "..npc.price.."gps.") end if not isPremium(cid) and npc.premmy then return selfSay("Desculpe mais para aprender a aura é preciso ser premium.") end addAura(cid, msg) startAura(cid, getAura(cid)) doPlayerRemoveMoney(cid, npc.price) selfSay("Você acaba de receber á "..getAura(cid).." aura.") talkState = 2 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Bom para quem não entende de script é recomendando mexer somente no configAura.lua da pasta data/lib, lá é possivel configurar de modo funcional. Obrigado por ter visto este tópico Fuii.
    1 ponto
  9. Dbko

    Hirashin kunai

    eae Galera Eu Vejo Muitos Garotos querendo A Scripts Do Hirashin Kunai Que Nao Passe Por cima Da Agua E Etc Hoje Eu vi um Scripts porem estava passando entao eu Reditei o Scripts Nao sei quem Crio Mas Editei E Deixei Assim Em Seu Actions Scripts Copie um Arquivo lua e renomei para Hiraishin.lua e cole Isso Dentro function onUse(cid, item, fromPosition, itemEx, toPosition) local pos = fromPosition local aqui = getPlayerPosition(cid) local vocs = {150, 300, 562, 563, 564, 565, 566, 567, 568} local agua = {4610, 4612, 4611, 4664, 4613, 4666, 4646, 4654, 4609, 4665, 4608, 4625, 4665, 4666, 4820, 4821, 4822, 4823, 4824, 4825, 4645} local parede = {1030, 1029, 1028, 1032, 1034, 1033, 873, 919, 874, 1037, 4472, 4475, 4471, 3388, 3363, 3398, 3408, 3417, 3420, 3407, 3368, 2701, 5130} local pedra = {874, 919, 873, 2784, 2778, 3330, 4471, 4475, 4473, 4472, 4474, 4468, 4478, 4469, 4470, 4479} if getDistanceBetween(aqui, toPosition) >= 4 then return doPlayerSendTextMessage(cid, 27, "Não pode.") elseif(not(isSightClear(aqui, toPosition, 1))) then return doPlayerSendTextMessage(cid, 27, "Isso E Impossivel.") elseif(getTilePzInfo(aqui)) then return doPlayerSendCancel(cid, "voce nao pode usar quando estiver em protect zone.") elseif(isInArray(agua, itemEx.itemid)) then return doPlayerSendTextMessage(cid, 27, "voce nao pode usar em agua") elseif(isInArray(parede, itemEx.itemid)) then return doPlayerSendTextMessage(cid, 27, "voce nao pode usar em paredes") elseif(isInArray(pedra, itemEx.itemid)) then return doPlayerSendTextMessage(cid, 27, "voce nao pode usar em pedras") elseif(not(isInArray(vocs, getPlayerVocation(cid)))) then return doPlayerSendTextMessage(cid, 27, "Desculpe Apenas Vocacao Minato Para Usar.") end if(doTeleportThing(cid, toPosition, false)) then doSendMagicEffect(pos, 252) doSendMagicEffect(toPosition, 252) end return doPlayerSendCancel(cid, "Desculpe Nao Foi Possivel.") end e em Actions.xml Se coloque <action itemid="7382" event="script" value="hiraishin.lua" allowfaruse="1"/> Caso Nao saiba Mudar a Vocation local vocs = {150, 300, 562, 563, 564, 565, 566, 567, 568} So Colocar o Id Da sua vocation Do Minato Ateciosamente, Luan Mello
    1 ponto
  10. Gabriel Couto

    Mudanças na equipe!

    Mudanças na equipe! Fala aí galerinha do XTibia, estou criando esse tópico para anunciar mudanças em nossa equipe! Nosso cargo de Supervisor de OTServ acaba de ser preenchido com o Omega, que era moderador responsável por scripting! Há poucos dias, sugeri internamente a sua promoção, assim como havia feito com o vital900 (hoje na seção de tibia global), e a proposta foi aceita por todos os membros da equipe que votaram! Então, Gostaria de parabenizar o membro, que tem se dedicado e vinha fazendo um ótimo trabalho em sua seção e como moderador. Esperamos que ele possa trazer novidades para a equipe de otserv, assim como na seção por inteira! Boa sorte com suas novas funções e espero que os membros possam te ajudar nessa nova experiência aqui no XTibia! Enquanto isso, nosso antigo membro da equipe volta à sua seção como Moderador! O Tonynh irá atuar na seção de design, e de quebra, vai ficar de olho no nosso barzinho, após ter recebido a minha indicação, e após muita insistência minha! Nosso estagiário de Tibia Global, JPedroTibianno também recebeu um up e agora é assistente da área, após um ótimo trabalho com vários tutoriais nas últimas duas semanas! Esperamos que continue seu trabalho! E, por último, e não menos importante, o DuuhCarvalho se junta à nossa equipe no estágio de scripting, após uma temporada com a capa de desenvolvedor! Parabéns e boa sorte nessa equipe! Abraços, Gabriel Couto.
    1 ponto
  11. Pequena Prainha Localizada Ao Sul Da City Principal =D Sou Iniciante, Não Me Julguem =D
    1 ponto
  12. DuuhCarvalho

    System Item Summon.

    O system item summon funciona assim: Ao dar use em 'X' item, no caso eu use o item : , Você summona uma criatura aleatoriamente. E ao dar use Novamente você remove a criatura . vá em data / actions / scripts... Crie um arquivo.lua e cole isso dentro : local monsters = {"Demon", "Rat", "Orc", "Medusa", "Dragon", "Ferumbras"} -- todos os monsters que podem ser summonados. local time = 1 -- tempo em minutos para usar o item novamente. local storage = 10923 -- storage qualquer, que não esteja em uso. function onUse(cid, Item, fromPosition, itemEx, toPosition) local pos = getCreaturePosition(cid) local summon = getCreatureSummons(cid) if (table.maxn(summon) < 1) then if getPlayerStorageValue(cid, storage) - os.time() <= 0 then local mst = monsters[math.random(#monsters)] doConvinceCreature(cid, doCreateMonster(monsters[math.random(#monsters)], pos)) doPlayerSendTextMessage(cid, 22, "Você summonou uma Criatura!") setPlayerStorageValue(cid, storage, os.time() + time*60) for _, pid in ipairs (getCreatureSummons(cid)) do doSendMagicEffect(getCreaturePosition(pid), 15) doCreatureSay(pid, "Vou Te Ajudar", TALKTYPE_ORANGE_1) end else doPlayerSendCancel(cid, "Você só pode usar esse item a cada "..time.." Minuto(s).") end elseif (table.maxn(summon) > 0) then for _, pid in ipairs(getCreatureSummons(cid)) do doCreatureSay(pid, "Tchau", TALKTYPE_ORANGE_1) doSendMagicEffect(getCreaturePosition(pid), 2) doRemoveCreature(pid) end doPlayerSendTextMessage(cid, 22, "Você Removeu A Criatura.") end return true end obs: tudo que você deve configurar , está explicado no script. Agora vá em data / actions / actions.xml... e coloque a tag : <action itemid="4870" script="Nome do Arquivo.lua" /> -- itemid = Id do item, no caso ta o item que mostrei no inicio. Demonstração em Imagens : Simples, porém útil . Sem sono e no tédio saiu isso Abraços.
    1 ponto
  13. Cyclops pelo Mundo! Tudo mundo já caçou essa criatura, uma das mais clássicas de todo o Tibia. Neste tutorial vou mostrar não um, mas cinco lugares interessantes para caçar os famosos cyclops, são eles, Femor Hills, Forsaken Mine, Mount Sternum, Mistrock e Cyclopolis. - Dividi o tópico em duas partes pois aqui está mostrando a mensagem "Desculpe, mas você postou mais imagens do que o número máximo permitido" - Link para a parte 1 aqui! Mount Sternum Mistrock Cyclopolis Informações e Loots dos Cyclops Nome: Cyclops HP: 260 XP: 150 Forte Contra: Holy e Energy Neutro Contra: Físico, Fire e Ice Fraco Contra: Death e Earth. Imune Contra: Nada Loot: 0-65 gold coins, battle shield, halberd, club ring, cyclops trophy, dark helmet, health potion. Nome: Cyclops Drone HP: 325 XP: 200 Forte Contra: Holy, Energy e Ice. Neutro Contra: Físico e Fire. Fraco Contra: Death e Earth. Imune Contra: Nada Loot: 0-24 gold coins, cyclops toe, battle shield, halberd, cyclops trophy, club ring, dark helmet, strong health potions. Nome: Cyclops Smith HP: 435 XP: 255 Forte Contra: Holy, Fire e Energy. Neutro Contra: Físico e Ice. Fraco Contra: Death e Poison. Imune Contra: Nada Loot: 0-70 gold coins, battle shield, battle hammer, battle axe, cyclops toe, dark helmet, cyclops trophy, strong health potion, double axe, club ring, spiked scquelcher. Valores dos Loots: Club RIng: 100gps Dark Helmet: 250gps Cyclops Trophy: 500gps Battle Hammer: 120gps Battle Axe: 80gps Cyclops Toe: 55gps Double Axe: 260gps Halberd: 400gps Battle Shield: 95gps Spiked Squelcher: 5.000gps
    1 ponto
  14. Toma function getPlayerInPos(position) return isPlayer(getTopCreature(position)) end
    1 ponto
  15. IJaX

    [Show Off] Outra Foto Do Meu Serve =D

    Sou Iniciante Espero Que Possam Compreender Meus Erros , =D
    1 ponto
  16. Ótimo mapa, parabéns.
    1 ponto
  17. prainha hum acho que deveria por area nas beradas toda se e uma praia e nao colocar avores dentro da praia e afastar mais essas avores deixar perto ou ate mesmo afastado so coqueiros de vez dessas arvores ai
    1 ponto
  18. Na pasta Data/Talkactions/Scripts crie um script chamado: shinytable.lua, e cole o código abaixo dentro: local tables = { "Pokemon - Shiny Stones:", "Elder Charizard - 5", "Shiny Venusaur - 5", } function onSay(cid, words) return doPlayerPopupFYI(cid, table.concat(tables, "\n")) end Agora em Data/Talkactions abra o arquivo Talkaction.xml e adicione a tag: <talkaction log="no" words="!shinystone" event="script" value="shinytable.lua"/> Configurando: Repita essa linha varias vezes "Shiny Name - 5",. embaixo de "Shiny Venusaur - 5", Vermelho: Nome do Shiny Azul: Stones Necessárias. Exemplo: local tables = { "Pokemon - Shiny Stones:", "Elder Charizard - 5", "Shiny Venusaur - 5", "Shiny Name - 5", "Shiny Name - 5", "Shiny Name - 5", "Shiny Name - 5", } function onSay(cid, words) return doPlayerPopupFYI(cid, table.concat(tables, "\n")) end
    1 ponto
  19. Aberos

    Diamond Shop

    kd os creditos do Viktor(Gristony)
    1 ponto
  20. min add skype luan.mello63 eu vo lhe ajuda quando chegar em casa pós estou celular chegando daqui a 40 minutos
    1 ponto
  21. se voce estiver usando o nto shinobi antigo mude para o novo o entao troca o distro como junior falo a cima isso e erro quando player executar magias d+ aew o seu server cai isso ja acontesceu comigo falou se ajudei
    1 ponto
  22. flagoa

    [Encerrado]TESTAR SERVIDOR TIBIA 9.81

    Olá galera... preciso de algumas pessoas para me ajudar, jogando um pouco meu servidor tibia 9.81. Tenho certeza de que vai superar suas expectativas! Mapa sem bugs (se acharem retiro na hora!). Sistema de !fly, vip's, premium, monstros editados para o servidor, quests exclusivas (com histórias e passagens secretas). Enfim, meu servidor é totalmente direcionado à jogabilidade do rpg... algo que está se perdendo no tibia (servidores). Temos zombie arena, arena de thais totalmente inovadora, castle, sistema de eventos como por exemplo "devovorga" idêntico ao global, batlefield e tudo que se deve ter no servidor tibia para garantir muita diversão! Durante o teste do servidor, estou totalmente aberto a diálogos pelo ts. Infelizmente, o teste está disponível apenas por hamachi. Rede: Lagoa Serei muito grato pela ajuda, e tenho certeza que irão se surpreender com a qualidade do servidor. Aguardo vocês!
    1 ponto
  23. BrenoNeto

    EkzART - Desenvolvendo Habilidades

    Claro, entra em contato via skype.
    1 ponto
  24. function onStatsChange(cid, attacker, type, combat, value) if getPlayerTown(cid) == getPlayerTown(attacker) and type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS then return false end return true end tag em login.lua : registerCreatureEvent(cid, "Nome do Evento") tag em creaturescripts.xml : <event type="statschange" name="Nome do Evento" event="script" value="Nome do Script.lua"/> testa ae..
    1 ponto
  25. Wend ll

    PDA By: Bolz:: Versão [GOD anna]

    Vai em OTclient\modules\client_entergame e abra o entergame.lua e encontre essa Parte ali onde ta o Ip você troca pelo o seu ,..
    1 ponto
  26. pessoa93

    Mudanças na equipe!

    Tonynh seu lindo, saudades! parabéns pela moderação.
    1 ponto
  27. SamueLGuedes

    PFW - Pokemon Fire World

    Não é só porque é Spriter, que não pode fazer sistemas. eu sou mapper, e faço scripts tambem '-'
    1 ponto
  28. Conectei o cliente com um ipchanger que encontrei na otland, ele não mostra, testei o ipchanger com outro servidor 10.31 e deu certo, no caso deste servidor somente entra até a parte de escolha do characters depois mostra offline. Quem conseguir rodar em win 32x sem problemas e puder compartilhar ficarei grata.
    1 ponto
  29. DuuhCarvalho

    System Recompensa por Level

    Bom o script é simples mais muito útil ! e muito fácil de configurar . vocês podem adicionar quando leveis e items vocês quiserem ! vá em data / creaturescripts / scripts : crie um novo arquivo.lua e cole isso dentro .. local leveis = { [1] = {lvl = 50, item = 2160, quant = 10, sto = 001}, [2] = {lvl = 100, item = 2160, quant = 20, sto = 002}, [3] = {lvl = 200, item = 2160, quant = 40, sto = 003}, [4] = {lvl = 300, item = 2160, quant = 60, sto = 004}, [5] = {lvl = 400, item = 2160, quant = 80, sto = 005}, [6] = {lvl = 500, item = 2160, quant = 100, sto = 006} } function onAdvance(cid, skill, oldLevel, newLevel) local level = getPlayerLevel(cid) for i = 1, #leveis do if level >= leveis[i].lvl and getPlayerStorageValue(cid, leveis[i].sto) <= 0 then doPlayerAddItem(cid, leveis[i].item, leveis[i].quant) setPlayerStorageValue(cid, leveis[i].sto, 1) doPlayerSendTextMessage(cid, 22, "Você upou level "..level.." ou mais, e ganhou "..leveis[i].quant..", "..getItemNameById(leveis[i].item).."!") end end return true end configurando o script : Adicione a tag em script / login.lua .. registerCreatureEvent(cid, "Nome do Evento") e Adicione a tag em creaturescripts.xml : <event type="advance" name="Nome do Evento colocado em login.lua" event="script" value="Nome do Arquivo.lua"/> É isso!
    1 ponto
  30. Frenvius

    Fairy Tail Online [FTO]

    Mais um exemplar, ainda não atualizado
    1 ponto
  31. DuuhCarvalho

    System Recompensa por Level

    Brigado : D Espero que realmente usem , abraços .
    1 ponto
  32. Hyaki

    Daarky [Show off - Iniciante]

    Tentei fazer uma espada agora, não sei porque mas itens de gelo são fodas *u* Espada de Gelo (algo do gênero)
    1 ponto
  33. Cyclops pelo Mundo! Tudo mundo já caçou essa criatura, uma das mais clássicas de todo o Tibia. Neste tutorial vou mostrar não um, mas cinco lugares interessantes para caçar os famosos cyclops, são eles, Femor Hills, Forsaken Mine, Mount Sternum, Mistrock e Cyclopolis. - Dividi o tópico em duas partes pois aqui está mostrando a mensagem "Desculpe, mas você postou mais imagens do que o número máximo permitido" - Link para a parte 2 aqui! Femor Hills Forsaken Mine Informações e Loots dos Cyclops Nome: Cyclops HP: 260 XP: 150 Forte Contra: Holy e Energy Neutro Contra: Físico, Fire e Ice Fraco Contra: Death e Earth. Imune Contra: Nada Loot: 0-65 gold coins, battle shield, halberd, club ring, cyclops trophy, dark helmet, health potion. Nome: Cyclops Drone HP: 325 XP: 200 Forte Contra: Holy, Energy e Ice. Neutro Contra: Físico e Fire. Fraco Contra: Death e Earth. Imune Contra: Nada Loot: 0-24 gold coins, cyclops toe, battle shield, halberd, cyclops trophy, club ring, dark helmet, strong health potions. Nome: Cyclops Smith HP: 435 XP: 255 Forte Contra: Holy, Fire e Energy. Neutro Contra: Físico e Ice. Fraco Contra: Death e Poison. Imune Contra: Nada Loot: 0-70 gold coins, battle shield, battle hammer, battle axe, cyclops toe, dark helmet, cyclops trophy, strong health potion, double axe, club ring, spiked scquelcher. Valores dos Loots: Club RIng: 100gps Dark Helmet: 250gps Cyclops Trophy: 500gps Battle Hammer: 120gps Battle Axe: 80gps Cyclops Toe: 55gps Double Axe: 260gps Halberd: 400gps Battle Shield: 95gps Spiked Squelcher: 5.000gps
    1 ponto
  34. Mistrock é MUITO BOM! Só tem Cyclops, nada mais pra atrapalhar. Upei do level 30 ao 48 principalmente lá, era 1 level a cada 1h~1h30, cheguei a cravar 80k/h com bônus de paladin. Só que abaixo do 45, não é muito bom ir sem um Stealth Ring, principalmente na área inferior que é mais dificil (tem buracos com 3~4 smiths juntos). Na área superior, eu recomendaria a partir do 40, que já vai sem stealth Só achei que é potion demais. Eu ia com 20 de cada, mas como dropava mais HP do que eu usava, passei a levar 10/30. Eu usei 1 ou 2 pra pegar todos esses levels.
    1 ponto
  35. beto06

    {SHOW OFF} RastaLegion

    eu tiraria o musgo do ground e os cristais porque acho que não combinam.. fora isso dá pra distribuir o gravel de uma forma melhor se quiser também
    1 ponto
  36. RastaLegion

    {SHOW OFF} RastaLegion

    Obrigado =) Acabado. aceito dicas e comentarios
    1 ponto
  37. DuuhCarvalho

    Mudanças na equipe!

    Agradeço a oportunidade ! Estarei sempre fazendo o meu e ajudando . Abraços ><
    1 ponto
  38. tenta assim se não for tenta assim:
    1 ponto
  39. Olha usuários, manjadores no paranaue de spriting e taaaaaaauz ksaposakp bom eu tenho um servidor de naruto ((tibia)) e quero adicionar duas sprits, seria a do nidaime e a do madara as novas ... Que serião essas aqui.. Porém quando eu termino eu coloco no outfits.xml DESSE MODO! Ai quando eu logo no ot, fala que esse outfit "newtype" não existe ?? alguem pode ajudar porfavor
    1 ponto
  40. Crazyskezi

    Naruto sennin pedido :/

    Amigo vou seguir seu tópico, vou continuar vendo, quero essa mesma coisa. porém me ajude se poder. http://www.xtibia.com/forum/topic/230745-ajuda-sprit-nao-quer-entrar-no-serv/
    1 ponto
  41. Novo Vídeo adicionado, Como adicionar outfit. Obrigado lucas, continuarei postando mais videos para a galera.
    1 ponto
  42. Pronto, desculpe esqueci de por público.
    1 ponto
  43. Dbko

    primeiras sprite

    Eae Galera Hoje Vim Aki Mostra Umas Das Minhas Primeiras Sprite Mostra a Gunbai e o Kisame ring em breve vo tentar por Katabara tentativa nidaime Creditos: DBKO Feita Por Min Eu postei está sprite no forum do dbo caso venha alguem falar besteiras falando que ja tava no forum do dbobrasil eu Pus Alta Assim Pra Voces Verem Melhor Quiserem Algumas Sprite Ou Ajuda Com Sprite Se tiver Algo Errado Ai pesso Pra que Min Ajudem so novato na Area De sprite Sou Mapper E Client Maker Querendo min Torna um Scripts Ateciosamente: Luan Mello
    1 ponto
  44. zipter98

    Tile teleport storage

    Sabe fazer a tag? local STORAGE = x --Storage. local VALUE = x --Valor da storage acima. local POS = {x = x, y = y, z = z} --Para onde será teleportado. function onStepIn(cid, item, position, fromPosition) if not isPlayer(cid) then return true end if getPlayerStorageValue(cid, STORAGE) >= VALUE then doTeleportThing(cid, POS) doPlayerSendTextMessage(cid, 27, "Você foi teleportado.") return true else return doPlayerSendCancel(cid, "Você não possui a storage.") and doTeleportThing(cid, fromPosition) end return true end
    1 ponto
  45. warotserv

    PvP Team

    Este sistema faz com que o server seja divido em 2 times, o time vermelho e o time azul. em "data\creaturescripts\scripts" crie um arquivo chamado "pvpTeam.lua" e cole o seguinte código redTeamSpawn = { x = 218, y = 172, z = 7} -- red team spawn position blueTeamSpawn = { x = 218, y = 170, z = 7} -- blue team spawn position redTeamParticipants = {} blueTeamParticipants = {} function teamLength(team) -- return the number of players in team local count = 0 for _ in pairs(team) do count = count + 1 end return count end function playerJoin(cid) -- try to join player in event if ableToJoin(cid) then redTeamParticipantsLength = teamLength(redTeamParticipants) blueTeamParticipantsLength = teamLength(blueTeamParticipants) if redTeamParticipantsLength <= blueTeamParticipantsLength then redTeamParticipants[cid] = true doPlayerSendTextMessage(cid,22,"Voce foi escolhido para ser do time vermelho.") doTeleportThing(cid, redTeamSpawn) else blueTeamParticipants[cid] = true doPlayerSendTextMessage(cid,22,"Voce foi escolhido para ser do time azul.") doTeleportThing(cid, blueTeamSpawn) end return TRUE else return FALSE end end function playerRemove(cid) -- remove player from event (if its participating) if isParticipating(cid) then if redTeamParticipants[cid] == true then redTeamParticipants[cid] = nil else blueTeamParticipants[cid] = nil end return TRUE else return FALSE end end function isParticipating (cid) -- verify if player is participating of the event if blueTeamParticipants[cid] == true or redTeamParticipants[cid] == true then return TRUE else return FALSE end end function ableToJoin (cid) -- checks if players are able to join if isPlayer(cid) and not isParticipating(cid) then return TRUE else return FALSE end end function arePlayersOfSameTeam (cid1, cid2) -- checks if the players are of the same team if ((blueTeamParticipants[cid1] == true and blueTeamParticipants[cid2] == true) or (redTeamParticipants[cid1] and redTeamParticipants[cid2])) then return TRUE else return FALSE end end function onLogin(cid) -- checks if it's really a player and if it's only if isPlayer(cid) then if isParticipating(cid) == true then return FALSE -- Ooops! If the script reachs here, we gotta verify what's going wrong else if playerJoin(cid) == true then return TRUE -- everything gone as expected else return FALSE -- Ooops! If the script reachs here, we gotta verify what's going wrong end end else return TRUE end end function onLogout(cid) -- this function is essential to not unbalance the teams if isParticipating (cid) then return playerRemove(cid) end return TRUE end function onAttack(cid, attacker) -- verify if both are players if not isPlayer(cid) or not isPlayer(attacker) then return TRUE end -- are those players participating of the event? if not isParticipating(cid) or not isParticipating (attacker) then return TRUE end if arePlayersOfSameTeam(cid, attacker) then -- a player of the same team cannot attack the other!! return FALSE else return TRUE end end function onStatsChange(cid, attacker, t, combat, value) -- verify if both are players if not isPlayer(cid) or not isPlayer(attacker) then return TRUE end -- verify if both are participating of PVP if isParticipating(cid) and isParticipating(attacker) then -- both are participating of event -- verify if both are of the same team if arePlayersOfSameTeam(cid, attacker) then -- they're of the same team. Only heals are acceptable if t == STATSCHANGE_HEALTHGAIN or t == STATSCHANGE_MANAGAIN then return TRUE else return FALSE end else -- they're not of the same team. Only damages are acceptable if t == STATSCHANGE_HEALTHGAIN or t == STATSCHANGE_MANAGAIN then return FALSE else return TRUE end end else -- one or both are not participating of event return TRUE end -- getting local player1Team = monstersTeam[getCreatureName(cid)] -- return if it has no team if player1Team == nil then return TRUE end -- getting monster that is attacking team local monster2Team = monstersTeam[getCreatureName(attacker)] -- return if it has no team if monster2Team == nil then return TRUE end -- check if they're of the same team if monster1Team == monster2Team then -- if they're of the same team, returning false will not allow the damage to be done to its partner return FALSE else return TRUE end return TRUE end agora, em "creaturescripts.xml" adicione o seguinte <event type="attack" name="PvpTeam1" event="script" value="pvpTeam.lua"/> <event type="statschange" name="PvpTeam2" event="script" value="pvpTeam.lua"/> <event type="login" name="PvpTeam3" event="script" value="pvpTeam.lua"/> <event type="logout" name="PvpTeam4" event="script" value="pvpTeam.lua"/> depois, no arquivo "login.lua" que se encontra em "data\creaturescripts\scripts" adicione registerCreatureEvent(cid, "PvpTeam1") registerCreatureEvent(cid, "PvpTeam2") registerCreatureEvent(cid, "PvpTeam3") registerCreatureEvent(cid, "PvpTeam4") Bom, é isso. Espero ter ajudado. P.S.: Não me importo que roubem meus créditos e/ou postem em outros fórums.
    1 ponto
  46. otc client ja tem seu proprio bot ou faza um bot para otc otc é script entao tem que fazer o bot em script
    1 ponto
  47. vmAth

    Hokai City

    Versão: 9.6 Download: Clique aqui Créditos: Hokai.
    1 ponto
  48. beto06

    [Mapping] Cave - Básico

    Bom, irei dividir o tutorial em três passos: 1. Bordas/Shape A dica é fazer com calma as bordas da caverna, nada muito reto dependendo do tema. O minimap (M) pode ajudar um pouco. Comece por algo pequeno para praticar. Nesse caso, estou fazendo uma caverna de Rotworm: 2. Grounds/Gravel Coloque o ground e dê uma variada para não ficar muito 'entediante'. Feito isso, adicione o gravel em bons lugares como nos cantos e nas pontas das bordas da caverna. Veja como eu fiz: 3. Detalhes Temáticos Dependendo do tema da sua caverna, (se for, por exemplo, de Tarantulas, adicione teias, etc...) adicione os detalhes com coerência. Como esta é de Rotworms; cogumelos (ID 2792), musgo (ID 5557 e 5563), plantas (ID 5397), pedrinhas (ID 3653 e 3611) e tufos (ID 6219) é o necessário: é isso, acho que está simples de se aprender uma base. Valeu http://2.imgland.net/fo6tgM.png http://2.imgland.net/CKW0D5.png http://2.imgland.net/EyPMPb.png
    1 ponto
  49. Vodkart

    Battlefield Event!

    Na verdade ta indentado, o xtibia que quebra a identação ._.
    1 ponto
  50. BlackLeft

    Tibia 8.6 (Rme)

    Notei que muitas pessoas está precisando do cliente do tibia 8.6 do remers (pois a porra do site do remeres esta off).... pois o unico jeito do seu mapa abrir para vc editar 8.6 é pegando o cliente que vou abaixo + RME2.1 : Download Tibia 8.6 Remeres Remeres 2.1 Scan: Depois coloco não deu tempo de colocar pois tive que ir para o trampo, mais quando eu chegar eu boto. (arquivo 100% livre de virus) Como Instalar: 1° Faça o download no 4shared. 2° Extraia a pasta do tibia 8.6 para algum lugar. 3° Abra seu RME com um mapa 8.6 selecione a pasta que você baixou. 4° Seja FELIZ !! Não custa nada da um +REP !!
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...