Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 12/09/11 em %

  1. ESSA É A EVOLUÇAO DOS BAIAK BY MATH... CANSADO DAQUELES BAIAK QUE SO MUDAM UM POUQUINHO AQUI OU POUQUINHO ALI E PRONTO POSTA AQUE PRA NOIS... INTAO ESSE É O BAIAK CERTO PARA VCS.. Baiak Yurots V2.2 Oque Mudou ? Baiak Yurots V2.7 Oque Mudou ? Baiak Yurots v1.0.9 Oque Mudou ? Baiak Yurots v1.1.0 Oque Mudou ? Baiak Yurots V1.1.4 Oque Mudou ? Baiak Yurots Edited By Bryaan Oque mudou ? Baiak Evolution By Math o que mudou? Coloquei porta em todos os treiner para acabar com o pz em treiner's Adicionado 7 novos monster Adicionados novos itens Feito 100+ houses Adicionado Quest Master Vip (vip 3) Retirado os bugs (para completar quest master vip é necessario ser vip 2) Novos comandos adicionados... obs:Eu tinha esquecido do sistema de rank Adicionado sistema de rank...ele atualiza no momento comandos: BUERO FREE TEMPLO VIP CIDADE MASTER VIP (VIP 3) RESTAURANTE \O/ PRAIA (MASTER VIP) TREINER FREE TELEPORTS VIP TELEPORTS VIP 2 TELEPORTS VIP 3 TEMPLO FREE OBS:eu pequei esse mapa e corigi os bugs postado por voces e que eu achei CLIQUE AQUE PARA ACESSAR O TOPICO DO MAPA SEM BUGS DOWNLOAD COM DLL AQUI SCAN DO MAPA COM DLL DOWNLOAD SEM DLL AQUI SCAN DO MAPA SEM DLL DOWNLOAD Dlls Reportem bugs aqui ou adiciona eu no msn para suporte:matheusalves96@hotmail.com Abra Creditos Baiak Bryaan Math Miner0
    2 pontos
  2. • Snowz Thyranic 3.1 - Especial Edition (8.60) • Servidor feito por luisfe23 e Doidin. Fala galera estou aqui para apresentar o novo Snowz Thyranic, eu e o luisfe23 estamos trabalhando a muito tempo neste servidor e muitas novidades surgirão, este servidor é baseado no mapa Thyrania e contém um RPG super emocionante. Então, tá esperando o que? Confira logo! • 8 Cidades: ├ Rookgaard ├ Thyran ├ Murnia ├ Saaha ├ Icya ├ Venga ├ Mandrin └ Talas • Conta do GOD: ├ Account: god └ Senha: god Ok, vamos logo para as atualizações! • Snowz Thyranic Versão 1: • Snowz Thyranic Versão 1.1: • Snowz Thyranic Versão 2: • Snowz Thyranic Versão 2.1: • Snowz Thyranic Versão 3.0: • Snowz Thyranic Versão 3.1 (Especial Edition): ├ Modificações no Distro, ele está completamente estável! ├ Modificações no mapa, bugs foram removidos! ├ Modificações em vários NPC's, eles estão bem mais realistas! ├ Todos os NPC's de Addons foram removidos e substituidos por apenas 1 que fica nas redondezas de Thyran. ├ A Demon Oak Quest está funcionando perfeitamente. ├ A Dijin Quest agora está funcionando perfeitamente. ├ A Black Knight Quest está funcionando perfeitamente. ├ Todos os bugs que davam para fazer dinheiro foram removidos. ├ Adicionado NPC "Padre" em Thyran, ele realiza casamentos. ├ Agora as bless custam apenas 50k. ├ Arrumado as Quests no Quest Log. └ Entre várias outras mudanças! • Algumas Imagens: :forward: Download do Snowz Thyranic 3.1 (8.60) :forward: Scan do Snowz Thyranic 3.1 (8.60) • Créditos: Achou Bugs? Reporte !
    1 ponto
  3. MatheusGlad

    Auto Loot System.

    Video demonstrando o que faz o script: Para usar a talkaction eh simples: !autoloot itens (itens separados por virgula) Exemplo: !autoloot mastermind shield, gold coin Na pasta mods, bote esse xml, e pronto estara funcionando direitinho. autoLoot.xml: <?xml version="1.0" encoding="UTF-8"?> <mod name="autoLoot" enabled="yes" author="MatheusMkalo" forum="XTibia.com"> <config name="autoLootLib"><![CDATA[ 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 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) 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 corpseRetireItems(corpsepos, killer, itemsarray) local corpse = nil for i = 1, 254 do corpsepos.stackpos = i corpse = getThingFromPos(corpsepos) if corpse.uid > 0 and isCorpse(corpse.uid) then break end end local items = getContainerItems(corpse.uid) for i,x in pairs(items) do if isInArray(itemsarray, tonumber(x.itemid)) then if isItemStackable(x.itemid) then doPlayerAddItemStacking(killer, x.itemid, x.type) else doPlayerAddItem(killer, x.itemid) end doRemoveItem(x.uid, x.type) end end end ]]></config> <creaturescript type="kill" name="autoLootKill" event="script"><![CDATA[ domodlib("autoLootLib") local loots = getPlayerStorageTable(cid, 6616) if lastHit and #loots >= 1 then addEvent(corpseRetireItems, 100, getCreaturePosition(target), cid, loots) end return true ]]></creaturescript> <talkaction words="!autoloot;/autoloot" event="script"><![CDATA[ domodlib("autoLootLib") local t = string.explode(param, ",") for i,x in pairs(t) do if not getItemIdByName(x, false) then return doPlayerSendCancel(cid, "Some of these items don't exist.") end t[i] = getItemIdByName(x, false) end setPlayerStorageTable(cid, 6616, t) doPlayerSendTextMessage(cid, 25, "Auto Looting: " .. param) return true ]]></talkaction> <creaturescript type="login" name="autoLootRegister" event="script"><![CDATA[ registerCreatureEvent(cid, "autoLootKill") return true ]]></creaturescript> </mod> autoLoot.xml
    1 ponto
  4. • NARUTO SEVEN - DOWNLOAD • Tópico e Links atualizados: 27/02/17 • Menu: ├ Informações; ├ Jutsus; ├ Prints; ├ Download; └ Creditos. • Informações Basicas • • Jutsus Do Servidor • • PrintScreen • • Download's • Servidor 8.54 + Cliente (MediaFIRE) http://www.mediafire.com/file/99upszbnbb7aklb/Nrtao V.2.rar Senha Para Entrar No Server / (Do GOD): god / god • Creditos • Stigal, Avuenja.
    1 ponto
  5. CoGames

    Gem System

    Vim postar o Gem System como meu 4º tópico do XTibia! Vi em alguns tópicos tutoriais do Gem System, mas nenhum funcionava, todos estavam bugados e errados, então, finalmente consegui achar o bendito mapa Foxworld escondido la nos cafundó e veio junto o Gem System ^^ Então, vim aqui trazer ele, tentei por em um otserver 8.4 e pegou! SS: O Que é Gem System? Já jogou Foxworld? É aqueles cristais que quando você clica poderá usar alguns poderes e aparece uns riscos do lado de seu char. Mãos a obra, primeiramente vá em data/actions/scripts, copie um arquivo.lua e cole, renomeie-o para gems e dentro cole: Agora vá em data/actions/actions.xml e ponha em alguma linha: Depois de feito isto, vá em data/lib, copie dois arquivos.lua e em um ponha Pivi, neste Pivi cole: Agora no outro arquivo.lua renomeie para Pivi_const e cole: Hora de ir em data/item/items.xml e Procurar as IDS: Feito isto é só mudar o nome das gemas, entrar em seu servidor com a vocação da gema, usá-la e pronto. Agora postarei as magias que poderão usar com gemas: Poder 1: Esta é a magia de Druid! Agora vamos para a de Sorcerer: Agora de paladin: E a última, de knight: Eu apelei muito essas magias, pois estava testando, para diminuir é só trocar os numeros do LEVELMAGIC para menores! Script não é meu, é do Foxworld OT, eu apenas procurei, procurei e procurei e acabei achando! Qualquer erro postem ai! Obrigado!
    1 ponto
  6. Vodkart

    Perfect Vip System 3.0

    Perfect Vip system 3.0 Última atualização: 14/08/12 Versão Testada:TFS 0.3.6 - 8.54 - 8.6 - 9.6 Créditos pelas modificações: Kydrai,Vodkart e Marcryzius Oque Contém no Sistema vip 3.0? Comandos: Query Primeiro passado execute essa query na sua DB: ALTER TABLE `players` ADD `vipacess` INT(15) NOT NULL DEFAULT 0; Agora vá em Data/lib/050-function e adicione essas funções: function getCharacterAcess(cid) local query = db.getResult("SELECT `vipacess` FROM `players` WHERE `id` = "..getPlayerGUID(cid)) if query:getID() ~= -1 then return query:getDataInt("vipacess") end end function getCharacterDays(cid) local acess = math.ceil((getCharacterAcess(cid) - os.time())/(86400)) return acess <= 0 and 0 or acess end function HaveCharaterAcess(cid) return getCharacterDays(cid) > 0 and true or false end function setAcessTime(cid, time) return db.executeQuery("UPDATE `players` SET `vipacess` = "..time.." WHERE `id` = "..getPlayerGUID(cid)) end function addCharacterAcess(cid, days) local add = (days <= 0 and 1 or days)*86400 local time = getCharacterDays(cid) == 0 and (os.time() + add) or (getCharacterAcess(cid) + add) return setAcessTime(cid, time) end function doRemoveCharacterAcess(cid, days) local remove = days*86400 local time = getCharacterAcess(cid) - remove return setAcessTime(cid, (time <= 0 and 1 or time)) end function getVipAcessDate(cid) if HaveCharaterAcess(cid) then return os.date("%d/%m/%y %X", getCharacterAcess(cid)) end return false end Talkactions agora em talkactions/scripts vipsystemplayer.lua function onSay(cid, words, param) if(words == "!buyvip") then local days = 10 local price = 50000 if not doPlayerRemoveMoney(cid, price) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa de "..price.." gp's para colocar vip.") return true end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados "..days.." dias de VIP no seu character.") addCharacterAcess(cid, days) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem "..getCharacterDays(cid).." dias de VIP, ela acaba em "..getVipAcessDate(cid)) elseif(words == "!vipdays") then return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem "..getCharacterDays(cid).." dias de VIP. "..(getCharacterDays(cid) > 0 and "ela acaba em "..getVipAcessDate(cid).."." or "")) end return true end vipsystemgod.lua function onSay(cid, words, param) if(words == "/checkvip") then if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.") return true end local player = getPlayerByName(param) if not isPlayer(player) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player "..player.." not found.") return true end return doPlayerPopupFYI(cid, "O jogador tem "..getCharacterDays(player).." dias de VIP no character.") elseif(words == "/addvip") then local t = string.explode(param, ",") if not tonumber(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") return true end local player = getPlayerByNameWildcard(t[1]) if(not player)then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player not found.") end addCharacterAcess(player, tonumber(t[2])) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você adicionou "..tonumber(t[2]).." dias de VIP no player "..getCreatureName(player)) doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Foram adicionados "..tonumber(t[2]).." dias de VIP no seu character.") elseif(words == "/delvip") then local t = string.explode(param, ",") if not tonumber(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") return true end local player = getPlayerByNameWildcard(t[1]) if(not player)then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player not found.") end doRemoveCharacterAcess(player, tonumber(t[2])) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você removeu "..tonumber(t[2]).." dias de VIP do jogador "..getCreatureName(player)..".") end return true end em talkactions.xml adicione as tags: <talkaction words="!buyvip;!vipdays" event="script" value="vipsystemplayer.lua"/> <talkaction words="/addvip;/delvip;/checkvip" access="4" event="script" value="vipsystemgod.lua"/> Item Vip item que adiciona vip no character actions/script addvipdays.lua function onUse(cid, item, fromPosition, itemEx, toPosition) local days = 15 addCharacterAcess(cid, (days <= 0 and 1 or days)) doRemoveItem(item.uid,1) return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem "..getCharacterDays(cid).." dias de VIP, ela acaba em "..getVipAcessDate(cid)) end Actions.xml <action itemid="ID DO SEU ITEM" script="addvipdays.lua"/> Vip Door actions/script perfectvipdoor.lua function onUse(cid, item, frompos, item2, topos) if not HaveCharaterAcess(cid) then return doPlayerSendTextMessage(cid,22,"Você precisa ser vip para passar aqui.") end doTransformItem(item.uid, item.itemid + 1) doTeleportThing(cid, topos, true) return true end actions.xml <action actionid="7779" script="perfectvipdoor.lua"/> Tile VIP em movements/scripts crie um arquivo.lua e renomeie para vipe.lua function onStepIn(cid, item, position, fromPosition) if item.actionid == 13700 and not HaveCharaterAcess(cid) then doTeleportThing(cid, fromPosition, true) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"você não é vip.") doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) return true end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"bem vindo.") return true end Em movements.xml adicione a tag: <movevent type="StepIn" actionid="13700" event="script" value="vipe.lua"/> no seu piso coloque ACTIONID 13700 Fim Vip em creaturescript/script endvip.lua function onLogin(cid) if getCharacterDays(cid) > 0 then setPlayerStorageValue(cid, 9898, 1) elseif getPlayerStorageValue(cid, 9898) == 1 and getCharacterDays(cid) <= 0 then doPlayerSetTown(cid, 1) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doPlayerPopupFYI(cid, "Sua vip Account acabou.") setPlayerStorageValue(cid, 9898, -1) end return true end em creaturescript.xml adicione a tag: <event type="login" name="CheckVip" script="endvip.lua"/>
    1 ponto
  7. Bom Galera , este é meu primeiro tutorial sobre websites. Só vai funcionar com database phpmyadmin Que pode ser muito útil para aqueles que gostam de resetar mas nao quer devolver items. =D Vamos lá. 1) Acesse seu localhost/phpmyadmin 2) Vá na sua database e depois em SQL 3) Vai aparecer "Faser consulta no banco de dados" 4) Nele voce escreve os codigos correspondentes á açao que voce quer faser. -AS açoes vou listar elas abaixo Para resetar os lvl e a life: UPDATE `players` SET `level` = '8', `health` = '180', `healthmax` = '180', `experience` = '4200', `mana` = '35', `manamax` = '35', `cap` = '400' Para resetar os skills: UPDATE `ot`.`players_skills` SET `value` = '10' Remover Premium Dos players: (serve para vip system que vende premmy no gesior) UPDATE account SET premdays=0; Adicionar 3 dias de Premium: UPDATE accounts SET premdays = premdays + 3; Mandar Geral po templo: UPDATE players SET posx = X, posy = Y, posz = Z; Criar Account Manager: INSERT INTO `players` VALUES (1, 'Account Manager', 1, 1, 1, 0, 150, 150, 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 50, 50, 7, '', 400, 0, 0, 0, 0, 0, 0, 0, '', 0, 0, 0, 0, 10, 10, 10, 0, 0); Remover Red skulls , Black Skuls e Frags de todos: UPDATE `players` SET `redskulltime`=0; Dar bless para todos: UPDATE `players` SET `blessings`=31; Remover um Item especifico: (exemplo 2160= crystal coin) ótimo para casos de clonadores. DELETE FROM player_depotitems, player_items, tile_items WHERE itemtype = 2160; Deletar players lvl 50- (CUIDADO, EXECUTANDO ESSA AÇAO VOCE IRÁ DELETAR OS SAMPLES. AUMENTE O LVL DOS SAMPLES E DEPOIS VOLTE AO NOMRAL) DELETE FROM players WHERE level < 50 AND lastlogin < UNIX_TIMESTAMP() - 20*24*60*60 Deletar houses de players que foram deletados: UPDATE `houses` SET `owner` = '0' WHERE `houses`.`owner` NOT IN ( SELECT `players`.`id` FROM `players` WHERE `players`.`id` = `houses`.`owner` ); Trocar Outifit de all players: UPDATE players SET lookbody =61, lookfeet =93, lookhead =127, looktype =128 Deletar players que nunca logaram: DELETE FROM `players` WHERE `lastlogin`=0; É isso galera, espero ter ajudado. fmz? Se nao for muito para vcs , dao REP + Thanks. é para o xtibia. :XTibia_smile:
    1 ponto
  8. Demonbholder

    Tibia Som V. 1.0 (Lua)

    Opa galera, tudo bem? Nesses últimos dias eu vim trabalhando em um projeto que eu já tenho em mente faz um tempo: um tibia som usando apenas a linguagem lua e suas bibliotecas auxiliares. Primeiramente gostaria de dizer que lua é um linguagem limitada, mesmo contando com suas bibliotecas auxiliares em C não se compara a própria linguagem C, entre outras. Leia tudo! Como funciona: Tanto o hoster quanto o jogador devem baixar arquivos para que o sistema funcione, porém, cada um irá baixar arquivos diferentes. O jogador irá abrir o programa e depois deve ativar a talkaction no jogo que irá dar inicio a conexão entre as duas redes. Depois, o jogador deve digitar sua conta e senha para confirmar a conexão. A partir deste momento, o programa estará em funcionamento. Informações: O programa ainda está em fase de testes, não tive a oportunidade de testar com Tibia MC ou até mesmo com duas conexões simultâneas, ou seja, duas pessoas usando o sistema. Peço que reportem qualquer bug para que eu o corrija imediatamente. Por enquanto, o máximo são 10 sons. Bibliotecas auxiliares: Foram utilizadas as bibliotecas ProteaAudio para reproduzir os sons e a biblioteca Socket para conectar as duas redes e possibilitar o envio de dados (TCP). Instalação: A instalação é a parte mais difícil do processo, fique muito atento pois qualquer nome de pasta que não esteja igual ao indicado irá debilitar o funcionamento do programa. Instalação para o Jogador Se você estiver jogando um OtServer que possua este sistema, siga os seguintes passos: Baixe o seguinte aquivo: http://www.4shared.c...ibia_Som_P.html Feito isso, para ativar o sistema, abra o arquivo Tibia Som.bat e, no jogo, use as palavras que irão ativar a talkaction para inciar a conexão. Após o inicio da conexão, digite a sua conta e senha e assim o sistema irá funcionar. Instalação para o Hoster Se você estiver hosteando um OtServer e deseja implementar o sistema, siga os seguintes passos: Baixe o seguinte arquivo: http://www.4shared.com/rar/AuijQwyB/Tibia_Som_H.html Agora, selecione as seguintes pastas: lua, mime, socket e os seguintes arquivos: lua.exe, lua5.1.exe, lua5.1.dll, lua51.dll e coloque-os na mesma pasta onde se encontra o interpretador (executável) e as dlls do seu OtServer. Feito isso, vá em data/globalevents/scripts e cole o arquivo gbevt.lua, depois vá em data/globalevents, abra o arquivo globalevents.xml e, entre duas tags, cole esta: <globalevent name="tibiasom" interval="3" event="script" value="gbevt.lua"/> Depois, vá em data/lib e cole o arquivo changer.txt, não se assuste porque ele está vazio, server apenas para trocar informações entre o OtServer e o interpretador avulso. Vá em data/talkactions/scripts e cole os arquivos talk.lua e sender.lua, depois vá em data/talkactions, abra o arquivo talkactions.xml e, entre duas tags, cole esta: <talkaction words="talk" script="talk.lua" /> Edição Jogador Se você seguiu os passos de instalação do jogador, agora poderá editar algumas configurações. Você tem a opção de editar os sons, porém, não a quantidade. Para fazer isto, abra a pasta songs. Para editar cada um dos sons, você deve substitui-los por um arquivo de mesmo nome e formato. Edição Hoster Se você seguiu os passos de instalação do hoster, agora pode e deve editar as configurações. Para editar as posições onde os sons vão ser reproduzidos, você deve editar dois arquivos: vá em data/globalevents/scripts, e abra o arquivo gbevt.lua. Você irá ver isto: tabmatch = { [{{x=130, y=40, z=5}, {x=160, y=60, z=7}}] = "{x=150, y=50, z=7}", [{{x=161, y=40, z=5}, {x=165, y=80, z=7}}] = "{x=170, y=70, z=7}" } Perceba estas duas tabelas: {x=130, y=40, z=5}, {x=160, y=60, z=7} O primeiro x é o número mínimo de posição x que o jogador deve estar para tocar o som referente a posição {x=150, y=50, z=7}. O seguindo x é o número máximo de posição x que ele deve estar para tocar o som. Isso se aplica ao y e o z também. Para adicionar novas posições (até 10), apenas continue seguindo o padrão da tabela, inserindo uma virgula no final de todos index, com exceção do último index. Por exemplo: tabmatch = { [{{x=130, y=40, z=5}, {x=160, y=60, z=7}}] = "{x=150, y=50, z=7}", [{{x=161, y=40, z=5}, {x=165, y=80, z=7}}] = "{x=170, y=70, z=7}", [{{x=166, y=100, z=5}, {x=190, y=190, z=9}}] = "{x=180, y=120, z=7}" } Tenha muito cuidado para que duas posições nunca se encontrem, caso aconteça, o sistema irá ser debilitado. Sempre que você editar o gbevt.lua, você deve, também, editar o sender.lua, que se encontra em data/talkactions/scripts. Nele, você também encontrará uma tabela: tab = { ['{x=150, y=50, z=7}'] = 'songs/song1.ogg', ['{x=170, y=70, z=7}'] = 'songs/song2.ogg' } Perceba esta tabela: {x=150, y=50, z=7} Esta tabela deverá ser igual a tabela que se encontra depois do sinal de "=" na tabela do arquivo gbevt.lua. Para edita-la, deve continuar o padrão da tabela, inserindo uma virgula no final de todos index, com exceção do último index. Vamos inserir um novo index considerando aquele exemplo usado na explicação do gbevt.lua: tab = { ['{x=150, y=50, z=7}'] = 'songs/song1.ogg', ['{x=170, y=70, z=7}'] = 'songs/song2.ogg', ['{x=180, y=120, z=7}'] = 'songs/song3.ogg' } Perceba que o song deve ser seguir a ordem crescente. Não esqueça que o máximo são 10 sons, a menos que o jogador também adicione mais sons na pasta songs. Não esqueça, também, de editar a tag em talkactions.xml: <talkaction words="talk" script="talk.lua" /> Caso deseje, edite onde está escrito talk, por qualquer palavra para que o jogador possa iniciar a conexão. Isso é tudo pessoal, espero que tenham gostado. Não esqueçam de reportar os bugs. Até. Sistema em fase de testes
    1 ponto
  9. Eai Xtibianos! Venho Mostrar Como "CRIAR" Suas Proprias Sprites No PAINT! Índice O que você vai precisar O que eu vou precisar Configurando o paint Criando suas próprias armas O que você vai precisar: O que eu vou precisar: Configurando o paint: Criando suas próprias armas: Espero Que Gostem!!! Não Esquesao De Comentar ;D!
    1 ponto
  10. Tony

    Website (Www.necroland.com)

    Olla Xtibianos eu novamente postando uma nova website pra galera e novamente pedindo que algum webdesigner experiente ae possa deichar esse e o Ikarus zerado sem as informações que contem nele como ranking e outros Screen-Short's Arquivos que contem na pasta Prova Download Scan CRÉDITOS Jakiin 100%
    1 ponto
  11. MarcelloMendes

    [Action] Magic Teleport'

    Bom galera, vim trazer pra vcs um script criado POR MIM, (é um dos meus primeiros)... E reparado por Kydrai... ' Ele e um 'Teleport Magico' , que quando usado, irá teleportar o player para sua 'townId' ou para cidade principal, onde vc colocará as cordenadas... Então Vamos la: --[[ SCRIPT BY: MarcelloMkez ]] function onUse(cid, item, pos, item2, topos) config = { ptemp ="no", --[[ Teleportar para ciade principal "yes ou no". ]] townp ="yes", --[[ Teleportar para Cidade onde o player mora, "yes ou no". ]] rmvitem ="yes", --[[ Remover item quando for usado? "yes ou no". ]] vip ="no", --[[ Precisa ser Premium Account para usar o item? "yes ou no" ]] batlle ="yes", --[[ Precisa estar sem Batlle para usar o item? "yes ou no "]] possibilidade = 10 , --[[ Possibilidade do player ser teleportado em porcentagem. ]] princ = {x=100, y=40, z=7}, --[[ Posição da Cidade Principal. ]] pz ="yes" --[[ Precisa estar em Protection Zone para Usar o Magic Teleport? "yes ou no"]] } local p = getPlayerTown(cid) local townpos = getTownTemplePosition(p) local cityname = getTownName(p) local chance = math.random(1, 100) --[[ de 1 a 100 % de chance, Não mude. ]] local msgp ="~ "..getPlayerName(cid).." Foi Teleportado para Cidade Principal. ~" local msgt ="~ "..getPlayerName(cid).." Foi Teleportado para "..cityname..". ~" local fail ="'O Teleport Falhou.'" if(config.vip =="yes") and not isPremium(cid) then doPlayerSendCancel(cid, "Você precisa ser Premium Account Para usar o Teleport Magico.") return 1 elseif (config.batlle == "yes") and (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE) then doPlayerSendCancel(cid, "Você precisa estar sem o batlle para usar o Teleport Magico.") return 1 elseif (config.pz =="yes") and (getTilePzInfo(getCreaturePosition(cid)) == FALSE) then doPlayerSendCancel(cid, "Você precisa estar em Protection Zone para usar o Teleport Magico.") return 1 elseif (config.ptemp =="yes" and config.townp =="yes") then doPlayerPopupFYI(cid, "'ERROR': Não é Possivel teleportar para duas cidades ao mesmo tempo.") return 1 --[[ Menssagem quando o player marcar 'yes' para as duas opçoes de teleport. ]] elseif chance >= 1 and chance <= config.possibilidade then doCreatureSay(cid, fail, TALKTYPE_ORANGE_1) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return 1 elseif(config.ptemp == "yes") then doTeleportThing(cid, config.princ) doCreatureSay(cid, msgp, TALKTYPE_ORANGE_1) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_RED) return 1 elseif(config.townp == "yes") then doTeleportThing(cid, townpos) doCreatureSay(cid, msgt, TALKTYPE_ORANGE_1) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_RED) return 1 end if(config.rmvitem =="yes") then doRemoveItem(item.uid, 1) end return TRUE end Tag: <action itemid="2349" script="teleportmagico.lua"/> Vermelho: Id do item quer vc quer usar como Teleport Magico. Bom como ta explicando ali no script... Qualquer duivida poste e irei ajuda-los... Muito Obrigado Galera Espero que gostem!!! o/
    1 ponto
  12. Henrique Moura

    Sindarion - World Prelude

    Aqui serão introduzidas as cidades e partes do mapa do Sindarion de forma histórica. As apresentações são simples e somente bases são definidas para a coerência. Todas as cidades terão uma definição e apresentação simples em breve. Illundare - A divergência do espirito Composto por três pequenas nações de homens que restaram nas terras de Sindarion, este continente vive sob uma massa sombria de guerra. Suas principais atividades são o comércio, atráves dos grandes portos, a guerra, que traz ao mercado boa quantidade de dinheiro devido a procura por proteção de seus habitantes. A procura das três nações pelo poder e o comando de Illundare talvez cause sua destruição completa. Apesar de procurar acordos de paz, a guerra nunca acaba devido as divergências de todos os lados. Do outro lado do mundo, os seres abominam este continente com o termo "Luz ou Sombra", e nenhuma criatura se envolve na guerra dos homens por os acharem ambiciosos e sem espirito. A guerra e a ambição do poderio infectou todos os homens da região e todos odeiam uns aos outros com sua vida. A pequena vila ao nordeste garante seu sustento atráves da mercância com as três grandes cidades, embora secretamente. Raças: Homem Nações: Edrak, governado pelo rei Azasio / Eldaron, governado pelo senhor feudal Jaaz'mo / Amroth, governo pelo rei Manwe Governo: Fragmentado Drakoei - O desolo da ponta do mundo Pouco se sabe sobre a ponta do mundo. Muitos acreditam que os dragões teriam surgido de uma fenda do submundo e devastado a região cuja outrora era dominada pelos orcs. Todos eles foram mortos e os sobreviventes fugiram e se disseminaram pelos outros continentes. Após essa invasão, os dragões sumiram e só voltariam a assombrar o mundo cerca de 200 anos depois, quando misteriosa e desconhecidamente eles regressaram. Durante esse tempo, não houve nenhum habitante em Drakoei. Há uma pequena cidade de bravos homens: valentes, guerreiros, navegadores, mercantes e mercenários, ao norte das ilhas devastadas, que eles mesmo denominaram de Dragoonest. Alguns dragões foram derrotados com o tempo, mas continuam infestando as ilhas ao redor de Szar, antiga habitação orc agora reconstruida sob um pantano e dominada por diversas raças onde convivem em paz, mesmo apesar de tamanha destruição e desordem. Nas tavernas de Szar, correm boatos que há um feiticeiro ao sudoeste das ilhas cujo é responsável pelos dragões terem vindo a este mundo. Não há confirmação deste fato. Raças: Dragões / Homens e diversas Nações: desconhecida Governo: nenhum
    1 ponto
  13. alldakie

    Tutorial - Como Fazer Uma Wand/rod

    Olá galera, vou ensinar uma coisa simples, mais que alguns não sabe, Como adicionar novas "Wands/Rods" no seu servidor... ----------------------------------------------------------------------------------------------------------- Programa requerido: Notepad++ (clique aqui p/ baixar) 1ª Etapa: Depois de ter configurado sua "Wand/Rod" você vai até a pasta (data/items) e abre o arquivo "Items.xml" e procura pelo ID do objeto desejado, no meu caso irei usar o "7735", quando acha-lo, troque-o por este: <item id="7735" article="a" name="snakebite rod"> <attribute key="description" value="It seems to twitch and quiver as if trying to escape your grip."/> <attribute key="weight" value="1900"/> <attribute key="weaponType" value="wand"/> <attribute key="shootType" value="smallearth"/> <attribute key="range" value="3"/> </item> ----------------------------------------------------------------------------------------------------------- Legenda: █ - Deixe o ID do objeto. █ - Aonde você coloca o nome da "Wand/Rod". █ - Aonde você coloca a descrição. █ - O peso dela, exemplo: 1900 será 19.00 oz. █ - Aonde você coloca o tipo de arma, (axe, sword, club, etc.). █ - Aonde você coloca o elemento que ela soltara, (earth, ice, fire, holy, death, etc.) █ - Aonde você coloca a distancia máxima que ela poderá soltar o ataque. 2ª Etapa: Vá na pasta do seu servidor, e siga esse diretório: (data/weapons) e abra o arquivo "weapons.xml", Dentro você adiciona o seguinte código: <wand id="7735" level="7" mana="2" min="8" max="18" type="earth" function="default"> <!-- Snakebit Rod --> <vocation name="Druid"/> <vocation name="Elder Druid" showInDescription="0"/> </wand> ----------------------------------------------------------------------------------------------------------- Legenda: █ - Aonde você coloca o ID do objeto que deseja usar para ser a "Wand/Rod". █ - Aonde você coloca o level necessário para usa-la. █ - Aonde você coloca o tanto de mana que ela usara. █ - Aonde você coloca o minimo de ataque que ela soltara. █ - Aonde você coloca o máximo de ataque que ela soltara. █ - O Tipo de elemento que ela soltara, (fire, holy, death, earth, ice, etc.) █ - O Nome do objeto, se quiser colocar, não tem função e só para identificar com mais facilidade. █ - Aonde você coloca o nome da vocação ou o ID da vocação que consta na pasta (data/XML>Vocations.xml). Espero ter ajudado, qualquer coisa me avisa... PS: Não coloquei "Quote" nos códigos porque aqui esta bugando...
    1 ponto
  14. hique86

    Teleportes, Saindo Do Basico!

    Ae peassoal, chega de teleportes basicos no seu Ot né. Teleportes basicos, nunca mais!! Sei que talvez tenha muita gente que sabe fazer, mas ainda vemos em muitos Ots com teleportes simples, basicos, então vou mostrar passo a passo a fazer um teleporte bacana. Simboraaa... Eu uso o RME, então os atalhos e itens são correspondentes ao RME. Primeiro: Segundo: Terceiro: Quarto: Quinto e ultimo: Seu teleporte ficara assim: O resultado e outros teleportes está no video: Bom pessoal, é isso ai, espero que gostem e apartir de agora, diga adeus a teleportes basicos e vamos deixar a criatividade fluir. créditos 100% Hique86 Até a proxima...
    1 ponto
  15. vc ja mudou o config.lua e os samples?
    1 ponto
  16. Churijo

    Como Faço Pra Diminuir Dano Da Sd?

    voçê testou o link que passei ali , se testou fale se deu certo ou nao
    1 ponto
  17. hum.. vo procurar aki pra voc..
    1 ponto
  18. k2lan

    Player Level 50 Com (0) De Mana.

    edite os samples em sua database lá tem as opções
    1 ponto
  19. Churijo

    [Dúvida] Programa

    no proprio Paint voçe pode fazer , mas existe tutrorias aqui que ensinam em outros programas http://www.xtibia.com/forum/topic/150443-criando-sprites-com-efeitos-e-sem-efeitos/
    1 ponto
  20. Churijo

    [Pedido] 1 Sprite De Sword

    mandei o link por PM , espero que goste e de sua opniao sobre ela ;D
    1 ponto
  21. Vinysla

    Gem System

    Aeeeeeeeeee, finalmente achei um script que realmente vale a pena perder o tempo pra faze. Tava a um tempão procurando o Gem System, quando vi este tópico abri logo e olha q funciono prefeitamente aqui no meu server, vlw mesmo CoGames, essa vc merece uns 10 rep+ Edit!!! Oqqqqqqqqqqqqq?????????????? Posto até as magias da gema? eu nem vi, puuuuuts cara, tu posto tudo completinho até as magias, amanhã te do mais um rep, meu servidor do nada loto pra mais 7 players por causa desse script, brigadao mesmo!
    1 ponto
  22. jhon992

    Npc Que Teleporta

    Vlw pela dica, @JeDiAN + esses quotes são contra min, ficava dando que não era possivel pq a quantidade de quotes abertos era diferente das de fechado dae dechei assim msm. sahdua Vlw aew.
    1 ponto
  23. athermillard

    Folks Server 8.6 24Hs Global Full

    Bom dia a todos do Xtibia. Hoje estarei disponibilizando o nosso novo ot aberto apenas a 2 dias que espero eu tenha um grande futuro. Bem vamos aos dados do server: Sobre o servidor: TFS 0.4_SVN Processador: Core 2 Duo Memoria Ram: 4gb Internet: 1.1Mb(Download)/ 0.48Mb(Upload) Sistema Operacinal de 64Bits Dados do server: Experience Stages: 0~100:200x 101~200:100x 201~250:50x 251~300:10x 301~350:5x 351~400:3x 401:1x 24hs 100% Dedicado Sistema "Items Vip" sem a função "Conta Vip" fazendo com que o pvp seja mais apurado na ralação de loot de itens vip. (mais informações acesse nossa Folks Loja) Informações Principais: Mapa: Global Full Ip: serverfolks.org /Port: 7171 Xp Magic Level = 30 Loot = 11 Xp Skills = 30 ​Entrem e Bom Jogo a todos!
    1 ponto
  24. pessoa93

    [Encerrado] [Help] Semi-Dedicado

    Isso é mais do que você vai usar. 2 gb já é bem rasuavél por que o mapa será pequeno então não vai consumir muita memoria. A internet é de 100 mbps então é de boa. Não se contrata hospedagem a parte, o vps você faz o site do servidor.
    1 ponto
  25. Vai em data/actions/scripts, duplica um arquivo, renomeia para "cardrat" sem as aspas e nele cole: function onUse(cid, item, fromPosition, itemEx, toPosition) if (item.uid == 2226) then if (getPlayerStorageValue(cid, 2226) <= 0) then doPlayerSendTextMessage(cid,22,"Você achou um Card Rat") item_uid = doPlayerAddItem(cid, 4854, 1) setItemName(item_uid, "Card Rat") doSetItemText(item_uid, "Essa é uma card rat.") setPlayerStorageValue(cid, 2226, 1) else doPlayerSendTextMessage(cid, 22, "O baú está vazio.") end else return 0 end return 1 end Agora vai em data/actions/actions.xml, abra-o e cole a tag: <action uniqueid="2226" script="cardrat.lua" /> Pronto, agora sóh colocar o uniqueid no seu baú!
    1 ponto
  26. jhon992

    Ajuda Fast

    Vou te dar o script um pouco editado para voce ajeitar da sua maneira, primeiro vai em data/globalevents/script, duplica um arquivo e renomeia para "effectpos" sem as aspas e nele cole: function onThink(interval, lastExecution) pos = {x = 113, y = 56, z = 7} -- posições em que o nome e os efects vaum sair! pos1 = {x = 113, y = 54, z = 7} pos2 = {x = 113, y = 52, z = 7} pos3 = {x = 113, y = 50, z = 7} pos4 = {x = 113, y = 48, z = 7} doSendAnimatedText(pos, 'Teleport', 140) -- 140 é a cor, voce pode escolher uma cor mais adequada logando seu ot e usando /y doSendMagicEffect(pos, 55) -- 55 é o magic effect que ira soltar na posição, para escolher outro use /z no seu ot e escolha um diferente doSendAnimatedText(pos1, 'SORCERER', 140) doSendMagicEffect(pos1, 55) doSendAnimatedText(pos2, 'KNIGHT', 130) doSendMagicEffect(pos2, 55) doSendAnimatedText(pos3, 'DRUID', 130) doSendMagicEffect(pos3, 55) doSendAnimatedText(pos4, 'PALADIN', 130) doSendMagicEffect(pos4, 55) end Voce pode adicionar mais posições como quiser no script acima, exemplo: pos5 = {x = numeronomapa, y = numeronomapa, z = numeronomapa} doSendAnimatedText(pos5, 'texto', cor) doSendMagicEffect(pos5, effect) Agora para fazer o script funcionar vai em data/globalevents/globalevests.xml, abra-o e cole a tag: <globalevent name="effectpos" interval="5" event="script" value="effectpos.lua"/> O iterval ali em cima é em segundos, dae você configura como quiser.
    1 ponto
  27. Como muitos me pediram, enfim chegou as fotos, podem conferir a vontade. Como sempre está magnifico.
    1 ponto
  28. Muito obrigado pelos elogios, e também pelos Rep+. Adoro pessoas que fazem críticas construtivas ou destrutivas, mas pelo menos tem que ter uma razão. Odeio quem faz uma crítica construtiva sem ao menos ler o que está escrito no tópico e o odeio tão quanto as pessoas que fazem críticas destrutivas sem ter instalado ou visto o mini map.
    1 ponto
  29. jhon992

    Red Black Skull

    Assim tu vai entender melhor: redSkullLength = 30 * 24 * 60 * 60 blackSkullLength = 45 * 24 * 60 * 60 No redSkullLength e no blackSkullLength muda apenas a primeira parte se quiser apenas alterar os dias, 30 = 30 dias. Muda como desejar. Ou seja, no script acima o red dura 30 dias e o black 45 dias. Se quiser 24 hras ou menos usa assim: redSkullLength = 24 * 60 * 60 blackSkullLength = 22 * 60 * 60 E muda o 24 como quiser. Ou seja, no script acima o red dura 24 hras e o black 22 hras. É isso aew, acho que esta bem explicado. Créditos pro @Epyrus!
    1 ponto
  30. @lordbug99 O Script te ajudo??? Então o que custa dar um REP+?
    1 ponto
  31. 1 ponto
  32. Vodkart

    Npc Papai Noel

    claro amigo, surprise box: function onUse(cid, item, fromPosition, itemEx, toPosition) items = {{2160, 20},{2152, 30},{2148, 90},{1232, 1},{9976, 1}} -- id dos itens que poderao vir ao abrir a box r = math.random(1, #items) doPlayerAddItem(cid, items[r][1], items[r][2]) doRemoveItem(item.uid, 1) end Configure: {ID DO ITEM, QUATIDADE} @ JeDiAN sISHiuiHSIUSHiuhUui VDD,tinha feito na pressa e esqueci desse detalhe vlw
    1 ponto
  33. aguinho600

    Aprendendo Usar Dat Editor

    Olá, vim fazer meu segundo tuto no X-tibia, nesse tutorial vou ensinar a usar o Dat Editor pois sei que muitos tem dúvidas de como usá-lo e querem aprender. Primeiro Clique em Open File : Demonstração ! Em seguida indique os locais do seu Tibia.dat e Tibia.spr : Demonstração ! Depois clique em Open e espere carregar o Tibia.spr e Tibia.dat : Demonstração ! Para adicionar uma sprite clique em Import -> Sprites : Demonstração ! Em seguida indique o local da sua Sprite : Demonstração ! Agora para importar sprites no formato IDC. Clique em Import -> Imported Items : Demonstração ! Em seguida selecione o local da sua sprite no formato IDC : Demonstração ! No próximo tutorial ensinarei a configurar suas Sprites Se ajudei +REP please
    1 ponto
  34. MatheusGlad

    War Arena System.

    Todos os scripts foram testados em um ot 8.6 Bem o script é auto-explicativo, e ainda tem um video do sistema, acho que nao preciso explicar o que faz ne? AGORA EM MOD, MUITO MAIS PRATICO DE INSTALAR. SE FOR USAR O MOD VA ATE O FINAL DO POST, É EXATAMENTE IGUAL A VERSAO NORMAL, SO QUE MAIS PRATICO. FUNCIONA DO MESMO JEITO. Video: obs: Veja em fullscreen para ver melhor as msgs que retornam. Vá em data/lib e adicione esse script.lua com o nome de WarArenaLib: -- [[ Area and Positions Infos ]] -- areaplayersteam = { {1,1,1,1}, {1,1,1,1}, {1,1,1,1}, {1,1,1,1}, {1,1,1,1} } areateam1ext = {x=80, y=305, z=7} -- Ponta superior esquerda da area do time um areateam2ext = {x=87, y=305, z=7} -- Ponta superior esquerda da area do time dois leaderteam1pos = {x=83, y=307, z=7, stackpos=255} -- Posição do lider do time um (que puxara a alavanca) leaderteam2pos = {x=87, y=307, z=7, stackpos=255} -- Posição do lider do time dois (que puxara a alavanca) newplayersposteam1 = {x=67, y=300, z=7} -- Posição para onde os players do time um serao teleportados newplayersposteam2 = {x=67, y=330, z=7} -- Posição para onde os players do time dois serao teleportados team1leverpos = {x=84, y=307, z=7, stackpos=1} -- Posição da alavanca que o lider do time um puxara team2leverpos = {x=86, y=307, z=7, stackpos=1} -- Posição da alavanca que o lider do time dois puxara leverafter, leverbefore = 9825, 9826 -- Ids das alavancas antes de puxadas e depois, consecutivamente (9825 = antes; 9826 = depois) posbenterteam1 = {x=78, y=307, z=7} -- Posiçao do sqm antes de entrar na arena do time 1 posbenterteam2 = {x=92, y=307, z=7} -- Posiçao do sqm antes de entrar na arena do time 2 backteampos = {x=77, y=307, z=7} -- [[ Storage Infos ]] -- team1leverstorage = 123497 -- Storage que sera usado quando puxarem a alavanca do time 1 team2leverstorage = 123498 -- Storage que sera usado quando puxarem a alavanca do time 2 haveteaminarena = 123499 -- Storage que sera usado para ve se tem algum time lutando na arena storageteam1death = 123500 -- Storage usado para ver quantos morreram do time 1 storageteam2death = 123501 -- Storage usado para ver quantos morreram do time 2 storageteam1 = 123502 -- Storage usado para ver quantas pessoas entraram na arena no time 1 storageteam2 = 123503 -- Storage usado para ver quantas pessoas entraram na arena no time 2 storageleader1 = 123504 -- Storage onde ficara guardado o uid do lider do time 1 storageleader2 = 123505 -- Storage onde ficara guardado o uid do lider do time 2 storageplayersteam1 = 123506 -- Storage que todos os players do team 1 iram ter. storageplatersteam2 = 123507 -- Storage que todos os players do team 2 iram ter. -- [[ Player Infos ]] -- needlevelarena = 20 -- Level que os outros jogadores sem ser o lider teram que ter. leaderlevel = 4000 -- Level que o lider tera que ter. onlyguildwars = true -- Se os membros de um time tem que ser da mesma guild do lider. (Nesse caso somente o lider da guild podera puxar a alavanca.) needplayers = 2 -- Quantidade de players que cada time tem que ter. -- [[ Functions ]] -- function getUidsFromArea(firstpos, area) local result = {} for i,x in pairs(area) do for s,z in pairs(x) do if isPlayer(getThingFromPos({x=firstpos.x+s-1, y=firstpos.y+i-1, z=firstpos.z, stackpos=255}).uid) then table.insert(result, getThingFromPos({x=firstpos.x+s-1, y=firstpos.y+i-1, z=firstpos.z, stackpos=255}).uid) end end end return result end function teleportUidsToPos(uids, pos) for i,x in pairs(uids) do doTeleportThing(x, pos) end end function isAllUidsSameGuild(uids, guildid) for i,x in pairs(uids) do if not (getPlayerGuildId(x) == guildid) then return false end end return true end function isAllUidsLevel(uids, level) for i,x in pairs(uids) do if not (getPlayerLevel(x) >= level) then return false end end return true end function haveQuantPlayersInArea(firstpos, area, quant) local result = 0 for i,x in pairs(area) do for s,z in pairs(x) do if isPlayer(getThingFromPos({x=firstpos.x+s-1, y=firstpos.y+i-1, z=firstpos.z, stackpos=255}).uid) then result = result+1 end end end return result >= quant end function addStorageToUids(uids, storage, value) for i,x in pairs(uids) do setPlayerStorageValue(x, storage, value) end end function checkPoses(pos1, pos2) if pos1.x == pos2.x and pos1.y == pos2.y and pos1.z == pos2.z then return true end return false end function startArena() setGlobalStorageValue(storageleader1, getThingFromPos(leaderteam1pos).uid) setGlobalStorageValue(storageleader2, getThingFromPos(leaderteam2pos).uid) addStorageToUids(team1uids, storageplayersteam1, 1) addStorageToUids(team2uids, storageplayersteam2, 1) teleportUidsToPos(team1uids, newplayersposteam1) teleportUidsToPos(team2uids, newplayersposteam2) setGlobalStorageValue(storageteam1, #team1uids) registerCreatureEventUids(team1uids, "DeathTeam1") registerCreatureEventUids(team2uids, "DeathTeam2") setGlobalStorageValue(storageteam2, #team2uids) setGlobalStorageValue(haveteaminarena, 1) setGlobalStorageValue(team1leverstorage, 0) setGlobalStorageValue(team2leverstorage, 0) doTransformItem(getThingFromPos(team1leverpos).uid, leverafter) doTransformItem(getThingFromPos(team2leverpos).uid, leverafter) end function haveTeamInArena() return getGlobalStorageValue(haveteaminarena) == 1 and true or false end function isSqmFromArea(firstpos, area, sqmpos) for i,x in pairs(area) do for s,z in pairs(x) do if sqmpos.x == firstpos.x+s-1 and sqmpos.y == firstpos.y+i-1 and sqmpos.z == firstpos.z then return true end end end return false end function registerCreatureEventUids(uids, event) for i,x in pairs(uids) do registerCreatureEvent(x, event) end end Agora vá em data/actions/scripts e adicione um script.lua com o nome de WarArenaLever: function onUse(cid, item, fromPosition, itemEx, toPosition) team1uids = getUidsFromArea(areateam1ext, areaplayersteam) team2uids = getUidsFromArea(areateam2ext, areaplayersteam) if haveTeamInArena() then return doPlayerSendCancel(cid, "Already have a team in arena.") end if checkPoses(toPosition, team1leverpos) then if checkPoses(getCreaturePosition(cid), leaderteam1pos) then if getGlobalStorageValue(team1leverstorage) == 1 then setGlobalStorageValue(team1leverstorage, 0) return doTransformItem(getThingFromPos(team1leverpos).uid, leverafter) end if onlyguildwars and getPlayerGuildLevel(cid) < 3 then return doPlayerSendCancel(cid, "You need to be the leader of your guild.") end if onlyguildwars and not isAllUidsSameGuild(team1uids, getPlayerGuildId(cid)) then return doPlayerSendCancel(cid, "All of your team need to be in your guild.") end if not isAllUidsLevel(team1uids, needlevelarena) then return doPlayerSendCancel(cid, "All of your team need to be level " .. needlevelarena .. " or more.") end if getPlayerLevel(cid) < leaderlevel then return doPlayerSendCancel(cid, "You, the leader of the team, need to be level " .. leaderlevel .. " or more.") end if not haveQuantPlayersInArea(areateam1ext, areaplayersteam, needplayers) then return doPlayerSendCancel(cid, "Your team need " .. tostring(needplayers) .. " players.") end setGlobalStorageValue(team1leverstorage, 1) doTransformItem(getThingFromPos(team1leverpos).uid, leverbefore) if getGlobalStorageValue(team2leverstorage) >= 1 then startArena() end else doPlayerSendCancel(cid, "You must be the leader of the team to pull the lever.") end elseif checkPoses(toPosition, team2leverpos) then if checkPoses(getCreaturePosition(cid), leaderteam2pos) then if getGlobalStorageValue(team2leverstorage) == 1 then setGlobalStorageValue(team2leverstorage, 0) return doTransformItem(getThingFromPos(team2leverpos).uid, leverafter) end if onlyguildwars and getPlayerGuildLevel(cid) < 3 then return doPlayerSendCancel(cid, "You need to be the leader of your guild.") end if onlyguildwars and not isAllUidsSameGuild(team2uids, getPlayerGuildId(cid)) then return doPlayerSendCancel(cid, "All of your team need to be in your guild.") end if not isAllUidsLevel(team2uids, needlevelarena) then return doPlayerSendCancel(cid, "All of your team need to be level " .. needlevelarena .. " or more.") end if getPlayerLevel(cid) < leaderlevel then return doPlayerSendCancel(cid, "You, the leader of the team, need to be level " .. leaderlevel .. " or more.") end if not haveQuantPlayersInArea(areateam2ext, areaplayersteam, needplayers) then return doPlayerSendCancel(cid, "Your team need " .. tostring(needplayers) .. " players.") end setGlobalStorageValue(team2leverstorage, 1) doTransformItem(getThingFromPos(team2leverpos).uid, leverbefore) if getGlobalStorageValue(team1leverstorage) >= 1 then startArena() end else doPlayerSendCancel(cid, "You must be the leader of the team to pull the lever.") end end return TRUE end E em actions.xml bote essa linha: <action actionid="12349" event="script" value="WarArenaLever.lua"/> Agora vá em data/creaturescripts/scripts e adicione dois scripts.lua com esses nomes: WarArenaDeathTeam1: function onDeath(cid) setPlayerStorageValue(cid, storageplayersteam1, 0) setGlobalStorageValue(storageteam1death, getGlobalStorageValue(storageteam1death) >= 0 and getGlobalStorageValue(storageteam1death)+1 or 1) if getGlobalStorageValue(storageteam1death) >= getGlobalStorageValue(storageteam1) then if onlyguildwars then doBroadcastMessage("The Team 2 won the war, guild " .. getPlayerGuildName(getGlobalStorageValue(storageleader2)) .. ".") else doBroadcastMessage("The Team 2 won the war, team leader name is " .. getCreatureName(getGlobalStorageValue(storageleader2)) .. ".") end setGlobalStorageValue(storageteam1death, 0) setGlobalStorageValue(storageteam2death, 0) setGlobalStorageValue(haveteaminarena, 0) end return TRUE end WarArenaDeathTeam2: function onDeath(cid) setPlayerStorageValue(cid, storageplayersteam2, 0) setGlobalStorageValue(storageteam2death, getGlobalStorageValue(storageteam2death) >= 0 and getGlobalStorageValue(storageteam2death)+1 or 1) if getGlobalStorageValue(storageteam2death) >= getGlobalStorageValue(storageteam2) then if onlyguildwars then doBroadcastMessage("The Team 1 won the war, guild " .. getPlayerGuildName(getGlobalStorageValue(storageleader1)) .. ".") else doBroadcastMessage("The Team 1 won the war, team leader name is " .. getCreatureName(getGlobalStorageValue(storageleader1)) .. ".") end setGlobalStorageValue(storageteam1death, 0) setGlobalStorageValue(storageteam2death, 0) setGlobalStorageValue(haveteaminarena, 0) end return TRUE end Agora abra o creaturescripts.xml e adicione essas linhas: <event type="death" name="DeathTeam1" event="script" value="WarArenaDeathTeam1.lua"/> <event type="death" name="DeathTeam2" event="script" value="WarArenaDeathTeam2.lua"/> Agora vá em data/movements/scripts e adicione tres scripts.lua com esses nomes: WarArenaMovement1: function onStepOut(cid, item, position, fromPosition) local team = (fromPosition.x == leaderteam1pos.x and fromPosition.y == leaderteam1pos.y and fromPosition.z == leaderteam1pos.z) and "team1" or (fromPosition.x == leaderteam2pos.x and fromPosition.y == leaderteam2pos.y and fromPosition.z == leaderteam2pos.z) and "team2" if team == "team1" then if getGlobalStorageValue(team1leverstorage) == 1 then setGlobalStorageValue(team1leverstorage, 0) doTransformItem(getThingFromPos(team1leverpos).uid, leverafter) end elseif team == "team2" then if getGlobalStorageValue(team2leverstorage) == 1 then setGlobalStorageValue(team2leverstorage, 0) doTransformItem(getThingFromPos(team2leverpos).uid, leverafter) end end end WarArenaMovement2: function onStepIn(cid, item, position, fromPosition) local team = isSqmFromArea(areateam1ext, areaplayersteam, fromPosition) and "team1" or isSqmFromArea(areateam2ext, areaplayersteam, fromPosition) and "team2" if team == "team1" then if getGlobalStorageValue(team1leverstorage) == 1 then if not haveQuantPlayersInArea(areateam1ext, areaplayersteam, needplayers) then setGlobalStorageValue(team1leverstorage, 0) doTransformItem(getThingFromPos(team1leverpos).uid, leverafter) end end elseif team == "team2" then if getGlobalStorageValue(team2leverstorage) == 1 then if not haveQuantPlayersInArea(areateam2ext, areaplayersteam, needplayers) then setGlobalStorageValue(team2leverstorage, 0) doTransformItem(getThingFromPos(team2leverpos).uid, leverafter) end end end if getGlobalStorageValue(team1leverstorage) == 1 then if checkPoses(fromPosition, posbenterteam1) then doTeleportThing(cid, fromPosition) return doPlayerSendCancel(cid, "You can't enter now.") end elseif getGlobalStorageValue(team2leverstorage) == 1 then if checkPoses(fromPosition, posbenterteam2) then doTeleportThing(cid, fromPosition) return doPlayerSendCancel(cid, "You can't enter now.") end end end WarArenaMovement3: function onStepIn(cid, item, position, fromPosition) if getPlayerStorageValue(cid, storageplayersteam1) >= 1 then setPlayerStorageValue(cid, storageplayersteam1, 0) doTeleportThing(cid, posbenterteam1) setGlobalStorageValue(storageteam1death, getGlobalStorageValue(storageteam1death) >= 0 and getGlobalStorageValue(storageteam1death)+1 or 1) if getGlobalStorageValue(haveteaminarena) >= 1 then if getGlobalStorageValue(storageteam1death) >= getGlobalStorageValue(storageteam1) then if onlyguildwars then doBroadcastMessage("The Team 2 won the war, guild " .. getPlayerGuildName(getGlobalStorageValue(storageleader2)) .. ".") else doBroadcastMessage("The Team 2 won the war, team leader name is " .. getCreatureName(getGlobalStorageValue(storageleader2)) .. ".") end setGlobalStorageValue(storageteam1death, 0) setGlobalStorageValue(storageteam2death, 0) setGlobalStorageValue(haveteaminarena, 0) end end elseif getPlayerStorageValue(cid, storageplayersteam2) >= 1 then setPlayerStorageValue(cid, storageplayersteam2, 0) doTeleportThing(cid, posbenterteam2) setGlobalStorageValue(storageteam2death, getGlobalStorageValue(storageteam2death) >= 0 and getGlobalStorageValue(storageteam2death)+1 or 1) if getGlobalStorageValue(haveteaminarena) >= 1 then if getGlobalStorageValue(storageteam2death) >= getGlobalStorageValue(storageteam2) then if onlyguildwars then doBroadcastMessage("The Team 1 won the war, guild " .. getPlayerGuildName(getGlobalStorageValue(storageleader1)) .. ".") else doBroadcastMessage("The Team 1 won the war, team leader name is " .. getCreatureName(getGlobalStorageValue(storageleader1)) .. ".") end setGlobalStorageValue(storageteam1death, 0) setGlobalStorageValue(storageteam2death, 0) setGlobalStorageValue(haveteaminarena, 0) end end end return TRUE end E adicione essas linhas em movements.xml: <movevent type="StepOut" actionid="12350" event="script" value="WarArenaMovement1.lua"/> <movevent type="StepIn" actionid="12351" event="script" value="WarArenaMovement2.lua"/> <movevent type="StepIn" actionid="12352" event="script" value="WarArenaMovement3.lua"/> Pronto acabou rairiaria. Adicionando os Actions IDS: Nas 2 alavancas, adicione o actionid 12349. Nos 2 sqms que os players vao estar antes de entrar na arena adicione o actionid 12351. Nos 2 quadrados aonde os lideres irao ficar (na frente da alavanca) bote o actionid 12350. No sqm de sair da arena bote o actionid 12352. NA AREA DOS TIMES E NA ARENA, BOTE PELO MAP EDITOR PARA NAO PODER LOGAR. (Se voce nao fizer isso pode haver bugs.) Bem, se voce souber ler o script da lib, vai saber configura-lo para seu otserver. Versão MOD: (Abra o spoiler) O modo de configurar é exatamente igual ao normal. Flws. By MatheusMkalo
    1 ponto
  35. Primeiramente olá a todos do Xtibia, depois de muito quebrar a cabeça, conssegui fazer um script para o player ganhar um item ao atingir determinado nivel, esse modelo que eu trouxe pra vcs, é pra dar 20k para o player quando ele upar o nivel 20. Pra quem quiser: function onAdvance(cid, oldLevel, newLevel) if (getPlayerLevel(cid) == 20) then doPlayerAddItem(cid,2160,2) doPlayerSendTextMessage(cid,25,"Parabens por upar o level 20, aqui esta o seu dinheiro para a promotion!") end end salva esse script com qualquer nome e com a estensão .lua e add na pasta data\creaturescript\script no arquivo login.lua que tem dentro da pasta de scripts voce adiciona isso: registerCreatureEvent(cid, "levelplayer") e no xml voce adiciona isso: <event type="advance" name="levelplayer" script="nome do arquivo.lua"/> Font By Bily Jhow!! Te ajudei?? Rep++
    1 ponto
  36. 890098

    Ring Double Xp

    Cara eu fiz tudo isso só n foi em movements.xml eu colokei la e eu criei uma pasta Exp Ring.lua pq n funciono?
    1 ponto
  37. Olá galera XTibiana !!! Vim trazer mais um Script de minha autoria, simples, mas creio que muita gente irá precisar. Sabem no Tibia Global quando as pessoas usam a pick no chão e vira um buraco? É isso mesmo que o script faz, então vamos parar de ficar falando e vamos ao código. :icon_idea: Vá na sua pasta DATA > Actions > Scripts e crie um arquivo chamado pick_buraco.lua e cole isso dentro do arquivo -- Pick abrindo chão e virando buraco -- by Nottinghster function onUse(cid, item, frompos, item2, topos) if item2.itemid == 0 then return FALSE end if item.itemid == 2553 and item2.itemid == 355 and item2.actionid == 777 then doTransformItem(item2.uid, 392) doSendMagicEffect(topos, CONST_ME_POFF) doDecayItem(item2.uid) doSetItemActionId(item2.uid,777) else return FALSE end return TRUE end Agora vá no arquivo actions.xml e cole isso <action itemid="2553" script="pick_buraco.lua"/> Explicando: É uma ActionID, então você pode colocar em qualquer parte do mapa, entretanto, somente no tile que tiver como ID 355 !!! OBS: A pick só irá funcionar no tile que tiver o ID 355 !!! É isso ai galera, abraço !!!
    1 ponto
  38. -1 pontos
  39. noss o mlk ainda posta o link do mage bomb vlw mlk ti amo consegui deruba o sv dele /\ uhsuahusaush Floodar é uma arte. Ser ban faz parte!
    -1 pontos
  40. moretti5

    Baiak 6Vip

    Ei,Ei,Ei !! Você Mesmo !! Está a procura de um servidor totalmente inovador? com wars 24 horas por dia? com mapa prório e monstros 100% editados? com magias novas?... Então não precisa mais procurar ! lhe apresento o RPD SERVER! CREATE ACCOUNT: 1/1 *Otserv de primeira qualidade* - VERSAO: [8.60] - IP: rpdserver.servegame.com - PORT: 7171 - 24 hrs online - no lag - rate exp : 20,000x - rate skills : 1000x - rate ml : 500x - rate loot : 10x 6 CitVIP: * VIP1 * VIP2 * VIP3 * VIP4 * VIP5 * VIP6 - dedicado dos e.u.a Venha e confira...
    -1 pontos
  41. 458621

    [8.60] New Global

    Hospedado nos EUA [1 Gbps] Algumas informações: • IP: Global-compacto.servegame.com • PORT: 7171 • 100% Global Compacto (Map); • Guild War System Identico ao Global(Com os escudinhos); • Quests fixed: - Annihilator Quest; - Demon Helmet Quest; - Demon Oak Quest; - Blue Legs Quest; - Pits of Inferno Quest; - Banshee Quest; - Arena Quests; - Yalaharian Set Quest; - etc. • Rates: - Skill Rate: 300x; - Magic Rate: 40x; - Loot Rate: 5x Edited Loot; - Experience Stages: (1 to 100: 200x) (101 to 200: 150x) (201 to 250: 100x) (251 to 300: 80x) (301 to 350: 10x) (351 to 400: 5x) (401 to 450: 2x) (450 + : 1x) • Bom Support In Game • Sistema Premium (VIPs) - Vantagens Premium: mais de 10 ótimas ilhas de hunt, NPCs especiais, cidades, houses, etc. E mais novidades Premium chegando! • Protocolo 8.60; • Nosso Site: http://global-compacto.servegame.com/ Está esperando o quê? CRIE JÁ SUA CONTA! em http://global-compacto.servegame.com/?subtopic=createaccount
    -1 pontos
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...