Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 12/30/12 em todas áreas

  1. [8.6] Bueiro

    Stigal e 2 outros reagiu a Markin por uma resposta no tópico

    3 pontos
    Bom, fiz um mapa para um concurso em outro fórum e vou postar aqui... É uma mapa pequeno, mais da para tirar uma base boa para fazer um mapa completo Versão: 8.6 Download Scan
  2. OT 9.81 + Sources 32/64 bits

    Striker Macabrus e um outro reagiu a leandrovp por uma resposta no tópico

    2 pontos
    Olá Galerinha venho disponibilizar Servidor 9.81 + Sources 32/64 bits 9.81 + Sources 32 Bits http://www.4shared.c...ces_32bits.html 9.81 + Sources 64 Bits http://www.4shared.c...ces_64bits.html Créditos : TFS : 90% Valdemiro 5% Leandrovp 5% Skype : Leandro_machado92 Face : /leandro.machado.5243 Msn : [email protected] Ajudei? REP +
  3. [Sistema] Battlefield Event! V.1

    Orientalz reagiu a Vodkart por uma resposta no tópico

    1 ponto
    Mapa BattleField Feito Por AnneMotta : Mapa Battlefield.rar Scan: https://www.virustot...sis/1346548669/ Imagens do mapa Descrição: - O evento é automático e acontece em determinado dia e hora da semana - Logo após é aberto um teleport então apenar um número limitado de players entra no evento - São formados por dois times, os "Black Assassins" e os "Red Barbarians" - Os times são balanceados automaticamente, quando o último jogador entra, esse teleport é fechado e depois de 5 minutos o evento começa, os 5 minutos são para os players ter tempo de planejar um ataque. - O sistema tem por finalidade matar todos do time inimigo, e os players que sobreviverem recebem um prêmio. Bônus: - Durante o evento é mostrado na tela somente dos jogadores que estão no evento um placar de times. - Até o último player entrar no evento, ficam mandando broadcast dizendo quanto players faltam para dar inicio ao jogo. - Se o evento abrir e não atingir a meta de players colocada, o evento é finalizado e os players voltam para o templo. Lembre-se: - De colocar Pvp Tool na área - De colocar área NoLogout Imagens: Instalação: Data > Lib Data > CreatureScript > Script Data > GlobalEvents > Scripts Data > Movements > Script Configurações do evento
  4. 1 ponto
    Fala galerinha do Tibia King tudo bom? Venho aqui apresentar o novo Destruction Map V7.0 (8.6) O Destruction Serv V6.0 ja teve no ****** por um tempo, mas foi apagado por virus. Vamos deichar de Papo e vamos conhecer o Server ??? Informações sobre o Mapa: Mapa totalmente Editado Reflection Boots funcionando 100% Novas Spells Novos Itens Novos Monster Novas Scripts E muito mais... Screen Shot (SS) Temple: Flatron VIP Temple: Eu estou sem tempo para postar novas fotos, mas logo logo mais fotos terão Download Pasta: http://www.4shared.com/rar/D50lcdGB/86_Destruction_Map_V70.html Scan: https://www.virustotal.com/file/6ab6dae78df3290a181582d2308f666a840faa6f9a50f0828b6d7002aac459ed/analysis/ Download Distro, dlls... http://www.4shared.com/rar/jNIieRyC/Distro_e_Dlls.html? Scan https://www.virustotal.com/file/1a92bd4907edf59c62518eae1fe6973edbf6fbf414bbd5a8502cdc71d8145b41/analysis/1336049191/ Gostou ??? Então da um REP+ Ai custa nada Créditos: EU (Por editar o Mapa) Doidin (Distro, dlls...) E outros membros do ****** por alguns script. Espero que Gostem
  5. [Gesior] Calendário de Eventos

    rodox2008 reagiu a Juliano Bazzi por uma resposta no tópico

    1 ponto
    Eae galera do Tibia King, bom vamos ao meu primeiro Tutorial Eu estou com um projeto de ot, e estou desenvolvendo algumas páginas pro website, e vou disponibilizar algumas pra vocês.. O Calendário de Eventos é bem simples, ele é todo editado manualmente.. Mesmo assim, espero que gostem Primeiro crie um arquivo chamado calendar.php e cole o código abaixo: Agora vá em: index.php e após isso: case "polls"; $topic = "Polls"; $subtopic = "polls"; include("polls.php"); break; Cole isso: case "calendar"; $topic = "Calendario"; $subtopic = "calendar"; include("calendar.php"); break; Após ter feito os passos acima, vá em layouts\tibiacom e abra o arquivo layout.php, e ANTES disso: <a href='?subtopic=warofemperium'> <div id='submenu_warofemperium' class='Submenuitem' onmouseover='MouseOverSubmenuItem(this)' onmouseout='MouseOutSubmenuItem(this)'> <div class='LeftChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> <div id='ActiveSubmenuItemIcon_warofemperium' class='ActiveSubmenuItemIcon' style='background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'>War of Emperium</div> <div class='RightChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> </div> </a> Cole esse código aqui: <a href='?subtopic=calendar'> <div id='submenu_calendar' class='Submenuitem' onmouseover='MouseOverSubmenuItem(this)' onmouseout='MouseOutSubmenuItem(this)'> <div class='LeftChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> <div id='ActiveSubmenuItemIcon_calendar' class='ActiveSubmenuItemIcon' style='background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel' style="color: red;">Calendário</div> <div class='RightChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> </div> </a> E o resultado final é esse:
  6. 1 ponto
    Olá Galerinha do TibiaKing demorei algum tempinho para disponibilizar o Pack mas está pronto. Segue ScreenShot de algumas sprites e a seguir Download. ScreenShot de algumas sprites: Download: http://www.4shared.c..._EddyHavoc.html Senha para extrair os Arquivos: eddyhavoc Exclusivo TibiaKing Créditos a todos os autores que criaram as sprites ! Se a pedido quiser que cite o seu nome post aqui no tópico a sprite de sua autoria e prove que é de sua autoria.
  7. [8.60] Custom Rpg Hunt Deads *

    Fabiano Alberto reagiu a Mad Rats por uma resposta no tópico

    1 ponto
    eae Galera TK Hoje Vou Lhes Trazer Uma Hunt Muito Boa Para Seu Mapa Rpg Ou Custom Mapa e Simples Para Seu Mapa Vamos As S's . Bom Hunt Posta + Creditos Adicionados Bom Proveito Das Hunts . ..:: ! SKAN DAS HUNTS [8.60] ! ::.. ..:: ! Download Mapa HUNTS [8.60] ! ::.. Developer's By : Mad Deads * Menoxcide *
  8. [NPC] Montarias de Aluguel

    gacjogos reagiu a Vodkart por uma resposta no tópico

    1 ponto
    Versão testada: 9.1 Descrição: É um npc simples que tem como função alugar determinadas montarias por certo tempo, dias para ser exato. Em Mods: AluguelMount.xml <?xml version="1.0" encoding="UTF-8"?> <mod name="Aluguel Mounts" version="1.0" author="Vodkart" contact="tibiaking.com" enabled="yes"> <config name="aluguel_func"><![CDATA[ Aluguel_mounts = { ["war horse"] = {price = 10000, days = 2, mountid = 17, level = 10, premium = false, storage = 500561}, ["fire war horse"] = {price = 30000, days = 1, mountid = 23, level = 20, premium = false, storage = 500562}, ["sandstone scorpion"] = {price = 50000, days = 1, mountid = 21, level = 30, premium = true, storage = 500563} } function doRemovePlayerMount(cid, mountId) doPlayerRemoveMount(cid, mountId) return doCreatureChangeOutfit(cid,{lookType = getCreatureOutfit(cid).lookType, lookHead = getCreatureOutfit(cid).lookHead, lookBody = getCreatureOutfit(cid).lookBody, lookLegs = getCreatureOutfit(cid).lookLegs, lookFeet = getCreatureOutfit(cid).lookFeet, lookAddons = getCreatureOutfit(cid).lookAddons}) end function CheckRentMount(cid) for var, ret in pairs(Aluguel_mounts) do if canPlayerRideMount(cid, ret.mountid) and getPlayerStorageValue(cid, ret.storage) ~= -1 and getPlayerStorageValue(cid, ret.storage) <= os.time() then doRemovePlayerMount(cid, ret.mountid) doPlayerSendTextMessage(cid,18,"O tempo da sua montaria "..var.." acabou, para adquirir ela novamente volte ao npc.") end end end ]]></config> <globalevent name="CheckMount" interval="60000" event="script"><![CDATA[ domodlib('aluguel_func') function onThink(interval, lastExecution) local on = getPlayersOnline() if #on > 0 then for i = 1, #on do CheckRentMount(on[i]) end end return true end]]></globalevent> </mod> obs: Checar duas coisas em mods, primeira: Se a função que checa se tem a mount é 'canPlayerRideMount' ou 'getPlayerMount', caso for 'getPlayerMount' trocar: canPlayerRideMount(cid, ret.mountid) por: getPlayerMount(cid, ret.mountid) segunda: o intervalo de tempo na tag do globalevents, no meu server era em mile segundos: interval="60000" -- caso o seu não seja em mile segundos troque 60000 por 60. Data/Npc Peach.xml <?xml version="1.0"?> <npc name="Peach" script="data/npc/scripts/aluguelmounts.lua" walkinterval="50000" floorchange="0"> <health now="1000" max="1000"/> <look type="130" head="0" body="114" legs="114" feet="0" addons="0"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|. You want to {rent} a {mount}?"/> </parameters> </npc> Data/Npc/Script aluguelmounts.lua domodlib('aluguel_func') 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 local msg = string.lower(msg) if isInArray({'aluguel','alugar', 'rent', 'mounts', 'mount'}, msg) then npcHandler:say("Você pode comprar {war horse}, {fire war horse} e {sandstone scorpion}!", cid) talkState[talkUser] = 1 elseif talkState[talkUser] == 1 then if Aluguel_mounts[msg] then if Aluguel_mounts[msg].premium == true and not isPremium(cid) then npcHandler:say('Você precisa ser premium para alugar essa montaria.', cid) return true elseif getPlayerLevel(cid) < Aluguel_mounts[msg].level then npcHandler:say('você precisa ter level ' .. Aluguel_mounts[msg].level .. ' ou mais para alugar essa montaria.', cid) return true elseif getPlayerStorageValue(cid, Aluguel_mounts[msg].storage) >= os.time() then npcHandler:say('você já alugou essa montaria!', cid) return true end name,price,stor,days,mountid = msg,Aluguel_mounts[msg].price,Aluguel_mounts[msg].storage,Aluguel_mounts[msg].days,Aluguel_mounts[msg].mountid npcHandler:say('Você quer alugar a montaria '..name..' por '..days..' dia'..(days > 1 and 's' or '')..' no preço de '..price..' gps? {yes}', cid) talkState[talkUser] = 2 else npcHandler:say('Desculpe, eu não vendo essa montaria.', cid) end elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then if doPlayerRemoveMoney(cid, price) then doPlayerAddMount(cid, mountid) setPlayerStorageValue(cid, stor, os.time()+days*86400) npcHandler:say('Aqui está sua montaria '..name..', ela irá durar até '..os.date("%d %B %Y %X", getPlayerStorageValue(cid,stor))..'.', cid) else npcHandler:say('você não tem dinheiro suficiente para alugar a montaria!', cid) talkState[talkUser] = 0 end elseif msg == "no" then selfSay("Then not", cid) talkState[talkUser] = 0 npcHandler:releaseFocus(cid) end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Configuração: Em mods tem uma tabela chamada 'Aluguel_mounts'
  9. 1 ponto
    Bom é o seguinte,alguem pode editar um bixo pramin?a outifit eu quero 254,hp 2000000000000000000000 atake 200000 e que ele solte magias nao importa qual mais hita uns 300k intervalo 20 segundos,mana 100000 heal 10000, loot ip 11192,25~50 Basicamento so isso E o nome é Boss Event Mals ae gente double post
  10. MageBot

    m1theus reagiu a Augusto por uma resposta no tópico

    1 ponto
    Não precisa instalar, execute ele, e com ele aberto, abra quantos cliente quiser (aguentar)
  11. Problema quando Player morre!

    leandrovp reagiu a thiagobji por uma resposta no tópico

    1 ponto
    Cara, esse erro já deu comigo, ele é do capeta mesmo, nunca sai, do mais que você configure tudo ele não sai, mais eu consegui arrumar assim Em vez de por o pos inicial 160 54 7, eu coloquei outro pos, exemplo 157 52 7, ai configurei tudo e pronto, o erro nunca mais deu.
  12. [Resolvido] NPC Arena Erro

    WarW0lf reagiu a thiagobji por uma resposta no tópico

    1 ponto
    Ai WarW0lf, sem spoiler: <?xml version="1.0" encoding="UTF-8"?> <mod name="Arena Svargrond" version="1.0" author="Tommy" contact="[email protected]" enabled="yes"> <config name="arenaFunctions"><![CDATA[ KickPosition = {x=32227, y=31096, z=7} --if the player leave the arena or time is over, where he go. RewardsRoom = {x=32222, y=31080, z=6} --rewards room position. arenaRoomMaxTime = 240 --max time for each room 240 = 4 min. OpenDoorsID = 5127 --if you change doors item ids, change me =D TimeStor = 42350 --here will be saved the time. myArenaLevel = 45450 --here will be saved the arena level. talkNPC = 45451 --Storage to check if the player have paid to the npc and can enter to the arena. RewardsStor = {42361, 42371, 42381} --Storage for greenshore, scrapper, warlord. isIN = 42352 --to check if the player is in the arena. myRoom = 46000 --here will be saved the current room. MonStor = 47000 --here will be saved the monster uid. DoorsActID = 42357 --Doors near the npc. LeavePortals = 42321 --The action id of the portal to leave the rooms (south portals). GobletTiles = {42360, 42370, 42380} --Action ids of the tiles for Bronze, Silver and Gold Goblets. Cancel = { --message when use door and have not paid to the npc. [1] = "You have not paid NPC yet.", --message when leave arena. [2] = "You have been kicked!", --message when the player can't get the reward. [3] = "You can\'t get this item.", --message when already got any reward. [4] = "It is empty.", --when try to open a reward door and haven't completed the level. [5] = "You have not finished this arena level.", --NPC answer if the player completed all arena levels. [6] = "You already did all the arena levels.", --message when time is over [7] = "The time is over.", --message when you can go to the next room, LoL >_> this is not a cancel btw. [8] = "You can go to the next room.", --when try to go to the next room and not killed the monster yet. [9] = "Kill the monster first!", --when try to go to the next room but there is a player yet...this text will be PLAYERNAME + this text [10] = "Is in the room yet." } Completed = { [1] = "Congatulations! You have completed the arena in", --HERE WILL BE THE ARENA NAME. [2] = "difficulty! Now you go take your reward."} --then the message will be "Congatulations! you have completed the arena in greenshore/scrapper/warlord difficulty!, now go and take your reward." Arena = { --greenshore [0] = { Cost = 10000, LevelName = 'greenshore', LevelNeeded = 30, Goblet = 5807 }, --scrapper [1] = { Cost = 50000, LevelName = 'scrapper', LevelNeeded = 50, Goblet = 5806 }, --warlord [2] = { Cost = 100000, LevelName = 'warlord', LevelNeeded = 80, Goblet = 5805 } } Rewards = { --greenshore --present with items. [42361] = { Stor = RewardsStor[1], Cont = 1990, items = {7372, 6569, 6574, 2114}, count = {1, 10, 1, 1} }, --blacksteel sword. [42362] = { Stor = RewardsStor[1], Cont = nil, item = 7406 }, --headchopper. [42363] = { Stor = RewardsStor[1], Cont = nil, item = 7380 }, --orcish maul. [42364] = { Stor = RewardsStor[1], Cont = nil, item = 7392 }, --backpack with items. [42365] = { Stor = RewardsStor[1], Cont = 7342, items = {7365, 7364}, count = {100, 100} }, --scrapper --present with items. [42371] = { Stor = RewardsStor[2], Cont = 1990, items = {7372, 6569, 6574, 7183}, count = {1, 10, 1, 1} }, --mystic blade. [42372] = { Stor = RewardsStor[2], Cont = nil, item = 7384 }, --heroic axe. [42373] = { Stor = RewardsStor[2], Cont = nil, item = 7389 }, --cranial basher [42374] = { Stor = RewardsStor[2], Cont = nil, item = 7415 }, --backpack with items. [42375] = { Stor = RewardsStor[2], Cont = 7342, items = {7365, 2547, 2547, 2311, 2304}, count = {100, 100, 100, 50, 50} }, --warlord --present with items. [42381] = { Stor = RewardsStor[3], Cont = 1990, items = {7372, 6569, 6574, 6568}, count = {1, 10, 1, 1} }, --justice seeker [42382] = { Stor = RewardsStor[3], Cont = nil, item = 7390 }, --royal axe. [42383] = { Stor = RewardsStor[3], Cont = nil, item = 7434 }, --blessed sceptre. [42384] = { Stor = RewardsStor[3], Cont = nil, item = 7429 }, --backpack with items. [42385] = { Stor = RewardsStor[3], Cont = 7342, items = {2273, 2268, 7443, 7440, 7529}, count = {50, 50, 1, 1, 100} } } arena_monsters = { --greenshore -scrapper --warlord [45300] = "Frostfur", [45310] = "Avalanche", [45320] = "Webster", [45301] = "Bloodpaw", [45311] = "Kreebosh the Exile", [45321] = "Darakan the Executioner", [45302] = "Bovinus", [45312] = "The Dark Dancer", [45322] = "Norgle Glacierbeard", [45303] = "Achad", [45313] = "The Hag", [45323] = "The Pit Lord", [45304] = "Colerian The Barbarian", [45314] = "Slim", [45324] = "Svoren the Mad", [45305] = "The Hairy One", [45315] = "Grimgor Guteater", [45325] = "The Masked Marauder", [45306] = "Axeitus Headbanger", [45316] = "Drasilla", [45326] = "Gnorre Chyllson", [45307] = "Rocky", [45317] = "Spirit of Earth", [45327] = "Fallen Mooh'tah Master Ghar", [45308] = "Cursed Gladiator", [45318] = "Spirit of Water", [45328] = "Deathbringer", [45309] = "Orcus the Cruel", [45319] = "Spirit of Fire", [45329] = "The Obliverator"} Checking = false RoomsACT = {42301, 42302, 42303, 42304, 42305, 42306, 42307, 42308, 42309} Goblets = { [42360] = {Id=Arena[0].Goblet, txt="It is given to the courageous victor of the barbarian arena "..Arena[0].LevelName.." difficulty."}, [42370] = {Id=Arena[1].Goblet, txt="It is given to the courageous victor of the barbarian arena "..Arena[1].LevelName.." difficulty."}, [42380] = {Id=Arena[2].Goblet, txt="It is given to the courageous victor of the barbarian arena "..Arena[2].LevelName.." difficulty."}} RewardsDoors = {[42366] = 1, [42376] = 2, [42386] = 3} ArenaAdding = {[0] = 3000, [1] = 3010, [2] = 3020} function myArenaLevelIs(cid) Stor = getPlayerStorageValue(cid, myArenaLevel) < 0 and 0 or getPlayerStorageValue(cid, myArenaLevel) if Stor == -1 then setPlayerStorageValue(cid, myArenaLevel, 0) Stor = 0 elseif Stor == 3 then Stor = 2 end return { RC = Arena[Stor].Cost, LN = Arena[Stor].LevelName, RLV = Arena[Stor].LevelNeeded, LV = getPlayerStorageValue(cid, myArenaLevel) } end function getDirectionmove(cid, itempos) --function by Nahruto p = getCreaturePosition(cid) i = itempos if p.x > i.x then if p.y > i.y then ret = NORTHWEST elseif p.y < i.y then ret = SOUTHWEST else ret = WEST end elseif p.x < i.x then if p.y > i.y then ret = NORTHEAST elseif p.y < i.y then ret = SOUTHEAST else ret = EAST end else if p.y > i.y then ret = NORTH elseif p.y < i.y then ret = SOUTH else ret = nil end end return ret end function LeaveArena(cid) for i = 45300, 45329 do setPlayerStorageValue(cid, i, 0) end if isCreature(getPlayerStorageValue(cid, MonStor)) == TRUE then doRemoveCreature(getPlayerStorageValue(cid, MonStor)) end setGlobalStorageValue(getPlayerStorageValue(cid, myRoom), 0) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, Cancel[2]) doTeleportThing(cid, KickPosition, FALSE) setPlayerStorageValue(cid, TimeStor, 0) setPlayerStorageValue(cid, isIN, 0) end function CheckRooms() addEvent(CheckRooms, 1000) for i = 42300, 42309 do local Player = getGlobalStorageValue(i) if isPlayer(Player) == TRUE then local PlayerTime = getPlayerStorageValue(Player, TimeStor) if PlayerTime <= os.time() then doTeleportThing(Player, KickPosition, FALSE) setPlayerStorageValue(Player, TimeStor, 0) setGlobalStorageValue(i, 0) doPlayerSendTextMessage(Player,MESSAGE_STATUS_CONSOLE_ORANGE, Cancel[7]) if isCreature(getPlayerStorageValue(Player, MonStor)) == TRUE then doRemoveCreature(getPlayerStorageValue(Player, MonStor)) end elseif PlayerTime - 10 <= os.time() then doPlayerSendTextMessage(Player, MESSAGE_EVENT_DEFAULT, "you have "..PlayerTime - os.time().." seconds left.!") end else setGlobalStorageValue(i, 0) end end end function getArenaMonsterIdByName(name) for i = 45300, 45329 do if tostring(arena_monsters[i]) == string.lower(tostring(name)) then return i end end return false end]]></config> <event type="login" name="arenaRegister" event="script"><![CDATA[ domodlib('arenaFunctions') function onLogin(cid) registerCreatureEvent(cid, "PlayerArena") registerCreatureEvent(cid, "ArenaKill") return true end]]></event> <event type="death" name="PlayerArena" event="script"><![CDATA[ domodlib('arenaFunctions') function onDeath(cid, corpse, deathList) if getPlayerStorageValue(cid, isIN) == 1 then I = 0 for i = 45300, 45329 do if getPlayerStorageValue(cid, i) == 1 then I = i end end GlobalStor = I - ArenaAdding[myArenaLevelIs(cid).LV] setGlobalStorageValue(GlobalStor, 0) setPlayerStorageValue(cid, isIN, 0) if isCreature(getPlayerStorageValue(cid, MonStor)) then doRemoveCreature(getPlayerStorageValue(cid, MonStor)) end end return true end ]]></event> <event type="kill" name="ArenaKill" event="script"><![CDATA[ domodlib('arenaFunctions') function onKill(cid, target, lastHit) if getPlayerStorageValue(cid, isIN) == 1 then local Room = getArenaMonsterIdByName(getCreatureName(target)) if Room ~= 0 then setPlayerStorageValue(cid, Room, 1) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, Cancel[8]) end end return true end]]></event> <action fromaid="42357" toaid="42386" event="script"><![CDATA[ domodlib('arenaFunctions') function onUse(cid, item, fromPosition, itemEx, toPosition) local myMove = getDirectionmove(cid, fromPosition) if myMove == nil then return FALSE end local Reward = Rewards[item.actionid] if Reward then if getPlayerStorageValue(cid, Reward.Stor) ~= 1 then local reward = nil if Reward.Cont ~= nil then reward = doCreateItemEx(Reward.Cont, 1) for i = 1, #Reward.items do doAddContainerItem(reward, Reward.items[i], Reward.count[i]) end else reward = doCreateItemEx(Reward.item, 1) end if reward ~= nil then if doPlayerAddItemEx(cid, reward, FALSE) == RETURNVALUE_NOERROR then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR,'You have found a '..getItemNameById(getThing(reward).itemid)..'.') setPlayerStorageValue(cid, Reward.Stor, 1) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, Cancel[3]) end end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, Cancel[4]) end elseif RewardsDoors[item.actionid] then if myArenaLevelIs(cid).LV >= RewardsDoors[item.actionid] then doTransformItem(item.uid, OpenDoorsID) doMoveCreature(cid, myMove) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, Cancel[5]) end elseif item.actionid == DoorsActID and getPlayerStorageValue(cid, talkNPC) == 1 then doTransformItem(item.uid, OpenDoorsID) doMoveCreature(cid, myMove) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, Cancel[1]) end return TRUE end]]></action> <movevent type="StepIn" fromaid="42300" toaid="42380" event="script"><![CDATA[ domodlib('arenaFunctions') function onStepIn(cid, item, position, fromPosition) local ArenaRoom = item.actionid if item.actionid == LeavePortals then LeaveArena(cid) elseif isInArray(GobletTiles, item.actionid) == TRUE then local gobletPos = getThingPos(item.uid) if getPlayerStorageValue(cid, item.actionid) ~= 1 then setPlayerStorageValue(cid, item.actionid, 1) local Goblet = doCreateItemEx(Goblets[item.actionid].Id, 1) doItemSetAttribute(Goblet, "description", ""..Goblets[item.actionid].txt.."\nAwarded to "..getCreatureName(cid)..".") gobletPos.y = gobletPos.y - 1 doTileAddItemEx(gobletPos, Goblet) end doTransformItem(item.uid, item.itemid - 1) elseif isInArray(RoomsACT, ArenaRoom) == TRUE or ArenaRoom == 42300 then if Checking == FALSE then Checking = TRUE CheckRooms() end local myLevelArena = myArenaLevelIs(cid).LV if ArenaAdding[myLevelArena] then Mons = ArenaRoom + ArenaAdding[myLevelArena] end if getGlobalStorageValue(ArenaRoom) == 0 then if isCreature(getPlayerStorageValue(cid, MonStor)) == FALSE then if ArenaRoom == 42300 and getPlayerStorageValue(cid, talkNPC) == 1 then setPlayerStorageValue(cid, talkNPC, 0) setPlayerStorageValue(cid, isIN, 1) P = 1 elseif ArenaRoom ~= 42300 and getPlayerStorageValue(cid, isIN) == 1 then P = 1 else P = nil end if P ~= nil then local SpawnPos = getThingPos(ArenaRoom) doTeleportThing(cid, SpawnPos, FALSE) SpawnPos.x = SpawnPos.x - 1 SpawnPos.y = SpawnPos.y - 1 local Monster = doSummonCreature(arena_monsters[Mons], SpawnPos) setGlobalStorageValue(ArenaRoom, cid) setGlobalStorageValue(ArenaRoom - 1, 0) setPlayerStorageValue(cid, TimeStor, os.time()+arenaRoomMaxTime) setPlayerStorageValue(cid, MonStor, Monster) setPlayerStorageValue(cid, myRoom, ArenaRoom) else LeaveArena(cid) end else doTeleportThing(cid, fromPosition, TRUE) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, Cancel[9]) end else doTeleportThing(cid, fromPosition, TRUE) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, ""..getCreatureName(getGlobalStorageValue(cid, ArenaRoom)).." "..Cancel[10].."") end elseif ArenaRoom == 42310 then if isCreature(getPlayerStorageValue(cid, MonStor)) == FALSE then doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,""..Completed[1].." "..myArenaLevelIs(cid).LN.." "..Completed[2].."") setPlayerStorageValue(cid, myArenaLevel, getPlayerStorageValue(cid, myArenaLevel) + 1) setGlobalStorageValue(ArenaRoom - 1, 0) setPlayerStorageValue(cid, TimeStor, 0) setPlayerStorageValue(cid, isIN, 0) doTeleportThing(cid, RewardsRoom, TRUE) else doTeleportThing(cid, fromPosition, TRUE) doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_ORANGE,'Najpierw zabij potwora!') end end return TRUE end]]></movevent> <movevent type="StepOut" fromaid="42357" toaid="42387" event="script"><![CDATA[ domodlib('arenaFunctions') function onStepOut(cid, item, position, fromPosition) if item.actionid == DoorsActID or RewardsDoors[item.actionid] then doTransformItem(item.uid, item.itemid - 2) elseif isInArray(GobletTiles, item.actionid) == TRUE then doTransformItem(item.uid, item.itemid + 1) end return TRUE end]]></movevent> </mod>
  13. [Resolvido] Executavel 8.6

    julemar reagiu a thiagobji por uma resposta no tópico

    1 ponto
    Mais uma distro Julemar: Dll's e Distro
  14. [Resolvido] NPC Arena Erro

    WarW0lf reagiu a MaXwEllDeN por uma resposta no tópico

    1 ponto
    Mod
  15. MageBot

    m1theus reagiu a Augusto por uma resposta no tópico

    1 ponto
    Seu MC é do executavel do tibia modificado? Tente utilizar o NeoMC, ele funciona com qualquer versão do tibia -> Teste e depois nos fale!
  16. [8.6] Bueiro

    Luizito reagiu a WarW0lf por uma resposta no tópico

    1 ponto
    Ficou muito dahora
  17. Centurion V4

    Xisto reagiu a Hona por uma resposta no tópico

    1 ponto
    Ajustado !!
  18. Nada, só estou aqui pra ajudar, se quiser me dá um REP+ eu choro de alegria (Qualquer erro só postar aqui)
  19. Fácil cara, é só deletar o menor.lua que está em: Pasta do seu OT/data/creaturescripts/scripts/menor.lua delete-o. Agora vai em: Pasta do seu OT/data/creaturescripts/creaturescripts.xml e remova essa tag: <event type="login" name="vipdays" event="script" value="menor.lua"/>
  20. [Resolvido] Modificação de Script

    jNo reagiu a Skyforever por uma resposta no tópico

    1 ponto
    Lembrando que para funcionar o player deve atingir o level exato, ou seja, se ele upar do 999 para o 1001 não irá ganhar, se quiser depois eu editarei: function onAdvance(cid, skill, oldLevel, newLevel) local a, MAIN_CONFIG = MAIN_CONFIG, { [1000] = {itemId = 1, itemCount = 1}, [2000] = {itemId = 1, itemCount = 1}, [3000] = {itemId = 1, itemCount = 1}, [4000] = {itemId = 1, itemCount = 1}, [5000] = {itemId = 1, itemCount = 1}, [6000] = {itemId = 1, itemCount = 1}, [7000] = {itemId = 1, itemCount = 1}, [8000] = {itemId = 1, itemCount = 1}, [9000] = {itemId = 1, itemCount = 1}, [10000] = {itemId = 1, itemCount = 1} } if skill == 8 then if a[newLevel] and getPlayerStorageValue(cid, newLevel - oldLevel) < 1 then doPlayerAddItem(cid, a.itemId, a.itemCount) setPlayerStorageValue(cid, newLevel - oldLevel, 1) doPlayerSendTextMessage(cid, 27, "You win " .. a.itemCount .. "x " .. getItemNameById(a.itemId) .." for advance to level[" .. newLevel .."].") end end return true end <event type="advance" name="item_Advance" event="script" value="nome_do_script.lua"/> registerCreatureEvent(cid, "item_Advance") é isso aí ;P.
  21. 1 ponto
    Desculpe mas eu não sei mexer em sources, boa sorte ai.
  22. Pessa Sua sing

    Kyoran reagiu a thiagobji por uma resposta no tópico

    1 ponto
    E também, dá uma lida no "Dicionário Aurélio", se não tiver, olha ai alguns sites: Dicionário do Aurélio Dicio Só estou falando isso por que fica mais bonito e agradável título de tópico correto.
  23. Pessa Sua sing

    thiagobji reagiu a Kyoran por uma resposta no tópico

    1 ponto
    SkyLigh que tal antes de abrir um tópico de fabrica de sign's aprimorar seu conhescimento? Sem querer falar mal mas todas as sign's tão um L-E-X-O feio demais cara vou refazer as sign's aqui e ja edito o post começarei pela da AnneMotta @Anne~ Fiz uma mistura do texo com o background , juntei a cor do texto com o background achei que ficou bem legal a sign Link Direto : http://imgur.com/jPYhu
  24. item editor 8.5

    alanzinhofm reagiu a thiagobji por uma resposta no tópico

    1 ponto
    Item Editor 8.5 Hum, é que eu estava olhando seus tópicos de ajuda e pelo menos 2 eu vi que o cara te ajudou por que eu testei e você não respondeu ele, só quando não funcionava, por isso eu comentei isso, mais já que você está dizendo né, tá ai o download.
  25. Vou Postar a config.lua do meu Servidor 9.60 pra você.. -- Tibia Server Config -- Account manager accountManager = false namelockManager = true newPlayerChooseVoc = true newPlayerSpawnPosX = 32369 newPlayerSpawnPosY = 32241 newPlayerSpawnPosZ = 7 newPlayerTownId = 2 newPlayerLevel = 8 newPlayerMagicLevel = 0 generateAccountNumber = false generateAccountSalt = false -- Paralyze Rune like Tibia.Com 100% paralyzeDelay = 1400 -- Report comand by Felipe Monteiro reportExhausted = 30 * 60 -- Unjustified kills -- Auto banishing works only if useBlackSkull set to negative. -- advancedFragList is not advised if you use huge frags -- requirements. useFragHandler = true redSkullLength = 1 * 24 * 60 * 60 blackSkullLength = 2 * 24 * 60 * 60 fragsLimit = 3 * 60 * 60 fragsSecondLimit = 3 * 60 * 60 fragsThirdLimit = 3 * 60 * 60 fragsToRedSkull = 15 fragsSecondToRedSkull = 2000 fragsThirdToRedSkull = 2000 fragsToBlackSkull = 20 fragsSecondToBlackSkull = 30 fragsThirdToBlackSkull = 40 fragsToBanishment = 30 fragsSecondToBanishment = 40 fragsThirdToBanishment = 50 blackSkulledDeathHealth = 40 blackSkulledDeathMana = 0 useBlackSkull = false advancedFragList = false -- Banishments -- killsBanLength works only if useBlackSkull option is disabled. notationsToBan = 3 warningsToFinalBan = 4 warningsToDeletion = 5 banLength = 7 * 24 * 60 * 60 killsBanLength = 7 * 24 * 60 * 60 finalBanLength = 30 * 24 * 60 * 60 ipBanishmentLength = 1 * 24 * 60 * 60 broadcastBanishments = true maxViolationCommentSize = 200 violationNameReportActionType = 2 autoBanishUnknownBytes = false -- Battle -- loginProtectionPeriod is the famous Tibia anti-magebomb system. -- deathLostPercent set to nil enables manual mode. worldType = "open" protectionLevel = 8 pvpTileIgnoreLevelAndVocationProtection = true pzLocked = 60 * 1000 huntingDuration = 60 * 1000 criticalHitChance = 7 criticalHitMultiplier = 1 displayCriticalHitNotify = false removeWeaponAmmunition = false removeWeaponCharges = false removeRuneCharges = false whiteSkullTime = 15 * 60 * 1000 noDamageToSameLookfeet = false showHealingDamage = true showHealingDamageForMonsters = false fieldOwnershipDuration = 5 * 1000 stopAttackingAtExit = false loginProtectionPeriod = 10 * 1000 deathLostPercent = 10 stairhopDelay = 2 * 1000 pushCreatureDelay = 2 * 1000 deathContainerId = 1987 gainExperienceColor = 215 addManaSpentInPvPZone = true squareColor = 0 allowFightback = true fistBaseAttack = 7 -- Connection config worldId = 0 ip = "108.170.56.180" bindOnlyGlobalAddress = false loginPort = 7171 gamePort = 7172 loginTries = 10 retryTimeout = 5 * 1000 loginTimeout = 60 * 1000 maxPlayers = 1000 motd = "Bem-vindo ao Mercenarios-War - O Melhor servidor global" displayOnOrOffAtCharlist = false onePlayerOnlinePerAccount = true allowClones = false serverName = "Mercenarios" loginMessage = "Seja muito bem-vindo ao Mercenarios-War Server, esperamos apenas a sua diversão !" statusTimeout = 5 * 60 * 1000 replaceKickOnLogin = true forceSlowConnectionsToDisconnect = false loginOnlyWithLoginServer = false premiumPlayerSkipWaitList = false -- RSA -- Prime1 - known as p; Prime2 - known as q; Public - known as e; -- Modulus - known as n; Private - known as d. rsaPrime1 = "14299623962416399520070177382898895550795403345466153217470516082934737582776038882967213386204600674145392845853859217990626450972452084065728686565928113" rsaPrime2 = "7630979195970404721891201847792002125535401292779123937207447574596692788513647179235335529307251350570728407373705564708871762033017096809910315212884101" rsaPublic = "65537" rsaModulus = "109120132967399429278860960508995541528237502902798129123468757937266291492576446330739696001110603907230888610072655818825358503429057592827629436413108566029093628212635953836686562675849720620786279431090218017681061521755056710823876476444260558147179707119674283982419152118103759076030616683978566631413" rsaPrivate = "46730330223584118622160180015036832148732986808519344675210555262940258739805766860224610646919605860206328024326703361630109888417839241959507572247284807035235569619173792292786907845791904955103601652822519121908367187885509270025388641700821735345222087940578381210879116823013776808975766851829020659073" -- Database -- To disable sqlKeepAlive such as mysqlReadTimeout use 0 value. sqlType = "mysql" sqlHost = "localhost" sqlPort = 3306 sqlUser = "root" sqlPass = "109992050" sqlDatabase = "database" sqlFile = "forgottenserver.s3db" sqlKeepAlive = 0 mysqlReadTimeout = 5000 mysqlWriteTimeout = 5000 encryptionType = "sha1" -- Deathlist deathListEnabled = true deathListRequiredTime = 1 * 60 * 1000 deathAssistCount = 19 maxDeathRecords = 5 -- Guilds ingameGuildManagement = false levelToFormGuild = 50 premiumDaysToFormGuild = 0 guildNameMinLength = 4 guildNameMaxLength = 20 -- Highscores highscoreDisplayPlayers = 15 updateHighscoresAfterMinutes = 60 -- Houses buyableAndSellableHouses = true houseNeedPremium = false bedsRequirePremium = false levelToBuyHouse = 50 housesPerAccount = 0 houseRentAsPrice = false housePriceAsRent = false housePriceEachSquare = 1000 houseRentPeriod = "never" houseCleanOld = 0 guildHalls = false -- Item usage timeBetweenActions = 200 timeBetweenExActions = 1000 hotkeyAimbotEnabled = true -- Map mapName = "Tibiax.otbm" mapAuthor = "Felipe Monteiro" randomizeTiles = true storeTrash = true cleanProtectedZones = true mailboxDisabledTowns = "" -- Process defaultPriority = "high" niceLevel = 5 coresUsed = "-1" -- Startup startupDatabaseOptimization = false updatePremiumStateAtStartup = true confirmOutdatedVersion = false -- Spells formulaLevel = 5.0 formulaMagic = 1.0 bufferMutedOnSpellFailure = false spellNameInsteadOfWords = false emoteSpells = true unifiedSpells = true -- Outfits allowChangeOutfit = true allowChangeColors = true allowChangeAddons = true disableOutfitsForPrivilegedPlayers = false addonsOnlyPremium = false -- Miscellaneous dataDirectory = "data/" logsDirectory = "data/logs/" bankSystem = true displaySkillLevelOnAdvance = false promptExceptionTracerErrorBox = true maximumDoorLevel = 500 maxMessageBuffer = 4 tradeLimit = 100 -- VIP list separateVipListPerCharacter = false vipListDefaultLimit = 20 vipListDefaultPremiumLimit = 100 -- Saving-related -- useHouseDataStorage usage may be found at README. saveGlobalStorage = true useHouseDataStorage = false storePlayerDirection = false -- Loot checkCorpseOwner = true monsterLootMessage = 3 monsterLootMessageType = 29 -- Ghost mode ghostModeInvisibleEffect = false ghostModeSpellEffects = true -- Limits idleWarningTime = 10 * 60 * 1000 idleKickTime = 15 * 60 * 10000 reportsExpirationAfterReads = 1 playerQueryDeepness = 2 tileLimit = 0 protectionTileLimit = 0 houseTileLimit = 0 -- Premium-related freePremium = false premiumForPromotion = false -- Blessings blessings = true blessingOnlyPremium = false blessingReductionBase = 30 blessingReductionDecrement = 5 eachBlessReduction = 8 -- Rates -- rateExperienceFromPlayers 0 to disable. experienceStages = true rateExperience = 10 rateExperienceFromPlayers = 0 rateSkill = 25 rateMagic = 15 rateLoot = 2.0 rateSpawn = 1 -- Monster rates rateMonsterHealth = 1.0 rateMonsterMana = 1.0 rateMonsterAttack = 1.0 rateMonsterDefense = 1.0 -- Experience from players -- player will gain experience from every lower leveled player. -- player will gain experience from every higher leveled player. minLevelThresholdForKilledPlayer = 0.9 maxLevelThresholdForKilledPlayer = 1.1 -- Stamina -- multiplied by player attack speed. -- staminaRatingLimit* is in minutes. rateStaminaLoss = 1 rateStaminaGain = 3 rateStaminaThresholdGain = 12 staminaRatingLimitTop = 40 * 60 staminaRatingLimitBottom = 14 * 60 staminaLootLimit = 14 * 60 rateStaminaAboveNormal = 1.5 rateStaminaUnderNormal = 0.5 staminaThresholdOnlyPremium = false -- Party -- experienceShareLevelDifference is highestLevel * value experienceShareRadiusX = 30 experienceShareRadiusY = 30 experienceShareRadiusZ = 1 experienceShareLevelDifference = 2 / 3 extraPartyExperienceLimit = 20 extraPartyExperiencePercent = 5 experienceShareActivity = 2 * 60 * 1000 -- Global save globalSaveEnabled = false globalSaveHour = 8 globalSaveMinute = 0 shutdownAtGlobalSave = true cleanMapAtGlobalSave = false -- Spawns deSpawnRange = 2 deSpawnRadius = 50 -- Summons maxPlayerSummons = 2 teleportAllSummons = false teleportPlayerSummons = false -- Status statusPort = 7171 ownerName = "Equipe Tibia" ownerEmail = "Tibia" url = "www.hostingjogos.com" location = "Brasil" displayGamemastersWithOnlineCommand = false -- Logs displayPlayersLogging = true prefixChannelLogs = "" runFile = "" outputLog = "" truncateLogonstartup = false -- Manager managerPort = 7171 managerLogs = true managerPassword = "" managerLocalhostOnly = true managerConnectionsLimit = 1 -- Admin -- Set to anything if you set adminRequireLogin to false. adminPort = 7171 adminLogs = true adminPassword = "" adminLocalhostOnly = true adminConnectionsLimit = 1 adminRequireLogin = true adminEncryption = "" adminEncryptionData = ""
  26. Ola pessoal estou neste tutorial para revelar todos os fundamentos de um otserv pokemon. Quando eu desenvolvia otservs pokemons eu sempre utilizava de base o pokemon dash. Pokemon dash foi criado pelo brun123 o mesmo criador do PDA. Logo apos o lançamento do PDA o pokemon dash perdeu sua popularidade mais continua sendo umas melhoras opções para o desenvolvimento de um otserv pokemon. Neste tutorial vamos ver com o pokemon dash utiliza LUA e como seu funcionamento e tão perfeito. PokeBalls As pokebolas que são famosas bolas que guardam monstrinhos que podem ser soltos pelo treinador. No seu otserv pokemon basicamente suas pokebolas são itens normais como atributos diferentes. A função doItemSetAttribute(....) e a responsável pelo nome,vida e etc.... doItemSetAttribute(item, "poke", params.poke) doItemSetAttribute(item, "nome", params.nome) doItemSetAttribute(item, "description", params.description) doItemSetAttribute(item, "description", "Contains a "..i.." +1.") doItemSetAttribute(item, "nick", ""..i.."") r1 = math.random(1,2) if r1 == 1 then doItemSetAttribute(item, "gender", 3) end if r1 == 2 then doItemSetAttribute(item, "gender", 4) end Todos estes atributos são verificados durante a action do go/back e logo seu summon veem com características únicas. Vamos ao exemplo do script que eu fiz usando as funções do executavel do PDA. Incrivelmente os summons foi uma etapa fácil para a criação dos sistema dos pokemons porque tibia já acompanha funções para summonar getCreatureMaster(cid) getCreatureSummons(cid) doSummonCreature(name, pos) doRemoveCreature(cid[, executeLogout = true]) Estas funções foram muito importante para que seu otserv pokemon ser construído. A manipulação das funções e de fácil utilização mais precisa tomar algumas precações. A função getCreatureSummons(cid) verifica TODOS os summons do player então precisamos usar # ou uma estrutura de repetição tal como for. Vamos verificar se o player tem pelo menos um summon: for _,summon in pairs(getCreatureSummons(cid)) do if summon > 0 then ..... return true end if #getCreatureSummons(cid)) > 0 then .... return true end Habilidades Pokemons Não foi um grande desafio criar o order sytem mais a quantidade de habilidades custo algumas horas de trabalhos. Os famosos ride e fly foram criados usando funções tibianas o que acontece e que quando o order e clicado no player acontece uma rápida troca de outfit e a colocação de algumas storages. Light/Rock Smash/Cut e Ditto são sistema secundários do order sytem. Todas essa habilidades foram feitas em apenas uma action. Na action do order existe varias verificações do item2 tais como itemID,Monstro e Player. O order sytem e um desafio para a edição pois a retirada de apenas uma storage pode bugar o sistema completamente. Moves PokemonsEstes foram complicados e estão ate hoje em evolução. São muitos ataques de pokemons e diferentes de tibia os ataques foram todos construindo em talkactions separados com (m1,m2,m3,m4,m5,m6,m7,m8,m9,10,m11,m12). Foram utilizados funções para mandar efeitos e retirar danos doAreaCombatHealth(....) doSendMagicEffect(...) Tabelas local flamen = createCombatArea{ {0, 0, 2, 0, 0}, {0, 1, 1, 1, 0}, {0, 1, 1, 1, 0}, {0, 1, 1, 1, 0}, {0, 0, 0, 0, 0} } [6] = {x = { pok = wartortle, spell = "Bubbles", minLv = 20, ex = 8000002, base1 = 120, base2 = 135, dista = 4, bonus = 4.2, type = "water", cd = 8 } } Para os iniciantes a edição de tal script foi um pouco complicado. Suas variáveis foram todas colocadas em tabelas deixando o script um pouco mais leve. O script e ainda maior do que o order sytem Creditos: Caotic Summons
  27. Caro o erro não é do servidor e sim da source compilada. se você quiser o que esta sem bug de Catch : www.4shared.com/CentuV4... <= mais ele esta com vírus !!! se eu tivesse a source e compilava pra galera.
  28. Sei que ja faz mais de 60 dias a ultima postagem mais estou com o mesmo problema, ou parecido! ALGUÉM ME AJUDA?
  29. É fácil sim, se usar VS é só escolher lá em cima em Target CPU "x64" e no Dev-CPP acho que é uma flag, mas não uso Dev-CPP Qualquer coisa é só usar o laatido que é mais fácil ainda.
  30. Problema no distro

    WarW0lf reagiu a arthurluna por uma resposta no tópico

    -1 pontos
    ..
Líderes está configurado para São Paulo/GMT-03:00

Informação Importante

Confirmação de Termo