Ir para conteúdo

othereality

Visconde
  • Total de itens

    343
  • Registro em

  • Última visita

Tudo que othereality postou

  1. Todos online amanhã as 19:00 horas ganharão uma classe grátis. Se eu ainda não estiver lá apenas esperem um pouco que eu talvez eu me atrase.
  2. Se não é uma storage global você vai precisar executar essa querry cada vez que abrir o servidor: Basta você adicionar uma dessas linhas no script start.lua que tem dentro de globalevents e sempre que você iniciar o servidor vai ser resetada a storage.
  3. 21 a 25/02/16 updates: > Novas 4 classes. > Agora akbai tem uma prisão para alertar e em casos de recorrência "banir" os botters. > Todos os reports de bugs feito para mim dentro do jogo estão sendo recompensados com 2 ghost coins. Barbarian HP/LV: 15 Total damage: 5.5 spell: Passive description: Barbarian's basic attacks are stronger and AoE. descrição: Os ataques básicos do barbarian são mais fortes e em area. spell: Exori Xin description: Damages and slows the target. descrição: Dá dano e tira velocidade do alvo. spell: Exevo gran xin description: Causes a massive AoE damage but needs 1s of cast. descrição: Dá um dano muito alto em area mas precisa de 1s de cast. Viking HP/LV: 20 Total damage: 1 + 8% target's max health(8% da vida máxima do alvo) spell: Exori Kiv description: Viking throws his axe daming the enemy. This spell have 6s cd, but 50% chance of having 0.5s. descrição: Viking atira seu machado dando dano no inimigo. Essa magia tem 6s de cd, mas 50% de chance de ter 0.5s. spell: Exori Sen Kiv description: Deals 8% target's max health in damage. descrição: Dá 8% da vida máxima do target em dano. spell: Etito Kiv Lan description: For a short time all Viking's basic attacks heals him. descrição: Por um curto período de tempo todos os basics do Viking curam ele. Hunter HP/LV: 10 Total damage: 5.5 spell: Exori Ken Flam description: After a second of cast Hunter shoots an arrow that set target on fire for 6s. descrição: Após um cast de um segundo o Hunter atira um flecha que deixa o alvo pegando fogo por 6s. spell: Exeta Tic description: Summons a torrent that damages enemies and get their "aggro". descrição: Sumona um torrent que dá dano aos inimigos e "agra" eles. spell: Exevo Gran Mas Rut description: Shoots arrow to every directions daming in area. descrição: Atira flechas em todas as direções causando dano em area. Tracker HP/LV: 30 Total damage: 2.2 - 5.5 (3.85~) spell: Exori Har description: Consumes 20% of Tracker's health now to deal damage. The less health Tracker have the more damage this spells deals. descrição: Consome 20% da vida atual do Tracker para causar dano. Quanto menos vida o Tracker tem mais dano essa spell dá. spell: passive description: Everytime Tracker kills an enemy he heals. descrição: Cada vez que o Tracker mata um inimigo ele se cura. spell: passive description: When Tracker's health is below 50% his health regen triples. descrição: Quando a vida do Tracker fica abaixo de 50% sua regen de vida triplica. 26/02/16 update: > Nova classe Bard, tem o poder de tirar cooldown em área 27/02/16 update: > Todas as hunts que não tem nenhum tipo de loot relevante agora tem respawn em dobro que é indicado por uma placa diferente. > Hunt de ghoul aumentada. > Hunt de Wyrm agora está bonita. 28/02/16 update: > Nova cidade: Wetrock, com hunts do level 100 até o 1410.
  4. Tenta aí local itens = { [2520] = 2523, -- [id da caixa] = id dela quebrada } local prize = { -- itens dentro do presente 2160, 1, 0000, 0, 0000, 0, 0000, 0 } local container = 1990 -- presente que ganha local chancemob = 10 -- chance de abrir e vir um monstro local mob = "Snake" local tempo = 15 -- tempo em segundos local function restore(iditem, pos) if itens[iditem] then local item = getTileItemById(pos, itens[iditem]) if item.uid > 0 then doRemoveItem(item.uid) end doCreateItem(iditem, pos) end end function onUse(cid, item, pos, itemEx, topos) if itens[itemEx.itemid] then local lixo = doCreateItem(itens[itemEx.itemid], topos) addEvent(restore, tempo * 1000, itemEx.itemid, topos) doRemoveItem(itemEx.uid) if math.random(1,100) <= chancemob then doCreateMonster(mob, topos) doSendMagicEffect(topos, 3) else local bp = doPlayerAddItem(cid, container, 1) local tSize = table.getn(prize) local drop = math.random(1, tSize) d = math.mod(drop,2) if d == 0 then drop = drop-1 end for i = 1, tSize, 2 do if drop == i then doAddContainerItem(bp, prize[i], prize[i+1]) break end end end else return false end return true end
  5. Em cada bloco, antes do primeiro end adicione isso: Pronto você tem uma msg caso o player não tenha as barras necessárias Fica assim: if(msgcontains(msg, 'Addon Doll')) then if getPlayerItemCount(cid, barras) >= 35 then doPlayerRemoveItem(cid, barras, 35) doPlayerAddItem(cid, 9693, 1) npcHandler:say('Foi um prazer negociar com voce.', cid) else npcHandler:say('vc nao tem as barras.', cid) end end
  6. Se você postar aqui o código do seu npc depois que você editou, me ajuda a entender o porque desse erro.
  7. Peço aos que acompanham meus posts aqui que curtam página no facebook clicando aqui!
  8. Eu sei dizer que a luz do Utevo Lux é uma condição de luz no player que tem uma intensidade e uma duração, se você adicionar uma nova condição de luz ao player ela substitui a anterior, ou seja é possível apagar o Utevo Lux usando isso: local condition = createConditionObject(CONDITION_LIGHT) setConditionParam(condition, CONDITION_PARAM_LIGHT_LEVEL, 0) Mas sobre a tocha eu não sei nada
  9. Só confirmando o que o Darkraus disse, não tem como fazer isso via script apenas.
  10. Eu tenho um mas é tfs0.3.6 eu não tenho ideia se funcionaria pra você. Você só vai precisar substituir onde eu escrevi: "NOME_ITEM" ou "ID_ITEM" e lá onde diz "ID DAS BARRAS AQUI". <?xml version="1.0" encoding="UTF-8"?> <npc name="Akbai King" script="akbaiking.lua" walkinterval="0" floorchange="0"> <health now="150" max="150"/> <look type="132" head="78" body="69" legs="58" feet="76" addons="1"/> <parameters> <parameter key="message_greet" value="Ola, estou vendendo: [({NOME_ITEM1} por 5 barras)({NOME_ITEM2} por 10 barras)]"/> <parameter key="message_farewell" value="tchau!" /> </parameters> </npc> local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local Topic = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local barras = 0000 -- ID DAS BARRAS AQUI if(msgcontains(msg, 'NOME_ITEM1')) then if getPlayerItemCount(cid, barras) >= 5 then doPlayerRemoveItem(cid, barras, 5) doPlayerAddItem(cid, ID_ITEM1, 1) npcHandler:say('Foi um prazer negociar com vc.', cid) end end if(msgcontains(msg, 'NOME_ITEM2')) then if getPlayerItemCount(cid, barras) >= 5 then doPlayerRemoveItem(cid, barras, 5) doPlayerAddItem(cid, ID_ITEM1, 1) npcHandler:say('Foi um prazer negociar com vc.', cid) end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  11. Vou deixar a minha tb e.e local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_MANADRAIN) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA) --ESCOLHE OS EFEITOS setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ARROW) --ESCOLHE OS EFEITOS function onCastSpell(cid, var) if(variantToNumber(var) == 0) then return doPlayerSendCancel(cid, "vc precisa de um target") end local target = getCreatureTarget(cid) local lv = getPlayerLevel(cid) local ml = getPlayerMagLevel(cid) local manaDrainMin = (lv+ml) * 2 local manaDrainMax = (lv+ml) * 3 local dmg = math.random(manaDrainMin, manaDrainMax) doCreatureAddMana(target, -dmg) doCreatereAddHealth(cid, dmg) return doCombat(cid, combat, var) end Na tag em spells.xml precisa ter: aggressive="1"
  12. Acredito que o melhor pra fazer o item voltar ao normal é usar decay pelo itens.xml mesmo. Já resolveria o erro que deu já que ele foi na função de fazer o item voltar ao que era.
  13. post passado para cá: http://www.xtibia.com/forum/topic/239284-uwnia99/?p=1684906
  14. 10/02/16 update 1: > Contas e chares agora são criados no site. > Armas e comidas adicionados aos loots de Shineland. > Mino archer e hunter agora dropam flechas. > Sistema de loot raros agora funcionando perfeitamente. > Todas as classes re-trabalhadas para um maior equilibrio. > Exana Mort alterado. Agora tem 5 segundos de cooldown, duração maior, menor cura e não bloqueia mais as magias Exori Hur e Exori. > Systema de compartilhamento de experiência adicionado ao jogo. (Todos ganham a exp integral do monstro não importa o dano que tenham dado.) > Exp do level 1 ao 165 reduzida. ________________________________________________________________________________________________________________________ 11/02/16 update 1: > Ghost Invasion Event adicionado ao jogo: diga !ghost para entender seu funcionamento. > Adicionado npc Rei de Akbai no castelo de Akbai. > Evento agora acumula até 3 vezes o número de Ghosts se não for feito. > Rei de Akbai troca 1 ghost coin por 1 passagem de trem. > Não é mais possível caminhar pelos trilhos de trem. ________________________________________________________________________________________________________________________ 12/02/16 update 1: > Novo item adicionado ao jogo HeartStone: teleporta o usuário do item para o templo de sua cidade (não pode estar em battle) > Novo toolkit adicionado a Shineland (HeartStone) > Donatins funcionando pelo site, é possível comprar novas classes e em breve outfits. * Acho importante ressaltar que as doações não dão ao player nenhum tipo de vantagem em força no jogo e todas as classes novas e outfits podem ser conquistados também pelo jogo. > Quatro novos bosses adicinados a shineland, cada um dropando o item necessário para fazer uma parte do set do level 1000 > Os toolkits do set level 1000 estão prontos. > Gordo vendendo agora todas as comidas até level 2000 > Gordo agora deixa de comprar comidas > Valor das comidas refeito > Felipe comprando agora os drops de Shineland. > Não é mais possível caminhar pelos trilhos de trem. > Spawn de Wyvern corrigido. ________________________________________________________________________________________________________________________ 13/02/16 update 1: > Novo Layout no site. > Novos itens na loja (itens de addon) > Itens de addon agora são levemente mais raros. > Itens de classe agora são levemente mais raros. > Evento de invasão fantasma agora não tem mais tempo limite para ser completo e acumula apenas até 2x a quantidade de Ghosts. > Arrumado teleport que deixava preso nos trilhos. > Todas as classes agora (exceto as inciais e Necromancer) precisam de 3 Ghost Coins. > Reduzido Ghost coin da última quest de skill, agora todas as quests de skill precisam de 1 Ghost Coin. ________________________________________________________________________________________________________________________ 14/02/16 update 1: > Archer nefado: Agora a spell de slow compartilha cd com a spell de dano. > Feral Druid buffado: ele não tem mais cd para se transformar e o exori lax tem cd separado para cada forma. > Invasão fantasma agora dá 1 tickect de trem para os vencedores. > Porta intransponível do castelo arrumada. > Sistema de casamento ganhando Marry Outfit funcionando. * Drope um wedding ring de Hero e leve 6 ghost coins mais o ring para o priest de Akbai ele trocará por um anel que você deve dar para a pessoal que deseja casar, ambos devem esta lado a lado para a pessoa poder usar o anel aceitando o casamento então a pessoa que usou o anel receberá 2 caixas de presente contendo Marry Outfit. 14/02/16 update 2: > npc Caia agora vende uma Perfect Key. > Novo toolkit em shineland, para fazer Wisp Key. > Todos os skills de Shineland podem ser adquiridos com Wisp Keys. > Novo evento em Shineland: * Sempre existe em shineland um Wisp vivo em algum lugar, quando ele morre todos que deram 1 hit nele ao menos ganham 1 Wisp Aura (material para wisp key) e alguns instantes depois ele reaparece em outro lugar de shineland. ________________________________________________________________________________________________________________________ 15/02/16 update 1: > Apenas o outfit citizen está liberado para todas as classes. > Cada classe libera um novo outift (sem addons) > O evento da invasão fantasma não mais fica dando Broadcast de quantos fantasmas faltam se ninguém estiver fazendo ele. > Wisp: vida reduzida de 15k par 5k e agora ele não se move. ________________________________________________________________________________________________________________________ 16/02/16 update 1: > Personagens inativos a mais de 30 dias e que sejam de level 210 ou menor serão deletados automaticamente a partir dessa atualização. > Novo item adicionado Outfit Spreader: Ao usar ele se consome e envia os outfits do seu personagem para todos os outros da sua conta. Este item é a única forma de completar todos os outifts em um único char. Novo toolkit adicionado em shineland: Outfit Spreader, level 600. IMPORTANTE: Você deve logar em cada char depois dessa atualização caso contrário o item Outfit Spreader não vai funcionar com esse char. ________________________________________________________________________________________________________________________ 17/02/16 update 1: > Nobleman Outfit agora é trocado por 50 Ghost Coins. > Todos os npcs e placas do jogo agora estão em 2 línguas. > Novo teleport adicionado na área de tps de outfis para o Priet. (Weddin Outfit) > Nova indicação no templo explica como a Ghost Coin Orb funciona. > Todas as informações do comando "!info" agora estão em inglês. > Novo comando: "!infobr". > Mensagens de BroadCast dos eventos agora estão em duas línguas. ________________________________________________________________________________________________________________________ 18/02/16 update 1: > Tradução de nomes e descrições de itens para o inglês. > Custo de Ghost Coins para addons 1 > 5. > Custo de Gost Coins para classes 5 > 10. > Não mais é necessários Ghost Coins quando comprada uma classe pelo site. > Página inicial e loja do site agora estão em duas línguas. > Enchanted Wedding Ring ghost coin cost: 6 > 20. > As janelas de diálogo de todos os comando foram alteradas e estão muito mais legóveis. > Todos os comandos informativos tem 2 linguagens: !info ou !infobr, !soul ou !soulbr, !wisp ou !wispbr... 18/02/16 update 2: > Exani tera adicionado para todas as classes (consome 75 soul points) > Exura adiconado para todas as classes (consome 9 soul points) ________________________________________________________________________________________________________________________ 19/02/16 update 1: > Assassin não mais vai desequipar os outfits quando ficar invisível. > Set do level 200 teve o número de gears reduzidos de 4 para 2. 19/02/16 update 2: > Novo Client: http://www.filedropper.com/uwnia99 (ou pelo site: uwnia99.ddns.net) > Em breve todas as funcionalidades que podem ser vistas no client novo vão funcionar (sem necessidade de um novo download) > Reformatados os patch notes a partir da página 2 do tópico 19/02/16 update 3: > Nova página adicionada ao site: Quickstart, ensina o básico de Uwnia. > O quickstart pode ser encontrado no site ou no primeiro post desse tópico. 19/02/16 update 4: > Nova página adicionada ao site: Vocations, fala um pouco sobre cada vocação. > A págima pode ser encontrada aqui. ________________________________________________________________________________________________________________________ 20/02/16 update 1: > Não é mais possível fazer logout logo após usar uma spell que retornará uma viso quando cd acabar. > Novas spells agora estão retornando aviso de cd. > Agora o necromancer troca de summon a cada 300 leveis. (apenas estético, não altera a mecânica de jogo nem o dano) 20/02/16 update 2: > Bugs no necromancer corrigidos. > Avisos de que o bots não são permitidos adicionados ao !info, !infobr e página de criação de contas. > Corrigido bug do site que não mostrava vocação dos players Priests. PÁGINA NO FACEBOOK ADICIONADA!
  15. othereality

    Uwnia OT

    Eu tenho um OT chamado Uwnia e nele um mapa próprio que tem algumas partes bem feias e outras nem tanto, procuro por pessoas que queiram me ajudar a melhorar as partes feias. Quem quiser entrar no OT pra ver: http://uwnia99.ddns.net/ Ele é todo custom e não tem nada a ver com o Tibia global. Mapa do Uwnia. Duas observações: * Eu fiz boa parte do mapa, mas os créditos não todos meus, tem partes que eu copiei de outros mapas que foram disponibilizados para download(não saberia dizer o nome de todos). * Quem quiser me ajudar eu prefiro que mande pm.
  16. edited: passei para o post de baixo.
  17. Resolvido: https://otland.net/threads/convert-sqlite-to-mysql-database-with-pictures.47742/
  18. Não consigo completar isso, dá mt problema no caminho. Posso passar meu banco de dados se você sabe fazer, aí vc me passa o script sql pra eu executar aqui..
  19. Eu tinha meu ot rodando a alguns dias e já tinha algumas contas e jogadores e eu agora eu coloquei um site e eu só consegui configurar ele com mysql então criei um banco de dados novo, tem como eu importar as informações do s3db para esse novo banco mysql?
  20. foi mal, não consigo te ajudar, não rolou minha tentativa
  21. Qual site para meu servidor TFS 0.3.6 vocês me aconselham usar? Nunca tive um site mas manjo um pouco de PHP e queria saber se tem algum preferido do pessoal antes de sair baixando qualquer coisa..
  22. Pelo que entendi o problema foi que não deu pra subtrair 1 do id da vocation, sabe dizer a qual seu OT? nome versão? Tenta isso: local query = db.query or db.executeQuery local premios = { -- -- [chance] -- itemid,amount [{1, 5}] = {{12674}, {11754}}, [{10, 30}] = {{2390}, {2469}, {2646}, {8306,5}, {2408}}, [{80, 100}] = {{2160,1000}} } local function getGuildNameById(id) local name = "" local query = db.getResult('SELECT `name` FROM `guilds` WHERE `id` = "'.. id ..'"') if query:getID() == -1 then return true end name = query:getDataString("name") query:free() return name end function pointNumber(number) if not tonumber(number) then return false end local str = "" number = tostring(number):reverse() local count = 0 for i = 1, number:len() do count = count + 1 if count <= 3 then if str == "" then str = number:sub(i, i) else str = str..number:sub(i, i) end else count = 1 str = str.."."..number:sub(i, i) end end return str:reverse() end function onStatsChange(cid, attacker, type, combat, value) if isMonster(cid) and isPlayer(attacker) and type == STATSCHANGE_HEALTHLOSS then if isInArray({"Castle Guardian I", "Castle Guardian II", "Castle Guardian III", "Castle Guardian IV", "Castle Generator", "Ice Crystal"}, getCreatureName(cid)) then doPlayerSetStorageValue(attacker, 1827311, getPlayerStorageValue(attacker, 1827311) + value) local quant = guild_hit_count[getPlayerGuildId(attacker)] and guild_hit_count[getPlayerGuildId(attacker)] or 0 guild_hit_count[getPlayerGuildId(attacker)] = quant + value end end return true end function onDeath(cid, corpse, deathList) local gid = 0 local winner = {0, 0, 0, 0, 0} if isMonster(cid) and getCreatureName(cid) == "Ice Crystal" then if not getPlayingGuilds() then return true end local guilds = getPlayingGuilds() local max = 0 for index, var in pairs(guild_hit_count) do if var > max then max = var gid = index end end setGlobalStorageValue(1823999, gid) query("UPDATE `castle_dono` SET `guild_id` = '"..gid.."' WHERE `guild_id` > 0") doBroadcastMessage("{Castle War} O evento acabou, a guild com maior desempenho foi "..getGuildNameById(gid)..", com "..pointNumber(max).." pontos sobre o castelo.") updateCastleData() setGlobalStorageValue(18219113, -1) if gid > 0 then local mx = {0, 0, 0, 0, 0} for _, pid in pairs(getPlayersOnline()) do if getPlayerGuildId(pid) == gid then local st = getPlayerStorageValue(pid, 1827311) local voc = getPlayerVocation(cid) if st > mx[voc] then mx[voc] = st winner[voc] = pid end end end for i = 1, 4, 1 do if isPlayer(winner[i]) then local r = math.random(1,100) for v, k in pairs(premios) do if r >= v[1] and r <= v[2] then local rand = k[math.random(#k)] itemr, amountr = rand[1], (not rand[2] and 1 or rand[1] and rand[2] or 1) end end local recompensa = doPlayerAddItem(winner[i], itemr, amountr) doBroadcastMessage("{Castle War} O jogador com maior desempenho foi "..getCreatureName(winner[i])..", com "..pointNumber(mx).." pontos sobre o castelo. Ele recebeu "..pointNumber(amountr).."x "..getItemNameById(itemr).." como premio.") doItemSetAttribute(recompensa, 'description', "Premio do jogador "..getCreatureName(winner[i]).." ganho no evento castle war do dia "..os.date("%d/%m/%y")..".") local medal = doPlayerAddItem(winner[i], 10127, 1) doItemSetAttribute(medal, 'description', "Trofeu ganho pelo jogador "..getCreatureName(winner[i]).." no evento castle war do dia "..os.date("%d/%m/%y")..".") end end end for _, pid in pairs(getPlayersOnline()) do if isInArea(getThingPos(pid), {x = 500, y = 574, z = 6}, {x = 575, y = 620, z = 6}) or isInArea(getThingPos(pid), {x = 511, y = 588, z = 5}, {x = 556, y = 607, z = 5}) or isInArea(getThingPos(pid), {x = 511, y = 588, z = 4}, {x = 556, y = 607, z = 4}) or isInArea(getThingPos(pid), {x = 511, y = 588, z = 3}, {x = 556, y = 607, z = 3}) or isInArea(getThingPos(pid), {x = 481, y = 580, z = 7}, {x = 683, y = 798, z = 7}) then doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid))) end end guild_hit_count = {} end return true end
  23. cara eu já entendi e programei o que vc pediu desde a primeira vez que postei aqui, você só precisa testar..
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...