Ir para conteúdo
US
Blazera 8.60
blazera.net
SOBRE O BLAZERA
Um fresh start em um servidor 8.6 clássico, com real map, focado na experiência raiz do Tibia. | Classic Real Map • Fresh Start • Client 8.6 • Old School Gameplay • Active Community
Inicia em: --
Participar

Líderes

Conteúdo Popular

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

  1. [Link Quebrado]Base Bolz 2.0 Open Source

    bra e um outro reagiu a Pokemon X Ice por uma resposta no tópico

    2 pontos
    Servido By Pokemon X Ice informações: versão 2.0: Creditos: Downloads:
  2. 1 ponto
    Fala aí pessoal! Curse Tibia Server é um servidor para amantes de RPG, de rates baixas e onde a exploração é muito bem recompensada. Além disso, temos como foco fazer patchs frequentemente, sempre adicionando novos conteúdos e proporcionando novos desafios aos jogadores. Informações Gerais - A experiência é stagiada em torno de 5x até 1.5x. - O mapa é uma mistura de áreas e modificações próprias + global + partes de servidores que nunca foram lançados. - O servidor tem base na versão 9.6, mas adicionamos algumas criaturas e alguns itens de versões posteriores. Principais Mudanças - Em vez de poções recuperarem vida/mana instantaneamente, elas recuperam ao longo de 3 segundos. - O server tem Training Monk, porém, você só pode ficar neles durante 1 hora, para regenerar esse tempo é preciso caçar bastante. - Andar de barco é uma tarefa um pouco mais complexa, com um custo bastante elevado e algumas passagens precisando de uma pequena quest ou alguns itens. Vocações - 5 novas classes, além das existentes terem sido reformuladas. - Uma promoção a mais para cada classe. - Todas classes ganharam várias magias novas. - Uma das classes novas é o famoso Necromancer: Atributos Atributos são pontos escolhidos pelo jogador para melhorar o desempenho de seus personagens e desenvolvê-los de uma maneira pessoal. Eles também servem para poder conjurar algumas magias e fazer algumas interações com o mapa (Puxar uma alavanca emperrada exige força, por exemplo). Árvore de Skills A árvore de skills te permite distribuir pontos para liberar novas magias e personificar ainda mais seu personagem o deixando mais versátil de acordo com sua preferência. - Cada classe tem dois caminhos na árvore, cada um deles é voltado para uma jogabilidade diferente. - Quase todas magias são liberadas pela árvore. Prévia do Necromancer: Caminho da morte Caminho de summons Sistema de Raridade Todos equipamentos tem uma pequena chance de serem dropados como um item raro, épico ou lendário. - Quanto melhor a qualidade do item, melhor será os bônus, porém será mais difícil de encontrá-lo. Existem ainda alguns outros sistemas e as telas são mais um protótipo, mas acho que da pra ter uma ideia do objetivo do servidor. O que acham? Jogariam? Gostaria muito de ouvir críticas e opiniões! (:
  3. Heal aura system

    Salazar Slytherin reagiu a bielzinhocrazy por uma resposta no tópico

    1 ponto
    Olá pessoal do TibiaKing, Hoje venho trazer um script sistema de auras, que explicado superficialmente, é uma bolha de luz que te rodeia constantemente (é possível mudar o efeito visual da aura, como você poderá conferir no script), e possui uma chance pré-determinada pela pessoa, em porcentagem, de curar a cada volta que dá no player. Para ligar a aura digite !aura on, e para desligar !aura off. Vocês podem conferir como funciona assistindo o vídeo a seguir : Bom, vamos aos códigos. Primeiro, na pasta de seu OT, vá em data\talkactions\scripts, e crie um novo arquivo chamado aura.lua, e coloque isto nele (serão necessários dois storages) : -- CONFIGURAÇÕES aurastr = 25950 -- storage da aura estr = 25951 -- storage para o exhaust porcentagem = 40 -- chance de curar em cada volta da aura, em porcentagem quantheal = 10 -- porcentagem do hp máximo que cada cura irá curar. (No caso, irá curar 10% do hp máximo cada cura) tempo = 1180 -- tempo para dar uma volta no player (este tempo foi o que achei mais agradável visualmente, é recomendável não mudar) tipoaura = 30 -- número do efeito da aura (efeito de distância, pode ser identificado com /x no jogo) efeitocura = 49 -- número do efeito quando a cura chega ao player (efeito de posição fixa, pode ser identificado com /z no jogo) -- Função que chama a aura function efeitosAura(i,tm,cid) if(isCreature(cid)) then local atual = getCreaturePosition(cid) local posaura = { {x=(atual.x)-1, y=(atual.y)-1, z=atual.z}, {x=atual.x, y=(atual.y)-1, z=atual.z}, {x=(atual.x)+1, y=(atual.y)-1, z=atual.z}, {x=(atual.x)+1, y=atual.y, z=atual.z}, {x=(atual.x)+1, y=(atual.y)+1, z=atual.z}, {x=atual.x, y=(atual.y)+1, z=atual.z}, {x=(atual.x)-1, y=(atual.y)+1, z=atual.z}, {x=(atual.x)-1, y=atual.y, z=atual.z}, } local chances = math.random(100) if(chances<=porcentagem/8 and getCreatureHealth(cid)<getCreatureMaxHealth(cid)) then doCreatureAddHealth(cid, getCreatureMaxHealth(cid)/quantheal) if(i<=8 and i>1) then doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].z}, atual, tipoaura) else doSendDistanceShoot({x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, atual, tipoaura) end doSendMagicEffect(atual, efeitocura) end if(i==8) then doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].z}, {x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, tipoaura) elseif(i<8) then doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].z}, {x=posaura[i+1].x, y=posaura[i+1].y, z=posaura[i+1].z}, tipoaura) end if(i<=8 and getPlayerStorageValue(cid, aurastr)==2) then i = i+1 tm = tempo/8 return addEvent(efeitosAura,tm,i,tm,cid) elseif(i>8 and getPlayerStorageValue(cid, aurastr)==2) then return efeitosAura(1,0,cid) else return TRUE end else return TRUE end end -- Função principal function onSay(cid, words, param, channel) if(param=="on") then if getPlayerStorageValue(cid, estr) > os.time() then doPlayerSendCancel(cid, "Espere "..(getPlayerStorageValue(cid, estr) - os.time()).." segundos para poder habilitar aura novamente.") else if(getPlayerStorageValue(cid, aurastr)==2) then doPlayerSendCancel(cid,"Sua aura já está habilitada.") elseif(getPlayerStorageValue(cid, aurastr)==-1) then doPlayerSendCancel(cid,"Aura ligada!") setPlayerStorageValue(cid, aurastr, 2) efeitosAura(1,tempo/8,cid) end end elseif(param=="off") then if(getPlayerStorageValue(cid, aurastr)==2) then setPlayerStorageValue(cid, estr, os.time()+2) setPlayerStorageValue(cid, aurastr, -1) doPlayerSendCancel(cid,"Aura desligada!") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Digite '!aura on' para ligar sua aura, e '!aura off' para desligá-la.") end return TRUE end As configurações estão comentadas, portanto é só modificar de acordo com as suas preferências. Agora, em data\talkactions, abra o arquivos talkactions.xml, e cole isto dentro dele : <talkaction words="!aura" event="script" value="aura.lua"/> Após feito isso, para evitar erros ao player logar, será necessário criar um script que mudará o storage da aura toda vez que o player se logar novamente, para isso, vá em data\creaturescripts\scripts e crie um arquivo chamado auralogin.lua, e cole isto : function onLogin(cid) aurastr = 25950 -- storage da aura setPlayerStorageValue(cid, aurastr, -1) return TRUE end Após isto, vá em data\creaturescripts e abra o arquivo creaturescripts.xml, e cole o seguinte código nele : <event type="login" name="AuraLogin" script="auralogin.lua"/> E pronto! Agora é só desfrutar do sistema. OBS : Se você der /reload talkactions no OT em execução, com algum player estando com aura em execução, elas serão interrompidas e será necessário usar !aura off, e !aura on, para reabilitá-las. Portanto cuidado! Créditos : Eu mesmo(Fakezim/BielzinhoCrazy/GMLeal, tanto faz o nick rererere) Obrigado pessoal!
  4. [TFS 1.x] Scripting Service

    Pedro. reagiu a FlavioHulk por uma resposta no tópico

    1 ponto
    Estou disponibilizando um pouco do meu conhecimento para ajudar um pouco a comunidade ! Prestem atenção nas seguintes regras: 1 - Um pedido por vez 2 - Cada usuário terá direito à dois pedidos (Porém deve ser feito cada um por vez) 3 - Não tenho disponibilidade em fazer scripts extensos, então, economize meu tempo... 4 - Somente atendo à TFS 1.3 ou OTX 3 5 - Sem spam no post, ou cobrança contínua... Levando a desconsideração do pedido... Serviço Temporário Serviços em andamento: 1 - Dungeon System 2 - Fly System ** O serviço será feito em ordem de pedido...
  5. New Library v. 1.2

    Underewar reagiu a xWhiteWolf por uma resposta no tópico

    1 ponto
    Fala galera, hoje vim trazer pra vocês uma nova biblioteca de funções que eu venho desenvolvendo, pretendo ir atualizando esse tópico constantemente sempre adicionando funções novas e explicando a utilização delas. Algumas funções que eu coloquei aqui estão presentes na OTAL também, porém algumas eu fiz pequenas correções de forma que essa lib poderia facilmente substituir a OTAL sem grandes problemas (pelo menos se você utilizava apenas as funções básicas da otal) Todas as funções que não tem -- nome do autor do lado dela foram feitas por mim, xWhiteWolf ou Night Wolf (NW). O restante delas são créditos dos devidos autores, apenas coloquei pois considero funções vitais no server de cada um. Crie um arquivo em data/lib chamado 075 - White Wolf Functions.lua e coloque o seguinte código dentro: Agora eu vou explicar oque cada função faz porque de nada adianta lançar uma lib e não explicar oque ela faz não é mesmo? hahaha Obs inicial: quando uma função tiver em seus parametros um [] significa que oque está dentro do colchetes não é um parâmetro obrigatório. Como usar: doShowTimeByPos(cid, getCreaturePosition(cid), 20, 20) Irá fazer uma contagem regressiva na posição que o player se encontra começando de 20 e mandando a mensagem na mesma cor da fala dos monstros. Essa função é bem útil em actions/spells para fazer contagem de tempo em runas como a magic wall e ver quanto tempo falta pra magic wall sumir) Obs: Espero que ajude bastante pessoas a entender sobre funções, eu utilizei cid como o principal uid das funções nos exemplos mas você pode muito bem utilizar outros uids, fica a critério seu. Qualquer dúvida comentem abaixo que eu vou tentar ajudar da melhor maneira. Ahhh, isso daí foi testado em 8.54 mas deve funcionar em quase todas as versões que tenham as funções básicas do TFS. EDIT: Pessoal, agora é sério, essa lib tem fácil umas 600 linhas, das quais umas 500 eu devo ter codado sozinho (na mão, linha por linha). Eu tive todo o trabalho de testar cada uma delas e oque eu peço é o mínimo de gratidão e respeito. Se eu te ajudei clique em Gostei, se você tiver alguma dúvida eu to me colocando a disposição de responder qualquer coisa relacionada ao tópico, mesmo que você não saiba nem oque é uma lib apenas venha aqui e escreva sua dúvida. EDIT 2: Duas novas funções adicionas, espero que gostem! EDIT 3: Três novas funções adicionadas juntamente com suas respectivas explicações.
  6. [TFS 1.2] Firestorm Event

    Soldoran reagiu a Tricoder por uma resposta no tópico

    1 ponto
    Video de Demonstração ________________________________________________ data/firestorm_event.lua -- firestorm Variables fsJoinedCountGlobalStorage = 18900 --Player joined event count / recuento de players. fsJoinStorage = 18901 --player join storage / storage del jugador a unirse. fsMinPlayers = 2 --min players needed when time runout / minimo de players necesarios para comenzar el evento. fsMaxPlayers = 5 --max players to join / maximo de players. fsTrophy = 7369 --trophy itemid / itemid del premio(que no sea stackable). fsEventCountGlobalStorage = 18902 --firestorm Count (no move/no moverle). fsWaitMinutes = 1 --when event has opened, how long until it starts? / cuantos minutos tarde el evento en empezar. fsWaitingRoomPos = Position(1016, 940, 7) --middle of waiting room / punto medio de el cuarto de espera. fsArena = Position(991, 930, 7) --when even start where should player be teleported in the arena? / punto donde seran transportados los players. fsArenaFromPosition = Position(984, 925, 7) --pos of top left corner / posicion de esquina superior izquierda. fsArenaToPosition = Position(998, 935, 7) --pos of bottom right corner /posicion de esquina inferior derecha. fsMiddleEventArena = Position(991, 930, 7) --Middle pos of the arena / punto medio de la arena fsWaitingRoomRadiusX = 8 --depends how big the waiting room is 20sqm to x / depende de lo grande la sala de espera en x fsWaitingRoomRadiusY = 8 --depends how big the waiting room is 20sqm to y / depende de lo grande la sala de espera en y fsEventArenaRadiusX = 15 --Depends how big the firestorm arena is 50sqm to x / depende de lo grande de la arena en x fsEventArenaRadiusY = 15 --Depends how big the firestorm arena is 50sqm to y / depende de lo grande de la arena en y fsStartedGlobalStorage = 18903 -- Value: 0 == false, 1 == true, 2 == started --State of the event fsCreateTeleportPosition = Position(1000, 1000, 7) --Where should the teleport be created? / posicion donde sera creado el teleport? function startfirestorm() local specs = Game.getSpectators(fsWaitingRoomPos, false, true, 0, fsWaitingRoomRadiusX, 0, fsWaitingRoomRadiusY) if Game.getStorageValue(fsJoinedCountGlobalStorage) <= fsMinPlayers then for i = 1, #specs do specs[i]:teleportTo(specs[i]:getTown():getTemplePosition(), false) specs[i]:setStorageValue(fsJoinStorage, 0) end resetfsVariables() Game.broadcastMessage('firestorm Event failed to start, because of to little players joined the event!', MESSAGE_STATUS_WARNING) return true end for i = 1, #specs do local rX, rY, rZ rX = math.random(fsArenaFromPosition.x, fsArenaToPosition.x) rY = math.random(fsArenaFromPosition.y, fsArenaToPosition.y) rZ = math.random(fsArenaFromPosition.z, fsArenaToPosition.z) specs[i]:teleportTo(Position(rX, rY, rZ)) end Game.broadcastMessage("firestorm Event has started, good luck to all participant.", MESSAGE_STATUS_WARNING) Game.setStorageValue(fsStartedGlobalStorage, 2) doStartfirestorm() end function doStartfirestorm() if Game.getStorageValue(fsJoinedCountGlobalStorage) > fsMaxPlayers then return false end if Game.getStorageValue(fsStartedGlobalStorage) == 2 then local specs = Game.getSpectators(fsArena, false, true, 0, 10, 0, 10) for i = 1, #specs do local randX, randY, randZ randX = math.random(fsArenaFromPosition.x, fsArenaToPosition.x) randY = math.random(fsArenaFromPosition.y, fsArenaToPosition.y) randZ = math.random(fsArenaFromPosition.z, fsArenaToPosition.z) local randfire = Position(randX, randY, randZ) local randX1, randY1, randZ1 randX1 = math.random(fsArenaFromPosition.x, fsArenaToPosition.x) randY1 = math.random(fsArenaFromPosition.y, fsArenaToPosition.y) randZ1 = math.random(fsArenaFromPosition.z, fsArenaToPosition.z) local randfire1 = Position(randX1, randY1, randZ1) local creature, players = nil, Game.getPlayers() for i = 1, #players do creature = players[i] doSendDistanceShoot(fsArenaFromPosition, randfire, 4) doSendDistanceShoot(fsArenaToPosition, randfire, 4) doSendDistanceShoot(Position(998, 925, 7), randfire, 4) doSendDistanceShoot(Position(984, 935, 7), randfire, 4) doAreaCombatHealth(creature.uid, COMBAT_HOLYDAMAGE, randfire,randfire, -9999, -1000000,7) end end addEvent(doStartfirestorm, 500) end end function resetfsVariables() Game.setStorageValue(fsEventCountGlobalStorage, 0) Game.setStorageValue(fsJoinedCountGlobalStorage, 0) Game.setStorageValue(fsStartedGlobalStorage, 0) end creaturescripts/scriptsdofile('data/firestorm_event.lua') function onPrepareDeath(player, killer) local winner = 0 if player:getStorageValue(fsJoinStorage) >= 1 then Game.setStorageValue(fsJoinedCountGlobalStorage, Game.getStorageValue(fsJoinedCountGlobalStorage)-1) player:teleportTo(player:getTown():getTemplePosition()) player:setStorageValue(fsJoinStorage, 0) player:addHealth(player:getMaxHealth()) if Game.getStorageValue(fsJoinedCountGlobalStorage) <= 1 then --Event ended, someone won! local pla, play = nil, Game.getPlayers() for i = 1, #play do pla = play[i] if pla:getStorageValue(fsJoinStorage) == 1 then winner = pla:getId() break end end winner = Player(winner) if winner then winner:teleportTo(winner:getTown():getTemplePosition()) winner:addHealth(winner:getMaxHealth()) local trophy = winner:addItem(fsTrophy, 1) if trophy then trophy:setAttribute(ITEM_ATTRIBUTE_DESCRIPTION, '['.. winner:getName() ..'] has won the firestorm Event.') end Game.broadcastMessage(string.format('%s is the winner of firestorm Event', winner:getName()), MESSAGE_STATUS_WARNING) end resetfsVariables() end return false end return true end Creaturescripts/scripts dofile('data/firestorm_event.lua') function onPrepareDeath(player, killer) local winner = 0 if player:getStorageValue(fsJoinStorage) >= 1 then Game.setStorageValue(fsJoinedCountGlobalStorage, Game.getStorageValue(fsJoinedCountGlobalStorage)-1) player:teleportTo(player:getTown():getTemplePosition()) player:setStorageValue(fsJoinStorage, 0) player:addHealth(player:getMaxHealth()) if Game.getStorageValue(fsJoinedCountGlobalStorage) <= 1 then --Event ended, someone won! local pla, play = nil, Game.getPlayers() for i = 1, #play do pla = play if pla:getStorageValue(fsJoinStorage) == 1 then winner = pla:getId() break end end winner = Player(winner) if winner then winner:teleportTo(winner:getTown():getTemplePosition()) winner:addHealth(winner:getMaxHealth()) local trophy = winner:addItem(fsTrophy, 1) if trophy then trophy:setAttribute(ITEM_ATTRIBUTE_DESCRIPTION, '['.. winner:getName() ..'] has won the firestorm Event.') end Game.broadcastMessage(string.format('%s is the winner of firestorm Event', winner:getName()), MESSAGE_STATUS_WARNING) end resetfsVariables() end return false end return true end creaturescripts.xml <!-- firestorm --> <event type="prepareDeath" name="fire_event" script="xxxx.lua"/> login player:registerEvent("fire_event") globalevents/scripts dofile('data/firestorm_event.lua') function onThink(interval, lastExecution, thinkInterval) resetfsVariables() if Game.getStorageValue(fsStartedGlobalStorage) < 1 then local teleport = doCreateItem(11796,1,fsCreateTeleportPosition) if teleport then doSetItemActionId(teleport, 5499) doSendMagicEffect(fsCreateTeleportPosition, CONST_ME_TELEPORT) end local r_tp = Tile(fsCreateTeleportPosition):getItemById(11796) addEvent(function() r_tp:remove() getTileItemById(fsCreateTeleportPosition, 11796) end, 60 * 1000) addEvent(function() doSendMagicEffect(fsCreateTeleportPosition, CONST_ME_TELEPORT) end, 60 * 1000) end Game.setStorageValue(fsStartedGlobalStorage,1) print('firestorm Event has started & waiting for players to join! Min: '.. fsMinPlayers ..'/'.. fsMaxPlayers ..'.') Game.broadcastMessage('The firestorm Event has started! You have '.. fsWaitMinutes ..' minutes to join!', MESSAGE_STATUS_WARNING) addEvent(startfirestorm, fsWaitMinutes * 60 * 1000) return true end globalevents.xml <!-- FireStorm--> <globalevent name="firestorm_event" interval="72000000" script="xxxx.lua"/> movements/scripts dofile('data/firestorm_event.lua') function onStepIn(creature, item, position, fromPosition) local player = creature:getPlayer() if Game.getStorageValue(fsStartedGlobalStorage) == 2 then player:sendTextMessage(MESSAGE_INFO_DESCR, 'The Firestorm Event has already started.') player:teleportTo(fromPosition, true) return false end if Game.getStorageValue(fsStartedGlobalStorage) == 0 then player:sendTextMessage(MESSAGE_INFO_DESCR, 'The Firestorm Event has not started yet.') player:teleportTo(fromPosition, true) return false end if Game.getStorageValue(fsJoinedCountGlobalStorage) >= fsMaxPlayers then player:teleportTo(fromPosition, true) player:sendTextMessage(MESSAGE_INFO_DESCR, 'The Firestorm Event is already full! ['.. Game.getStorageValue(fsJoinedCountGlobalStorage) ..'/'.. fsMaxPlayers ..']') return false end player:teleportTo(fsWaitingRoomPos) Game.setStorageValue(fsJoinedCountGlobalStorage, Game.getStorageValue(fsJoinedCountGlobalStorage) + 1) Game.broadcastMessage(string.format('%s has joined the Firestorm Event! [%s/'.. fsMaxPlayers ..'].', player:getName(), Game.getStorageValue(fsJoinedCountGlobalStorage)), MESSAGE_STATUS_WARNING) player:setStorageValue(fsJoinStorage, 1) return true end Movements.xml <!-- firestorm --> <movevent event="StepIn" actionid="5499" script="xxxx.lua"/> ________________________________________________ Créditos: Scrappy Coco
  7. [TFS 1.x] NPC Cassino / Dicer

    mallagoli reagiu a Leohige por uma resposta no tópico

    1 ponto
    Sei que existem outros scripts com a mesma finalidade, mas este comparado com os demais que eu já vi por ai tem algumas opções a mais para a personalização. Demonstração Para implementá-lo é bem simples, apenas crie os arquivos a baixo. data/npc/Cassino.xml data/npc/scripts/cassino.lua Sugiro que coloque protection zone onde o NPC, seu dado e posição de dinheiro irão ficar, para evitar que um clean faça os itens sumirem. Configuração
  8. 1 ponto
    Naruto Rox 2 update Todos os Items a seguir foram Adicionados e Refeitos. ( Desde dos Dropaveis / Raros / Quest ) Processo Que foi Refeito os Items. Castle + Hunt Hunt Castle Novos Talkactions Distro Suja? Aqui não REP+ INGAME OBSERVAÇÕES: Baixar
  9. (Resolvido)[SUPORTE] NPC nao funciona!

    Yamborghini reagiu a Storm por uma resposta no tópico

    1 ponto
    Não sei quem fez essa script , mas que merda é essa ??? parecia a mim quando comecei. Script corrigida
  10. 1 ponto
    Não entendi sua dúvida! senha dos arquivos:loko
  11. [RPG] Curse Tibia Server - Procurando por feedback

    Zanrix reagiu a Cat por uma resposta no tópico

    1 ponto
    Muito bom! Estou acompanhando o tópico. Essas imagens me chamaram a atenção
  12. Duvida open tíbia

    Heyron reagiu a Weslley Kiyo por uma resposta no tópico

    1 ponto
    Não vale a pena abrir mapa custom. Se optar por Baiak ou Global, vai depender do balanceamento, hospedagem e qualidade da administração. Não pense em abrir um servidor com medo de não pegar jogadores. Invista em marketing, invista no host, invista em proteção DDoS e jogadores novos. Se optar por log alto, invista em times grandes que vão entrar em seu servidor. Um time de jogadores que procuram PvP não vai escolher seu servidor por ser livres de bugs mas pelo pvp balanceado. Mas lembre-se que esses tipos de jogadores mudam constantemente de servidor. Você deve segura-los pois são eles que vão manter seu log alto. Mas não esqueça também de investir em jogadores maduros que se importem com o suporte e updates do seu servidor. O chato de abrir servidores hoje em dia é que sempre vai entrar um ou outro jogador perguntando quantos pontos você vai dar para o time dele caso ele traga X PLAYERS para o servidor. Eu também já abri um servidor sem itens VIP e muitos reclamavam pela falta de arma ou boots VIP. Sim, eles reclamavam por isso kkk Acho que jogadores que pagam, curtem ter uma enorme vantagem contra jogadores FREE, isso em todos os games. Toma bastante cuidado com esse servidores free disponibilizados, muitos possuem bugs. Um exemplo de bug: - Você usa uma pick ou só clica em uma pedra em venore e ganha 1 golden helmet. - Você vai em ankrahmun, usa shovel no buraco e ganha 1kk. São vários os bugs. É difícil achar pois muitos estão junto à outros scripts. TOOLS.PICK = function(cid, item, fromPosition, itemEx, toPosition) if (itemEx.actionid == 10000) and (itemEx.itemid == 355) then doTransformItem(itemEx.uid, 392) doDecayItem(itemEx.uid) doSendMagicEffect(toPosition, CONST_ME_POFF) elseif (itemEx.itemid == 382) -- EXEMPLOO DE BUG doPlayerAddItem(cid, PUMPKIN1, 100) -- EXEMPLOO DE BUG (ele vai esconder a variável no script, PUMPKIN = 2160 EXEM) return true end if(itemEx.itemid == 7200) then doTransformItem(itemEx.uid, 7236) doSendMagicEffect(toPosition, CONST_ME_BLOCKHIT) return true end if (itemEx.actionid == 42148) and (itemEx.itemid == 1304) then doRemoveItem(itemEx.uid) doSendMagicEffect(toPosition, CONST_ME_POFF) if isPlayer(cid) then doCreatureAddHealth(cid, -60) doCreatureSay(cid, 'You lose 60 hitpoints.', TALKTYPE_ORANGE_1) end end ret aah, existe também um macete que eu usava e muitos outros tenho certeza que faziam o mesmo. Você abre um servidor qualquer com seus itens.XML, spells e rates (o mapa pode ser baiak pois lota mais rápido). Deixa tudo free e vai observando oq os players gostam. Vai atualizando e balanceando. Em seguida, fecha e abre o mesmo servidor com outro ip e nome (pode mudar o mapa ou edita-lo para não parecer que é o mesmo). Faz a mesma coisa novamente. Vai fazendo até que você chegue no balanceamento ideal. Em seguida, pode abrir o seu. Você também pode arriscar em manter o IP do antigo servidor no seu atual para puxar os jogadores (é arriscado pois muitos vão reclamar e fazer bagunça no servidor). Opte por eventos automáticos para você não fazer algo errado e tornar o evento desequilibrado. Teste tudo antes de lançar algum update ou evento. Lembro de um servidor onde o ADM fez uma invasão... A xp do servidor era stages, ao matar o boss, os players level 300 pegaram apenas 2~3 leveis pela xp ser 2x. Já os jogadores de level 20~50, pegaram level 600 pela xp ser 200x+ Você já deve imaginar que logo em seguida houve um reset no servidor e o mesmo perdeu metade dos jogadores rsrs
  13. Duvida open tíbia

    Heyron reagiu a Werner por uma resposta no tópico

    1 ponto
    Ele perguntou se ainda vale a pena abrir um servidor, na minha opinião não me equivoquei, pois se o publico de 90% está jogando global e baiak os 10% que vc citou é muito pouco, é jogar na loteria tentar um servidor de sucesso hoje em dia para 10% de jogadores brs. O problema é esse "baiak de qualidade" conseguir atrair os jogadores dos baiaks atuais... A uns 3 meses atras entrei em um e fiquei um bom tempo batendo papo com o ADM, ele editou um baiak modificou itens, cidades eventos proprios e acredite se quiser, ele estava ja mantendo o servidor online a 2 meses (pois o server era ja um projeto antigo que ele foi atualizando) e seu recorde de player era 30, com 0 donates. Com tudo por isso acho que baiak n vira.
  14. Script Blood Item Para 8.60

    Micheel15 reagiu a marcot por uma resposta no tópico

    1 ponto
    Pelo que vi no script as criaturas são fictícias, tudo que o jogador recebe está dentro do proprio script. Eu só criei as variáveis contendo tudo aquilo pra só ter uma só ativação no código, já que ela se repetia de forma desnecessária. Caso queira criar outras transformações, basta incrementar o range do random no começo da execução e configurar os parâmetros do vetor (addHealth, addMana, creatureName, say, creatureOutfit) dentro do próprio script (podendo seguir o exemplo dos demais).
  15. GonkaKill

    mullino reagiu a gabriel28 por uma resposta no tópico

    1 ponto
    @mullino Tenta assim: function onDeath(cid, corpse, deathList) local Storage,monstName = 11543, "Gonka" if isMonster(cid) and string.lower(getCreatureName(cid)) == string.lower(monstName) then doBroadcastMessage("O player "..getPlayerName(cid).." matou o Gonka.") for _, check in pairs(deathList) do if isPlayer(check) then setPlayerStorageValue(check, Storage, 1) end end end return true end
  16. Script Blood Item Para 8.60

    Micheel15 reagiu a marcot por uma resposta no tópico

    1 ponto
    @Micheel15 Eu dei uma testada no meu TFS aqui, só dá uma conferida pra ver se é isso mesmo que você quer. Qualquer coisa que você quiser que adicione é só pedir, farei o que estiver no meu alcance. Script: playerOriginalOutfit = nil skill = nil magic = nil local function bloodCall (cid, times) if isPlayer (cid) then if times == 0 then doCreatureChangeOutfit(cid, playerOriginalOutfit) return true else doCreatureAddHealth(cid,(12*getCreatureMaxHealth(cid)/100)+(skill*6)+(magic*2)) doCreatureAddMana(cid,(12*getPlayerMaxMana(cid)/100)+(skill*6)+(magic*2)) doSendMagicEffect(getCreaturePosition(cid), 51) addEvent (bloodCall, 1 * 2000, cid, times - 1) end end end local Speed = createConditionObject(CONDITION_HASTE) setConditionParam(Speed, CONDITION_PARAM_TICKS, 30000) setConditionFormula(Speed, 0, 6000, 0, 6000) function onUse(cid, item, frompos, item2, topos) chronos = { lookType = 251,lookHead = getCreatureOutfit(cid).lookHead, lookBody = getCreatureOutfit(cid).lookBody, lookLegs = getCreatureOutfit(cid).lookLegs, lookFeet = getCreatureOutfit(cid).lookFeet, lookAddons = getCreatureOutfit(cid).lookAddons } hazus = { lookType = 194,lookHead = getCreatureOutfit(cid).lookHead, lookBody = getCreatureOutfit(cid).lookBody, lookLegs = getCreatureOutfit(cid).lookLegs, lookFeet = getCreatureOutfit(cid).lookFeet, lookAddons = getCreatureOutfit(cid).lookAddons } kazard = { lookType = 262,lookHead = getCreatureOutfit(cid).lookHead, lookBody = getCreatureOutfit(cid).lookBody, lookLegs = getCreatureOutfit(cid).lookLegs, lookFeet = getCreatureOutfit(cid).lookFeet, lookAddons = getCreatureOutfit(cid).lookAddons } skill = getPlayerSkill(cid,0) magic = getPlayerMagLevel(cid) Blood = math.random(1,3) -- Exhausted Settings -- local exhausted_seconds = 30 -- Segundos que o blood vai demorar para usar denovo local exhausted_storagevalue = 4850 -- Storage Value do exhausted local exhausted_seconds2 = 1 -- How many seconds local exhausted_storagevalue2 = 9893 -- Storage Value local exhausted_seconds3 = 2 -- How many seconds local exhausted_storagevalue3 = 8162 -- Storage Value local exhausted_seconds4 = 1 -- How many seconds local exhausted_storagevalue4 = 6245 -- Storage Value local exhausted_seconds5 = 15 -- How many seconds local exhausted_storagevalue5 = 15555 -- Storage Value -- Exhausted Settings END -- if getPlayerSoul(cid) <= 49 then doPlayerSendTextMessage(cid,20,'Desculpe, você não tem Souls suficiente.') return true end if(os.time() < getPlayerStorageValue(cid, exhausted_storagevalue)) then doPlayerSendTextMessage(cid,20,'Você não pode usar um blood of gods durante o efeito de outro.') return true end if(os.time() < getPlayerStorageValue(cid, exhausted_storagevalue2)) then doPlayerSendCancel(cid,"Você está muito cansado.") return true end if(os.time() < getPlayerStorageValue(cid, exhausted_storagevalue3)) then doPlayerSendCancel(cid,"Você está muito cansado.") return true end if(os.time() < getPlayerStorageValue(cid, exhausted_storagevalue4)) then doPlayerSendCancel(cid,"Está esgotado.") return true end if(os.time() < getPlayerStorageValue(cid, exhausted_storagevalue5)) then doPlayerSendCancel(cid,"Você está muito cansado.") return true end blood_configs = { [1] = { addHealth = 15 * getCreatureMaxHealth (cid) / 100, addMana = 15 * getCreatureMaxHealth (cid) / 100, creatureOutfit = chronos, creatureName = "Chronos", say = "Grr! Chronos back!", }, [2] = { addHealth = 10 * getCreatureMaxHealth (cid) / 100, addMana = 10 * getCreatureMaxHealth (cid) / 100, creatureOutfit = kazard, creatureName = "Kazard", say = "Nhe hehe!", }, [3] = { addHealth =10 * getCreatureMaxHealth (cid) / 100, addMana = 10 * getCreatureMaxHealth (cid) / 100, creatureOutfit = hazus, creatureName = "Hazus", say = "My hands are burning!", }, } if (os.time() >= getPlayerStorageValue(cid, exhausted_storagevalue)) and (os.time() >= getPlayerStorageValue(cid, exhausted_storagevalue2)) and (os.time() >= getPlayerStorageValue(cid, exhausted_storagevalue3)) and (os.time() >= getPlayerStorageValue(cid, exhausted_storagevalue4)) then doCreatureAddHealth (cid, blood_configs[Blood].addHealth) doCreatureAddMana (cid, blood_configs[Blood].addMana) playerOriginalOutfit = getCreatureOutfit(cid) doCreatureChangeOutfit(cid, blood_configs[Blood].creatureOutfit) doSendMagicEffect (getCreaturePosition(cid), 12) doPlayerSendTextMessage (cid, 20, "Voce usou um Concentrated Demoniac Blood e se transformou em um ".. blood_configs[Blood].creatureName .. ". (Revitalization Ativado).") doSendAnimatedText (getCreaturePosition(cid), blood_configs[Blood].say, TALKTYPE_ORANGE_1) end addEvent (bloodCall, 1 * 2000, cid, 15) setPlayerStorageValue (cid, exhausted_storagevalue, os.time() + exhausted_seconds) doPlayerAddSoul(cid,-50) doRemoveItem(item.uid,1) return true end Tentei retirar algumas linhas de código que se repetiam bastante, então não sei se é exatamente isso.
  17. (Resolvido)Spell Naruto

    felippepsa reagiu a Storm por uma resposta no tópico

    1 ponto
    -- Certifique-se de que na XML : needtarget="1" local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_HITCOLOR, COLOR_PURPLE) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -50.0, 0, -50.5, 0) function onCastSpell(cid, var) local effect1,time1 = 259,0 -- Efeito número 1, tempo para ser executado(em segundos) local effect2,time2 = 261,3 -- Efeito número 2, tempo para ser executado(em segundos) local effect3,time3 = 260,6 -- Efeito número 3, tempo para ser executado(em segundos) local pid = getCreaturePosition(cid) --Aqui em baixo você configura as posições em que os dois ultimos effects sairão [ em ordem ] local position1 = {x = getThingPosition(getCreatureTarget(cid)).x, y = getThingPosition(getCreatureTarget(cid)).y, z = getThingPosition(getCreatureTarget(cid)).z} local position2 = {x = getThingPosition(getCreatureTarget(cid)).x, y = getThingPosition(getCreatureTarget(cid)).y, z = getThingPosition(getCreatureTarget(cid)).z} addEvent(doSendMagicEffect, time1 * 1000, pid, effect1) addEvent(doSendMagicEffect, time2 * 1000, position1, effect2) addEvent(doSendMagicEffect, time3 * 1000, position2, effect3) return doCombat(cid, combat, var) end @felippepsa As próprias explicações ja estão na script.
  18. Como faço para hospedar um servidor?

    Leolinduxo reagiu a Werner por uma resposta no tópico

    1 ponto
    Meu conselho é que pegue um servidor windows inicialmente, no entanto se for um grande projeto é bem melhor que inicie ja no linux utilizando VPS cloud + OTPanel. Aqui segue um tópico pra sanar a suas duvidas sobre VPS
  19. 1 ponto
    A ideia é bem essa mesmo, você tem o level de forja que vai te liberando novos itens pra fazer e que precisam de produtos/materiais de criaturas ou até de npcs. A refinação seria também um certo tipo de forja (também exige level de forja), mas apenas pra aprimorar o item (mais ataque/defesa). Tem atributos que você só consegue obtendo um item lendário e outros atributos que só consegue forjando.
  20. 1 ponto
    Bom eu procurei e muito por um tutorial de como colocar xat no site gesior e n achei nada. Então resolvi criar um, fui tentando até que consegui. Chega de conversa e vamos ao que interessa. 1. Vc precisa criar um grupo no Xat.com, cria seu grupo : 2. Agora precisa confirmar seu e-mail na Hotmail.com : 3. Depois de Ativado você vai em Edit Your Chat e depois em Extra Features... 4. Na Pagina de Recursos que se abre, você vai no campo aonde está o seu Código : 5. Agora vamos para a parte do site vá na pasta xampp/htdocs copie qualquer arquivo.php e renomeie para xat.php e coloque isso dentro e salve : 6. Agore abre o seu Index.php e adicione isso e salve : 7. Agora abra a pasta xampp/htdocs/layout/tibiacom/layout.php e adicione isso dentro e salve : 8. Explicação - Passo 5: 9. Pronto seu Xat está Pronto (o meu é de Support ai fica a critério) :
  21. Casino Script ElfBot 100%AFK

    DAXz reagiu a oclipper por uma resposta no tópico

    1 ponto
    Casino Script Tutorial 100% ElfBot Necessario: Dice Golden BackPack Purple BackPack Edit CaveBot (Codigo fonte) Download (por sua conta e risco, nao baixe scripts editados) http://speedy.sh/KBauW/a-Casino.elfc Hotkey Bugar DP (north) auto 200 dropitemsxyzamount $posx [$posy-1] $posz 3031 01 | wait 500 | dropitemsxyzamount $posx [$posy-1] $posz 3035 01 | wait 500 Hotkey Pegar dado (Server Save 6 da manha) auto 1 if [ $curmsg.isredtext && $curmsg.content == 'The server is going down for a serversave in one minute. Please logout.'] {say 'Casino Closed.' | wait 500 | setcavebot off | wait 500 | collectitems 'golden backpack' 5792 5793 5794 5795 5796 5797 | wait 24000} Hotkey Pausar (durante server save) auto 1 if [ $curmsg.isredtext && $curmsg.content == 'Server save within 30 seconds, please mind it may freeze!'] {say 'Nao Jogue no Server Save !!!' | wait 10000 | say 'Bot Pausado até dar Server Save !!!' | setcavebot off | wait 30000 | setcavebot on} | if [ $curmsg.isredtext && $curmsg.content == 'Server save within 60 seconds, please mind it may freeze!'] {say 'Nao Jogue no Server Save !!!' | wait 2000} Anti AFK auto 200 dontlist | turnn | wait 5 | turns | wait 500000 - Toca Instrumento (quando apostador ganha) - Vira o char pra quem esta apostando - Apostas 50, 100, 200 e 500k - Pausa Bot durante Server Save - Funciona DP ao North /\ e South \/ - Informa ao jogador 'Min 50k. Intere a aposta'
  22. Casino Elfbot

    DAXz reagiu a oclipper por uma resposta no tópico

    1 ponto
    ATUALIZADO 03/01/2015 Casino Script 4.0
Líderes está configurado para São Paulo/GMT-03:00

Informação Importante

Confirmação de Termo