Ir para conteúdo

Líderes

Conteúdo Popular

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

  1. data\movements\scripts\nomedoscript.lua: local tilepos = {x=136, y=48, z=7} -- Posiçao do tile noroeste ( /\ < ) local sq = 3 -- Area 3x3 usar somente numeros impares > 2 local monster = "Demon" local time = 2 -- Tempo em minutos pra desaparecer function getUidsInArea(extr1, extr2) local dat = {} for y = extr1.y, extr2.y do for x = extr1.x, extr2.x do if isCreature(getThingFromPos({x=x, y=y, z=extr1.z, stackpos=255}).uid) then table.insert(dat, getThingFromPos({x=x, y=y, z=extr1.z, stackpos=255}).uid) end end end return dat end function summonAndRemove(monster, pos, t) local function removeCreatureEvent(uid) if isCreature(uid) then doRemoveCreature(uid) end end local uid = doSummonCreature(monster, pos) addEvent(removeCreatureEvent, t*1000, uid) end function onStepIn(cid, item, pos, frompos) if sq < 3 or sq%2 == 0 then return error("SOMENTE NUMEROS IMPARES MAIORES QUE 2") end local uids = getUidsInArea(tilepos, {x=tilepos.x+sq-1, y=tilepos.y+sq-1, z=tilepos.z}) if #uids == 0 then for y = tilepos.y, tilepos.y+sq-1 do for x = tilepos.x, tilepos.x+sq-1 do if y == tilepos.y+(sq-1)/2 and x == tilepos.x+(sq-1)/2 then doTeleportThing(cid, {x=x, y=y, z=tilepos.z}) else summonAndRemove(monster, {x=x, y=y, z=tilepos.z}, time*60) end end end else doTeleportThing(cid,frompos,true) return doPlayerSendCancel(cid, "There are people inside right now.") end end xml: <movevent type="StepIn" actionid="2930" event="script" value="nomedoscript.lua"/>
    2 pontos
  2. OT GLOBAL 8.6 FULL Informações: Player começa Level 1 sem Vocação em Rook. Teleport para Training esta a South do DP de Thais. MAPA FULL GLOBAL. (Obs:FALTANDO ZAO, QUE PARA MIM NÃO A INTERESSE kkk). Vocações Balanceadas, seguindo o estilo Global. Sistema de Premmy por Premium Scroll que pode ser adquirido nos NPC'S, The Queen em Carlin e King Tibianus em Thais. Cidades: Rookgaard - (com Island of Destiny) Ankrahmun Ab'Dendriel Carlin Cormaya Darashia Edron Farmine Fibula Kazordoon Liberty Bay Northport Orc Land (Orc Fortress) Outlaw Camp Port Hope Plains of Havoc Shadowthorn (Elven Village) Svargrond Thais Venore Yalahar Quest: Arena Quest Demon Oak Demon Helmet Yalahar Quest The Inquisition Quest The Annihilator Quest Pits of Infernum (POI) HOTA Quest Crown Quest Behemonth Quest Blue Legs Bright Sword Vamp Shield Mermaid Comb Orc Fortress Medusa Shield Desert Quest Mad Mage Room Entre varias outras Quests.... O OTServ contem muito o que explorar, pois a um bom tempo eu tinha este OTServ, e resolvi compartilhar com todos. Espero que gostem!! ATUALIZADO!! 25/03/2014 LINK DOWNLOAD: http://www.4shared.com/rar/QQFIbSW6ce/global_full_86_up-lvl.html LINK SCAN - VIRUS TOTAL: https://www.virustotal.com/en/file/fa6c82e8fee2319d40243f8bae1e03baa90088ac0aecd56e9861bdb27451c90e/analysis/1392913285/
    1 ponto
  3. Wend ll

    xPoketibia [Open source] (OFICIAL!)

    Olá Galera do XTibia! Venho apresentar para vocês um novo projeto, o xPoketibia, o poketibia se trata de um servidor que está sendo desenvolvido para tentar substituir o PDA em termos de uso dos OT-admin (sair dessa mesmice de servidores PDA) , o mesmo será disponibilizado aqui no fórum com suas devidas versões\atualizações. Estamos usando uma base antiga que está um pouco desatualizada e com muitos bugs , não editamos o mapa ainda por isso o mapa que está sendo usado é o do dash , tentaremos ao máximo trazer incríveis mapas e sistemas. Andamento do servidor Level System: 90% Caught System: 50% Go-Back System: 50% Portrait System: 50% Evolution System: 100% NPC Nurse System: 50% Pokedex System: 50% Ghost System: 50% Wild Pokemon Passive: 50% Moves System: 90% Limite de 6 Pokemons: 50% Duel System (Pela Party) 50% Tv / Cam System 50% Próximos sistemas Order System (Com todas as habilidades [Fly, Surf, Ride, Blink, Cut, Light, Transform, Control Mind, Dig, Move]) All Pokemon Spells Boat System (Vermilion - Cinnabar) Gym System NPC's de batalha espalhados pelo mapa Vários outros sistemas que tenho em mente. Changelog do servidor: Prints: Downloads: Servidor > http://www.4shared.com/rar/VAp3P-nwba/xPoketibia_Project.html? Client > http://www.4shared.com/rar/l5iti909ba/Client_xP.html? Source > http://www.4shared.com/rar/Cb_mNAJvba/sources_xP.html? Repositório no GitHub > Quase lá ~~ Créditos: Wend Silva < euBrun 123GabrieltxuDaniel Colaboradores xTibia por alguns códigosAvuenja por está ajudando com o Github é isso Galera vou indo fazendo com o tempo , não me cobrem , tenho vida social também , não é todo o dia que vou está disponível pra mexer no servidor , mas é isso nada de novo , mas apenas outro distro totalmente diferente com source , creio que vai ajudar muitas pessoas que curte o PDA, Lembrando que ele não vai ser livre de bugs , peço ajuda também para a galera que ajudem no projeto com sugestões e relatando os bugs que encontrarem. Thank you ~~
    1 ponto
  4. Global Full [CLIENTS COMPATÍVEIS] 10 e 11.5. [BUGS E DOWNLOAD] BAIXEM E REPORTEM EM: OTXGlobal Full [FEATURES] NEW DEPOT, NEW SPAWN, NEW CAST SYSTEM, NEW NPC SYSTEM VIA BANK BALANCE, NEW CRITICAL BOOST SYSTEM, NEW POTIONS, REWARD SYSTEM, PREY ... [MAPA] FULL GLOBAL MAP WITH FEYRIST TODAS CIDADES E NOVAS AREAS TODAS QUESTS FUNCIONANDO! [EVENTS] WAR-ANTIENTROSA [CONTATO] SKYPE: onjogos WHATSAPP: (66) 998427-4493 [Créditos]Tfs 1.2 Developers -Zbizu - Pitis91 - MatheusMkalo - Gesior - Lundrial - M4G0 - Fish04k - Printer - Djarek - Ninjalulz - Slavidodo - Thexamx - Socket2810 - Ciroc -Absolute - Gordonbay - Mitsuig - Alissonfgp - Gunz - Bruno Minervino - Comedinha -Hirako - Maya - Mattyx14 – Darkjav - Viking Tibia
    1 ponto
  5. Bom tarde galera, venho por meio deste tópico, anuncar que, estou terminando de desenvolver um ATS derivado de Tibia.. Um pokémon server.. Bom, vou postar ShowOff, apenas dos sistemas no qual tem no servidor.. Irei resolvendo os Bugs, e então, quando achar que está bom, liberarei o Download do servidor, junto com as devidas sources. Eu tambem, colocarei uma lista do que foi feito no servidor.. Desde bugs, até novos sistemas. enfim.. Bom, como todos sabem, esse servidor contem os sistemas básicos.. Mas ainda não parei para mexer nos sistemas mais simples.. Changelog: Adicionado nas sources: - DoCreatureSetNick - AutoStacking - Modificado a função AddItem (estava bugando por causa do autostacking..) - Adicionado todas as races pokémons. - Modificado a cor da fala dos groups nos channels. - Adicionado Passive e Agressive, igual o PokeXGames. - Adicionado OnSpawn - Adicionado Pokémon Ghost System - Adicionado GetCreaturePathTo - Adicionado CastSpell Adicionado no servidor: - Novo NPC de mudança de Nick do pokémon; - Peguei função do PDA para alterar nomes dos pokémons shinys, e deixado normal. Ex: Antes: Shiny Tangela. Agora: Tangela. - Adptado/Adicionado sistema de vantagem e desvantagem do PDA. - Copiei as passives do PDA e adpatei para o servidor. - Copiei sistema de vantagem e desvantagem do PDA e adpatei para o servidor. - Adptado/Adicionado o Clan System do PDA. - Sistema de Icon (acabei de adicionar só adicionei 1 icon pra testar mesmo) ^^ - Retirados o S no final dos pokémons selvagens. - Ao morrer, aparece descrição no corpse, indicando o monstro que matou e o nome de quem morreu. - Sistemas basicos (surf, ride, blink etc.) por order Mudanças nas configurações do servidor: -Adicionar/fazer moves, basta fazer igual o PDA. Porem, se você baixar um servidor PDA e pegar a script de "pokémon moves" da LIB, e jogar nesse servidor, não irá funcionar ^^ -Adicionar pokémons, tambem é só adicionar como se fosse um PDA. -Adicionarfazer novas evoluções igual o PDA. -Adicionar/fazer novas passives igual o PDA. Otclient: Peguei OTClient na versão 0.6.5; - Fiz a barrinha de moves funcionar.. - Não vou adicionar pokebar - Transparency funcionando Obs: O Old cliente ainda está usavel, pois não extendi o cliente, nem pretendo extender.. Faltando/Em andamento: Arrumar alguns moves Refazer nurse joy Configurar todos os pokémons e balancear Configurar o Clan Sistema Configurar Spells Confgurar sistema de ovos Retirar uns duplicad Itens Arrumar os sistemas basicos(hoje ainda deixo 100%) OBSERVAÇÕES: Eu não irei postar ainda, pois o mesmo está em andamento, tem muitos bugs na qual estou resolvendo. ***Se alguem quiser me ajudar, basta deixar seu contato. ** Não me precionem plis. * Sou lindo - Irei atualizar todos os dias, e colocar prints e atualizações e modificar o nome do topico com a data de atualização. - NÃO irei mexer no mapa, se alguma alma quiser ajudar, pois bem, deixe seu contato e.e - NÃO tem level sistema. e NÃO é PDA. CREDITOS: Zipter OrochiElf Arkz Elwyn GabrielTxu Sobre os creditos, *Eu peguei um ou mais sistemas, alguns destes me tiraram duvidas e sou grato*. PRINTS: Estou desenvolvendo esse servidor exclusivamente para o XTIBIA, e tambem porque quero ver a galera sair da mermisse do PDA..Durante muito tempo, vi gente criando topicos, pra geral juntar e fazer os sistemas do PDA, ou fazer um servidor que chegue no rastro do PDA.. Então, se alguem quiser me ajudar.. Basta me comunicar.. OBS: Sempre verifiquem as atualizações abaixo, que é onde eu irei editar sempre e postar atualizações, abram os spoilers. ATUALIZAÇÕES: 11/10/2015 00:16 Parei para mexer no Design do Client. novo entergame: Atualização *11/10/2015* Atualização *12/10/2015* *Vou upar os Prints das atualizações e colocar no tópico*
    1 ponto
  6. SamueLGuedes

    Mapa Slayer Yurots

    Bom dia galera do Ékz, eu revirei alguns arquivos meus que guardava, e lembrei que tinha um mapa antigo e bem nostálgico para min. o mapa que irei mostrar hoje, é o Slayer Yurots, esse mapa tem mais de 6 anos de criação, é para aqueles que antigamente jogavam OTs 8.60, e se relembrarem um pouco de suas aventuras. Informações: o mapa contem: 3 citys Hunts Aleatórias Quests Imagens: Download: Link Scan Créditos: Slayer Yurots (Criador do Mapa) Eu (por postar)
    1 ponto
  7. Caronte

    [Sketch] Twd Zombie

    Opinião é ouro.
    1 ponto
  8. 1 ponto
  9. Adolfohrq

    [Show Off] Daniel

    Excelente trabalho Daniel. Com toda certeza um dos melhores mapas que já vi até hoje. Estamos juntos nessa, parabéns!
    1 ponto
  10. SamueLGuedes

    [Encerrado] Entrar no mapa

    verifique se esse tutorial pode te ajudar, Link
    1 ponto
  11. Animal Pak

    Elief City

    Tamanho 308Kb Imagens: Download: http://www.speedyshare.com/4xkEm/Peaceful-Town.otbm Scan: https://virusscan.jotti.org/en-US/filescanjob/w5xaq7znid Créditos: Jeffro
    1 ponto
  12. Animal Pak

    Nto Adventure

    Imagens: Vídeo mostrando o servidor: https://www.youtube.com/watch?v=zYgpa_HecNo Download: http://www.mediafire.com/download/ii9byg19i013raq/Nto+adventure+server.rar Scan: https://www.virustotal.com/pt/file/cbff46196a1dc5910a08eed94e60f6fbf3dd035064b4b07f788c92439cb7bef0/analysis/1446662526/ Créditos: Nto Adventure Team
    1 ponto
  13. MatheusGlad

    Summon Creature

    function getContainerItems(containeruid) local items = {} local containers = {} if type(getContainerSize(containeruid)) ~= "number" then return false end for slot = 0, getContainerSize(containeruid)-1 do local item = getContainerItem(containeruid, slot) if item.itemid == 0 then break end if isContainer(item.uid) then table.insert(containers, item.uid) end table.insert(items, item) end if #containers > 0 then for i,x in ipairs(getContainerItems(containers[1])) do table.insert(items, x) end table.remove(containers, 1) end return items end function playerHasItemEquipped(cid, itemuid) if not isPlayer(cid) then return false end for i = CONST_SLOT_FIRST, CONST_SLOT_LAST do if getPlayerSlotItem(cid, i).uid == itemuid then return true end end end function onUse(cid, item, frompos, item2, topos) local dolls = { [11256] = {pet = "Safira"}, [11207] = {pet = "Ashmunrah"}, [11144] = {pet = "Demon"}, [9019] = {pet = "Vampire"}, } local go = dolls[item.itemid] local summon = getCreatureSummons(cid) --------------------------------------------------- local backpack = getPlayerSlotItem(cid, CONST_SLOT_BACKPACK).uid if table.find(getContainerItems(backpack), item.uid) or playerHasItemEquipped(cid, item.uid) then if #summon >= 1 then for _, pid in ipairs(getCreatureSummons(cid)) do doRemoveCreature(pid) doCreatureSay(cid, "Can go rest ["..go.pet.."]", TALKTYPE_ORANGE_1) end return true end doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid))) doCreatureSay(cid, "Let battle ["..go.pet.."]", TALKTYPE_ORANGE_1) return true end end Nao testei mas deve funcionar.
    1 ponto
  14. MatheusGlad

    Summon Creature

    Tem um comando pra god fazer isso ja "/s" mas como ele nao remove: function setGlobalStorageTable(storage, tab) local tabstr = "&" for i,x in pairs(tab) do tabstr = tabstr .. i .. "," .. x .. ";" end setGlobalStorageValue(storage, tabstr:sub(1, #tabstr-1)) end function getGlobalStorageTable(storage) local tabstr = getGlobalStorageValue(storage) local tab = {} if type(tabstr) ~= "string" then return {} end if tabstr:sub(1,1) ~= "&" then return {} end local tabstr = tabstr:sub(2, #tabstr) local a = string.explode(tabstr, ";") for i,x in pairs(a) do local b = string.explode(x, ",") tab[tonumber(b[1]) or b[1]] = tonumber(b[2]) or b[2] end return tab end function onSay(cid, words, param, channel) local pos = getCreaturePosition(cid) local globaltab = getGlobalStorageTable(14023) if not globaltab[param:lower()] or not isCreature(globaltab[param:lower()]) then local monster = doCreateMonster(param, pos) if monster then doConvinceCreature(cid, monster) globaltab[param:lower()] = monster setGlobalStorageTable(14023, globaltab) else doPlayerSendDefaultCancel(cid, (monster == false and RETURNVALUE_NOTPOSSIBLE or RETURNVALUE_NOTENOUGHROOM)) end else doRemoveCreature(globaltab[param:lower()]) globaltab[param:lower()] = nil setGlobalStorageTable(14023, globaltab) end return true end
    1 ponto
  15. MatheusGlad

    Summon Creature

    Use /create Demon pra sumonar o demon e /create demon denovo pra remover, caso o demon esteja morto ele vai sumonar outro. Funciona com varios monstros ao mesmo tempo. data\talkactions\scripts\nomedoscript.lua: function setGlobalStorageTable(storage, tab) local tabstr = "&" for i,x in pairs(tab) do tabstr = tabstr .. i .. "," .. x .. ";" end setGlobalStorageValue(storage, tabstr:sub(1, #tabstr-1)) end function getGlobalStorageTable(storage) local tabstr = getGlobalStorageValue(storage) local tab = {} if type(tabstr) ~= "string" then return {} end if tabstr:sub(1,1) ~= "&" then return {} end local tabstr = tabstr:sub(2, #tabstr) local a = string.explode(tabstr, ";") for i,x in pairs(a) do local b = string.explode(x, ",") tab[tonumber(b[1]) or b[1]] = tonumber(b[2]) or b[2] end return tab end function onSay(cid, words, param, channel) local pos = getCreaturePosition(cid) local globaltab = getGlobalStorageTable(14023) if not globaltab[param:lower()] or not isCreature(globaltab[param:lower()]) then local monster = doCreateMonster(param, pos) if monster then globaltab[param:lower()] = monster setGlobalStorageTable(14023, globaltab) else doPlayerSendDefaultCancel(cid, (monster == false and RETURNVALUE_NOTPOSSIBLE or RETURNVALUE_NOTENOUGHROOM)) end else doRemoveCreature(globaltab[param:lower()]) globaltab[param:lower()] = nil setGlobalStorageTable(14023, globaltab) end return true end tag: <talkaction access="5" words="/create" event="script" value="nomedoscript.lua"/>
    1 ponto
  16. Verifique se você baixou o SDK do projeto The Forgotten Server e também o conjunto de libraries do Boost C++. TFS SDK Boost C++ (32-bit, 64-bit) Até mais.
    1 ponto
  17. MatheusGlad

    Adicionar limite

    Substitui por isso, tem os tres pedidos ai, o item que da mais storage voce muda o id la em baixo no final do mod. <?xml version="1.0" encoding="ISO-8859-1"?> <mod name="Loot System" version="1.0" author="Vodkart And Mkalo" contact="xtibia.com" enabled="yes"> <config name="Loot_func"><![CDATA[ info = { OnlyPremium = false, AutomaticDeposit = true, BlockMonsters = {}, BlockItemsList = {10020,5919,5809,5804,5015}, maxSlotsStorage = 32149, defaultMaxSlot = 3, -- deixe false pra desabilitar itemAddValue = 2, -- vai adicionar 2 slots ao usar o item } function setPlayerStorageTable(cid, storage, tab) local tabstr = "&" for i,x in pairs(tab) do tabstr = tabstr .. i .. "," .. x .. ";" end setPlayerStorageValue(cid, storage, tabstr:sub(1, #tabstr-1)) end function getPlayerStorageTable(cid, storage) local tabstr = getPlayerStorageValue(cid, storage) local tab = {} if type(tabstr) ~= "string" then return {} end if tabstr:sub(1,1) ~= "&" then return {} end local tabstr = tabstr:sub(2, #tabstr) local a = string.explode(tabstr, ";") for i,x in pairs(a) do local b = string.explode(x, ",") tab[tonumber(b[1]) or b[1]] = tonumber(b[2]) or b[2] end return tab end function isInTable(cid, item) for _,i in pairs(getPlayerStorageTable(cid, 27000))do if tonumber(i) == tonumber(item) then return true end end return false end function addItemTable(cid, item) local x = {} for i = 1,#getPlayerStorageTable(cid, 27000) do table.insert(x,getPlayerStorageTable(cid, 27000)[i]) end if x ~= 0 then table.insert(x,tonumber(item)) setPlayerStorageTable(cid, 27000, x) else setPlayerStorageTable(cid, 27000, {item}) end end function removeItemTable(cid, item) local x = {} for i = 1,#getPlayerStorageTable(cid, 27000) do table.insert(x,getPlayerStorageTable(cid, 27000)[i]) end for i,v in ipairs(x) do if tonumber(v) == tonumber(item) then table.remove(x,i) end end return setPlayerStorageTable(cid, 27000, x) end function ShowItemsTabble(cid) local str,n = "-- Lista de Loot --\n\n",0 for i = 1,#getPlayerStorageTable(cid, 27000) do n = n + 1 str = str..""..n.." - "..getItemNameById(getPlayerStorageTable(cid, 27000)[i]).."\n" end return doShowTextDialog(cid, 2529, str) end function getContainerItems(containeruid) local items = {} local containers = {} if type(getContainerSize(containeruid)) ~= "number" then return false end for slot = 0, getContainerSize(containeruid)-1 do local item = getContainerItem(containeruid, slot) if item.itemid == 0 then break end if isContainer(item.uid) then table.insert(containers, item.uid) end table.insert(items, item) end if #containers > 0 then for i,x in ipairs(getContainerItems(containers[1])) do table.insert(items, x) end table.remove(containers, 1) end return items end function getItemsInContainerById(container, itemid) -- Function By Kydrai local items = {} if isContainer(container) and getContainerSize(container) > 0 then for slot=0, (getContainerSize(container)-1) do local item = getContainerItem(container, slot) if isContainer(item.uid) then local itemsbag = getItemsInContainerById(item.uid, itemid) for i=0, #itemsbag do table.insert(items, itemsbag[i]) end else if itemid == item.itemid then table.insert(items, item.uid) end end end end return items end function doPlayerAddItemStacking(cid, itemid, quant) -- by mkalo local item = getItemsInContainerById(getPlayerSlotItem(cid, 3).uid, itemid) local piles = 0 if #item > 0 then for i,x in pairs(item) do if getThing(x).type < 100 then local it = getThing(x) doTransformItem(it.uid, itemid, it.type+quant) if it.type+quant > 100 then doPlayerAddItem(cid, itemid, it.type+quant-100) end else piles = piles+1 end end else return doPlayerAddItem(cid, itemid, quant) end if piles == #item then doPlayerAddItem(cid, itemid, quant) end end function AutomaticDeposit(cid,item,n) local deposit = item == tonumber(2160) and (n*10000) or tonumber(item) == 2152 and (n*100) or (n*1) doPlayerSendTextMessage(cid, 23, "{AUTO-LOOT} Collected " .. deposit .. " gold coins sent to your bank account.") return doPlayerDepositMoney(cid, deposit) end function corpseRetireItems(cid, pos) local check = false for i = 0, 255 do pos.stackpos = i tile = getTileThingByPos(pos) if tile.uid > 0 and isCorpse(tile.uid) then check = true break end end if check == true then local items = getContainerItems(tile.uid) for i,x in pairs(items) do if isInArray(getPlayerStorageTable(cid, 27000), tonumber(x.itemid)) then if isItemStackable(x.itemid) then doPlayerAddItemStacking(cid, x.itemid, x.type) if info.AutomaticDeposit == true and isInArray({"2148","2152","2160"},tonumber(x.itemid)) then AutomaticDeposit(cid,x.itemid,x.type) end else doPlayerAddItem(cid, x.itemid) end doRemoveItem(x.uid) end end end end ]]></config> <event type="login" name="LootLogin" event="script"><![CDATA[ function onLogin(cid) registerCreatureEvent(cid, "MonsterAttack") return true end]]></event> <event type="death" name="LootEventDeath" event="script"><![CDATA[ domodlib('Loot_func') function onDeath(cid, corpse, deathList) local killer,pos = deathList[1],getCreaturePosition(cid) addEvent(corpseRetireItems,1,killer,pos) return true end]]></event> <event type="combat" name="MonsterAttack" event="script"><![CDATA[ domodlib('Loot_func') if isPlayer(cid) and isMonster(target) and not isInArray(info.BlockMonsters,string.lower(getCreatureName(target))) then registerCreatureEvent(target, "LootEventDeath") end return true]]></event> <talkaction words="!autoloot;/autoloot" event="buffer"><![CDATA[ domodlib('Loot_func') if info.defaultMaxSlot and getPlayerStorageValue(cid, info.maxSlotsStorage) <= 0 then setPlayerStorageValue(cid, info.maxSlotsStorage, info.defaultMaxSlot) end local t = string.explode(string.lower(param), ",") if info.OnlyPremium == true and not isPremium(cid) then doPlayerSendCancel(cid, "you must be a premium account.") return true elseif not t[1] then ShowItemsTabble(cid) return true elseif tonumber(t[1]) or tonumber(t[2]) then doPlayerSendCancel(cid, "enter !autoloot add,name or !autoloot remove,name") return true elseif isInArray({"add","remove"}, tostring(t[1])) then local func,check = tostring(t[1]) == "add" and addItemTable or removeItemTable, tostring(t[1]) == "add" and true or false local item = getItemIdByName(tostring(t[2]), false) if not item then doPlayerSendCancel(cid, "O item nao existe") return true elseif check == true and isInArray(info.BlockItemsList, item) then doPlayerSendCancel(cid, "Esse item nao é permitido a ser adicionado.") return true elseif isInTable(cid, item) == check then doPlayerSendCancel(cid, "This Item "..(check == true and "already" or "is not").." in your list.") return true elseif check and info.defaultMaxSlot and #getPlayerStorageTable(cid, 27000) >= getPlayerStorageValue(cid, info.maxSlotsStorage) then doPlayerSendCancel(cid, "You cannot add more than " .. getPlayerStorageValue(cid, info.maxSlotsStorage) .. " items in your list.") return true end func(cid, item) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,check == true and "Voce adicionou o item "..t[2].." a sua lista" or "Voce removeu o item "..t[2].." from the list") return true end return true]]></talkaction> <action itemid="5889" event="buffer"><![CDATA[ domodlib('Loot_func') local s = doPlayerRemoveItem(cid,item.itemid,1) if s then setPlayerStorageValue(cid, info.maxSlotsStorage, getPlayerStorageValue(cid, info.maxSlotsStorage)+info.itemAddValue) else doPlayerSendCancel(cid, "Pick up the item first.") end return true ]]></action> </mod>
    1 ponto
  18. local tilepos = {x=136, y=48, z=7} -- Posiçao do tile noroeste ( /\ < ) local sq = 3 -- Area 3x3 usar somente numeros impares > 2 local monster = "Demon" local time = 2 -- Tempo em minutos pra desaparecer local tptime = 10 -- tempo em segundos pra desaparecer tp local tppos = {x=135, y=48, z=7} -- lugar do tp local tpdest = {x=134,y=55, z=7} -- destino do tp function getUidsInArea(extr1, extr2) local dat = {} for y = extr1.y, extr2.y do for x = extr1.x, extr2.x do if isCreature(getThingFromPos({x=x, y=y, z=extr1.z, stackpos=255}).uid) then table.insert(dat, getThingFromPos({x=x, y=y, z=extr1.z, stackpos=255}).uid) end end end return dat end function summonAndRemove(monster, pos, t) local function removeCreatureEvent(uid) if isCreature(uid) then doRemoveCreature(uid) end end local uid = doSummonCreature(monster, pos) addEvent(removeCreatureEvent, t*1000, uid) end function createTpAndRemove(pos, topos, t) local function removeTp(pos) pos.stackpos = 1 local thing = getThingFromPos(pos) if thing.itemid == 1387 then doRemoveItem(thing.uid) end end doCreateTeleport(1387, topos, pos) addEvent(removeTp, t*1000, pos) end function onStepIn(cid, item, pos, frompos) if sq < 3 or sq%2 == 0 then return error("SOMENTE NUMEROS IMPARES MAIORES QUE 2") end local uids = getUidsInArea(tilepos, {x=tilepos.x+sq-1, y=tilepos.y+sq-1, z=tilepos.z}) if #uids == 0 then tppos.stackpos = 1 local tpthing = getThingFromPos(tppos) if tpthing.itemid == 1387 then doRemoveItem(tpthing.uid) end for y = tilepos.y, tilepos.y+sq-1 do for x = tilepos.x, tilepos.x+sq-1 do if y == tilepos.y+(sq-1)/2 and x == tilepos.x+(sq-1)/2 then doTeleportThing(cid, {x=x, y=y, z=tilepos.z}) else summonAndRemove(monster, {x=x, y=y, z=tilepos.z}, time*60) end end end addEvent(createTpAndRemove, time*60*1000, tppos, tpdest, tptime) else doTeleportThing(cid,frompos,true) return doPlayerSendCancel(cid, "There is people inside right now.") end end
    1 ponto
  19. Boa tarde, irei mostrar como deixar a montanha com auto-border nos pisos. Vá até a pasta do seu RME, abra o arquivo grounds.xml da versão que você utiliza, procure por: <brush name="mountain" type="ground" Ele vai estar assim: <brush name="mountain" type="ground" server_lookid="918" z-order="9900"> <item id="919" chance="1"/> <border align="inner" to="icy mountain" id="53"/> <border align="inner" to="snowy mountain" id="53"/> <border align="inner" to="none" id="3"/> <border align="outer" to="none" id="51"/> <border align="outer" id="10"/> <border align="inner" id="3"/> <optional id="29"/> </brush> Substitua por esse: <brush name="mountain" type="ground" server_lookid="918" z-order="9900"> <item id="919" chance="1"/> <border align="inner" to="icy mountain" id="53"/> <border align="inner" to="snowy mountain" id="53"/> <border align="outer" to="none" id="29"/> <border align="outer" id="29"/> <optional id="29"/> </brush> Demonstração: Antes sem editar Depois com a edição Simples. Até logo!!!
    1 ponto
  20. MatheusGlad

    [Pedido] Spell 8.60 -

    O que voce quiz dizer com "encostar"? Ficar do lado do player? Se for isso soh editando a source pra adicionar funçao onWalk, ou fazer uma gambiarra pra ficar dando check de tanto em tanto tempo no player pra ve se tem alguem do lado dele o que pode acabar lagando, posso fazer mas avisei . Segunda spell: Bem deve funcionar: data\spells\scripts\hook.lua: local range = 7 local interval = 50 -- velocidade do projetil em ms. ex: 1 sqm em 50 ms local stepsinterval = 50 -- velocidade de cada passo que a criatura vai dar ate chegar ao player local mindmg, maxdmg = 50, 100 -- min e max dmg em PLAYER, o dobro em monstros local dirs = { [0] = {0, -1}, [1] = {1, 0}, [2] = {0, 1}, [3] = {-1, 0} } function testTimes(pos, range, dir, interval) for i = 1, range do addEvent(doSendAnimatedText, interval*i, {x=pos.x+dirs[dir][1]*i, y=pos.y+dirs[dir][2]*i, z=pos.z}, i, 180) end end function forceWalk(cid, dir, distance, interval) local pos = getCreaturePosition(cid) local function teleportCreatureEvent(cid, topos) if isCreature(cid) then doTeleportThing(cid, topos, true) end end if interval > 0 then for i = 1, distance do addEvent(teleportCreatureEvent, i*interval, cid, {x=pos.x+dirs[dir][1]*i, y=pos.y+dirs[dir][2]*i, z=pos.z}) end else doTeleportThing(cid, {x=pos.x+dirs[dir][1]*distance, y=pos.y+dirs[dir][2]*distance, z=pos.z}) end return true end function isWalkable(pos) pos.stackpos = 1 local tile = getThingFromPos(pos) if not getTileInfo(pos).protection and (tile.itemid == 0 or (not isCreature(tile.uid) and not hasProperty(tile.uid, 0) and not hasProperty(tile.uid, 2) and not hasProperty(tile.uid, 3))) then return true end return false end function onCastSpell(cid, var) local playerpos = getPlayerPosition(cid) local dir = getPlayerLookDir(cid) local distance, target for d = 1, range do local uid = getThingFromPos({x=playerpos.x+dirs[dir][1]*d, y=playerpos.y+dirs[dir][2]*d, z=playerpos.z, stackpos=255}).uid if isCreature(uid) and not getTileInfo({x=playerpos.x+dirs[dir][1]*d, y=playerpos.y+dirs[dir][2]*d, z=playerpos.z}).protection then distance = d target = uid break end if not isWalkable({x=playerpos.x+dirs[dir][1]*d, y=playerpos.y+dirs[dir][2]*d, z=playerpos.z}) then distance = d break end end if distance then doSendDistanceShoot(playerpos, {x=playerpos.x+dirs[dir][1]*distance, y=playerpos.y+dirs[dir][2]*distance, z=playerpos.z}, 2) if target then addEvent(forceWalk, interval*distance, target, (dir+2)%4, distance-1, stepsinterval) addEvent(doTargetCombatHealth, interval*distance, cid, target, COMBAT_PHYSICALDAMAGE, -mindmg*2, -maxdmg*2, nil) end else doSendDistanceShoot(playerpos, {x=playerpos.x+dirs[dir][1]*range, y=playerpos.y+dirs[dir][2]*range, z=playerpos.z}, 2) end --testTimes(playerpos, range, dir, interval) return true end tag: <instant name="Hook" words="fresh meat" lvl="8" mana="1" exhaustion="2000" needlearn="0" event="script" value="hook.lua"> <vocation id="1"/> <vocation id="2"/> <vocation id="3"/> <vocation id="4"/> <vocation id="5"/> <vocation id="6"/> <vocation id="7"/> <vocation id="8"/> </instant> Como voce nao deixou claro se a criatura atingida pela "arrow" seria "arrastada" ou simplesmente dar teleport eu botei os dois, soh botar o stepsinterval = 0 pra dar teleport O problema eh que nao tem como eu fazer uma funçao pra desativar os movimentos do player enquanto ele esta sendo arrastado, isso pode acabar dando bugs, se for o caso voce vai ter que deixar o stepsinterval = 0 e o player nao vai ser arrastado
    1 ponto
  21. Administrador

    Players Broadcast

    Esse sistema foi feito por Mark Samman. Level mínimo, preço da transmissão, tempo entre as transmissões; e como é exibido no bate-papo, pode ser configurado. O sistema foi modificado por Hokku pra 1.1 data/talkactions/scripts/broadcast22.lua local config = { storage = 19400, -- change to an non used storage if u use it cor = "advance", -- No working on TFS 1.1, edit line 21 param tempo = 2, -- in minutes price = 1000, -- price of each bc level = 100 -- lvl requiered to use bc } function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return true end if getPlayerLevel(cid) >= config.level then if getPlayerStorageValue(cid, config.storage) - os.time() <= 0 then if doPlayerRemoveMoney(cid, config.price) then setPlayerStorageValue(cid, config.storage, os.time() + (config.tempo*60)) Game.broadcastMessage("[ALL] "..getCreatureName(cid)..": "..param.."", MESSAGE_STATUS_CONSOLE_ORANGE) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You have successfully sent a broadcast, now you'll have to wait " ..config.tempo.. " minute(s) until you broadcast again.") else doPlayerSendCancel(cid, "You don't have " ..config.price.. " gp's for broadcasting.") return true end else doPlayerSendCancel(cid, "You have to wait " ..(getPlayerStorageValue(cid, config.storage) - os.time()).. " seconds until you can broadcast again.") return true end else doPlayerSendCancel(cid, "You have to be level " ..config.level.. " or more in order to use broadcast.") end end data/talkactions.xml <talkaction words="/all" separator=" " script="broadcast22.lua"/>
    1 ponto
  22. Administrador

    Possivel "bug"

    Problema resolvido.
    1 ponto
  23. Administrador

    [Show Off] SamueLGuedes

    Lindos, sensacional sua evolução!
    1 ponto
  24. SamueLGuedes

    [Show Off] SamueLGuedes

    estou testando novos métodos, o que vocês acham?
    1 ponto
  25. (serversoft) Recomendo Além disso, não é permitido divulgação de outras empresas na comunidade. O motivo é simples, muita gente é roubada por não confiar em uma empresa profissional como a ServerSoft e reclama aqui (reclamava). Estou disposto a te ajudar no que for preciso, também tenho internet compartilhada. Qual sua dificuldade?
    1 ponto
  26. SamueLGuedes

    [Encerrado] Entrar no mapa

    A maioria dos 10.82 é MySQL, mas tente usar assim, no config procure por: -- Database sqlType = "sqlite" sqlHost = "localhost" sqlPort = 3306 sqlUser = "root" sqlPass = "" sqlDatabase = "theforgottenserver" sqlFile = "Styller.s3db" sqlKeepAlive = 0 mysqlReadTimeout = 10 mysqlWriteTimeout = 10 encryptionType = "plain" com certeza em seu Config o: sqlType = "sqlite" vai estar mysql, é só mudar para Sqlite, exatamente como esta a cima. e em: encryptionType = "plain" vai estar sha1, mude para plain. caso não funcione, procure por um servidor 10.82 sem mysql.
    1 ponto
  27. SamueLGuedes

    [Encerrado] Entrar no mapa

    @@Eden UntraxBR veja se esses tópicos podem te ajudar, eles ensinam a como configurar o xampp e deixar seu otserv Online. Deixe seu Otserv Online com Xampp Video Aula Configurando Xampp
    1 ponto
  28. O Primeiro W do site nesse post , está redicionando para outro site rs só pra avisar.
    1 ponto
  29. wesleyt10

    Sprite feita no tablet

    me bateu uma saudade de spritiar entao como n possuo mais maquina para fazer meus spreites pois me tornei pai e precisei vender meu pc e sair da casa da mamae , fikei sem o pc, entt procurei um app para spritiar , o sprite art, pois como todo app ele eh mto limitado na variedade de cores e os tons q ela possui , alem de n salvar em bmp, entt eu acabei ficando um pouco limitado mas , saiu iso ai! E o forum n tem suport pra colocar a imagem pelo android , ou se tem eu n sei usar , entt eh so ver na galeria q esta nesse site!
    1 ponto
  30. MiltonAlvesJr

    Global Full 8.6 com Rook [UP-LVL]

    Bom galera, acabei de fazer umas atualizações no server, e postei o novo link! Com muitos ajustes que estava faltando. Quem tiver alguma duvida, eu posso sanar! Em questão da Premium Account, você compra o Premium Scroll de 15 ou 30 dias no NPC, usa o comando !premium15 ou !premium30 para inserir a Premium desejada. Também inseri ao server o Stamina Elixir, usado para deixar sua Stamina ao máximo novamente! Todas estas opções vocês podem usufruir pelos NPC'S, The Queen em Carlin ou King Tibianus em Thais. vlwww
    1 ponto
  31. Niickmaster

    Seu Ultimo Sprite.

    Não foi comentar nada sobre a sprite que o Breno Neto acabou de publicar logo acima do Mago. Está simplesmente fodaparakaralho!omalucomanjanosparanauêporr@ perfeita.
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...