Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''system''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • xTibia - Notícias e Suporte
    • Regras
    • Noticias
    • Soluções
    • Projetos Patrocinados
    • Tutoriais para Iniciantes
    • Imprensa
  • OTServ
    • Notícias e Debates
    • OTServlist
    • Downloads
    • Recursos
    • Suporte
    • Pedidos
    • Show-Off
    • Tutoriais
  • OFF-Topic
    • Barzinho do Éks
    • Design
    • Informática

Encontrar resultados em...

Encontrar resultados que contenham...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Sou

  1. O script consiste em, ao clicar, lançar uma flecha que, ao chegar no target, dará certo dano. Sendo assim, um bom script para Paladino. SS: ballista.lua (data/actions/scripts) local config = { shootRange = 7, damage = {50, 100}, -- dano minimo/maximo shootEffect = CONST_ANI_HUNTINGSPEAR, impactEffect = CONST_ME_HITAREA, exhaustOnUse = 300, -- tempo de recarga em segundos direction = { [5692] = DIRECTION_NORTH, [5701] = DIRECTION_EAST, [5698] = DIRECTION_WEST, [5695] = DIRECTION_SOUTH } } local exhaust = Condition(CONDITION_EXHAUST_WEAPON) exhaust:setParameter(CONDITION_PARAM_TICKS, config.exhaustOnUse) function onUse(player, item, fromPosition, target, toPosition, isHotkey) if player:getCondition(CONDITION_EXHAUST_WEAPON) then player:sendTextMessage(MESSAGE_STATUS_SMALL, Game.getReturnMessage(RETURNVALUE_YOUAREEXHAUSTED)) return true end player:addCondition(exhaust) for i = 1, config.shootRange do local nextPosition = item:getPosition() nextPosition:getNextPosition(config.direction[item.itemid], i) local tile = Tile(nextPosition) if tile then local topCreature = tile:getTopCreature() if topCreature then toPosition:sendDistanceEffect(topCreature:getPosition(), config.shootEffect) doTargetCombatHealth(player, topCreature, COMBAT_PHYSICALDAMAGE, -config.damage[1] * i, -config.damage[2] * i, config.impactEffect) return true end end end local nextPosition = item:getPosition() nextPosition:getNextPosition(config.direction[item.itemid], config.shootRange) toPosition:sendDistanceEffect(nextPosition, config.shootEffect) return true end actions.xml (data/actions) <action itemid="id" event="script" value="ballista.lua"/> Créditos: Printer
  2. Vídeo demonstração Instalando: steal.lua (data/actions/scripts) Actions.xml (data/actions) <action itemid="id da runa/item" event="script" value="steal.lua"/> Créditos: CandleJack
  3. Esse script foi feito por Codex NG. Bom, o nome já diz tudo então... Bom proveito! global.lua function upGradeSpells(player, words, tier, max) if player:getStorageValue(SPELL_WORDS[words]) < max then if player:getStorageValue(SPELL_WORDS[words]) < TIER[tier] then player:setStorageValue(SPELL_WORDS[words], TIER[tier]) player:getPosition():sendMagicEffect(CONST_ME_CONFETTI_HORIZONTAL) doCreatureSay(cid, tier, TALKTYPE_ORANGE_1, false, 0, player:getPosition()) elseif player:getStorageValue(SPELL_WORDS[words]) == TIER[tier] then player:sendCancelMessage("You've already scribed a this version of the spell.") player:getPosition():sendMagicEffect(CONST_ME_POFF) return false else player:sendCancelMessage("You already have a higher spell version scribed.") player:getPosition():sendMagicEffect(CONST_ME_POFF) return false end else player:sendCancelMessage("You've reached the maximum tier for this spell.") player:getPosition():sendMagicEffect(CONST_ME_POFF) return false end end --light, haste, single targets, area, single target heal, support spell, speed SPELL_WORDS = { ["exura dis"] = 1001, ["exevo dis flam hur"] = 1002, ["exiva"] = 1003, ["exori min flam"] = 1004, ["utevo lux"] = 1005, ["exura"] = 1006, ["exani tera"] = 1007, ["exura ico"] = 1008, ["exana pox"] = 1009, ["exani hur"] = 10010, ["exori vis"] = 10011, ["exori tera"] = 10012, ["exevo con"] = 10013, ["utevo gran lux"] = 10014, ["exori flam"] = 10015, ["exevo pan"] = 10016, ["adevo grav pox"] = 10017, ["utamo vita"] = 10018, ["utani hur"] = 10019, ["adevo grav flam"] = 10020, ["exori frigo"] = 10021, ["adori min vis"] = 10022, ["adana pox"] = 10023, ["adura gran"] = 10024, ["exori moe ico"] = 10025, ["exevo con pox"] = 10026, ["exori mort"] = 10027, ["exori ico"] = 10028, ["adeta sio"] = 10029, ["adito grav"] = 10030, ["exevo con mort"] = 10031, ["adevo grav vis"] = 10032, ["exevo flam hur"] = 10033, ["exura sio"] = 10034, ["exevo frigo hur"] = 10035, ["exura gran"] = 10036, ["utani gran hur"] = 10037, ["exeta res"] = 10038, ["adori blank"] = 10039, ["adito tera"] = 10040, ["exana vis"] = 10041, ["exevo vis lux"] = 10042, ["utevo res ina"] = 10043, ["exori con"] = 10044, ["exevo con hur"] = 10045, ["adori tera"] = 10046, ["adura vita"] = 10047, ["adevo mas pox"] = 10048, ["adori vis"] = 10049, ["exevo con flam"] = 10050, ["utani tempo hur"] = 10051, ["utevo res"] = 10052, ["utori flam"] = 10053, ["utevo vis lux"] = 10054, ["exana ina"] = 10055, ["adevo mas flam"] = 10056, ["adevo res flam"] = 10057, ["adori san"] = 10058, ["adori flam"] = 10059, ["adevo ina"] = 10060, ["adana mort"] = 10061, ["adevo grav vita"] = 10062, ["adori frigo"] = 10063, ["exori hur"] = 10064, ["adori mas vis"] = 10065, ["adori mas tera"] = 10066, ["exevo gran vis lux"] = 10067, ["adevo mas grav pox"] = 10068, ["exura vita"] = 10069, ["exana flam"] = 10070, ["adori mas frigo"] = 10071, ["adori mas flam"] = 10072, ["adevo mas hur"] = 10073, ["adevo grav tera"] = 10074, ["utura mas sio"] = 10075, ["utori mas sio"] = 10076, ["utito mas sio"] = 10077, ["utamo mas sio"] = 10078, ["adevo mas grav flam"] = 10079, ["exevo con grav"] = 10080, ["exori mas"] = 10081, ["utori vis"] = 10082, ["utana vid"] = 10083, ["exori"] = 10084, ["exura san"] = 10085, ["exura gran mas res"] = 10086, ["adevo mas vis"] = 10087, ["exevo vis hur"] = 10088, ["exevo tera hur"] = 10089, ["exori san"] = 10090, ["exevo gran frigo hur"] = 10091, ["utori kor"] = 10092, ["adevo mas grav vis"] = 10093, ["exeta vis"] = 10094, ["exeta con"] = 10095, ["exana kor"] = 10096, ["adori gran mort"] = 10097, ["utura"] = 10098, ["utori pox"] = 10099, ["exevo mas san"] = 100100, ["adana ani"] = 100101, ["utamo tempo san"] = 100102, ["exevo gran mas tera"] = 100103, ["utamo tempo"] = 100104, ["exevo gran mas vis"] = 100105, ["exori amp vis"] = 100106, ["exevo con vis"] = 100107, ["utito tempo san"] = 100108, ["exura gran san"] = 100109, ["exevo gran mas frigo"] = 100110, ["exevo gran mas flam"] = 100111, ["utito tempo"] = 100112, ["exori gran tera"] = 100113, ["exori gran flam"] = 100114, ["exori min"] = 100115, ["utori san"] = 100116, ["utori mort"] = 100117, ["exori gran vis"] = 100118, ["exana mort"] = 100119, ["exura gran ico"] = 100120, ["exori gran frigo"] = 100121, ["exori max flam"] = 100122, ["exori max tera"] = 100123, ["exori gran con"] = 100124, ["exori gran"] = 100125, ["exori max frigo"] = 100126, ["exori max vis"] = 100127, ["utura gran"] = 100128, ["exori gran ico"] = 100129 } TIER = { ["Apprentice"] = 0, ["Journeyman"] = 1, ["Adept"] = 2, ["Expert"] = 3, ["Master"] = 4, ["Grandmaster"] = 5 } Isso é salvo em chatchannels data\chatchannels\chatchannels.xml <?xml version="1.0" encoding="UTF-8"?> <channels> <channel id="2" name="Tutor" script="tutor.lua" /> <channel id="3" name="World Chat" public="1" script="worldchat.lua" /> <channel id="4" name="Spells" public="1" script="spells.lua" /> <channel id="5" name="Trade" public="1" script="advertising.lua" /> <channel id="6" name="Advertising-Rookgaard" public="1" script="advertising-rook.lua" /> <channel id="7" name="Help" public="1" script="help.lua" /> <channel id="8" name="Gamemaster" script="gamemaster.lua" /> </channels> data\chatchannels\scripts\spells.lua local CHANNEL_CHARACTER = 4 local tier = { [0] = "[ Apprentice ]", [1] = "[ Journeyman ]", [2] = "[ Adept ]", [3] = "[ Expert ]", [4] = "[ Master ]", [5] = "[ Grandmaster ]" } local function listSpells(player) local count = getPlayerInstantSpellCount(player) local text = "" local t = {} for i = 0, count - 1 do local spell = getPlayerInstantSpellInfo(player, i) if spell.level ~= 0 then if spell.manapercent > 0 then spell.mana = spell.manapercent .. "%" end t[#t+1] = spell end end table.sort(t, function(a, b) return a.level < b.level end) local prevLevel = -1 for i, spell in ipairs(t) do local line = "" if prevLevel ~= spell.level then if i ~= 1 then line = "\n" end line = line .. "\nSpells for Level " .. spell.level .. "\n" prevLevel = spell.level player:sendChannelMessage(cid, line, TALKTYPE_CHANNEL_O, CHANNEL_CHARACTER) end if player:getStorageValue(SPELL_WORDS[spell.words]) > 0 then local index = player:getStorageValue(SPELL_WORDS[spell.words]) text = " " .. spell.words .. " " .. tier[index] .. " - " .. spell.name .. " : " .. spell.mana .. "\n" else text = " " .. spell.words .. " " .. tier[0] .. " - " .. spell.name .. " : " .. spell.mana .. "\n" end player:sendChannelMessage(cid, text, TALKTYPE_CHANNEL_Y, CHANNEL_CHARACTER) end end function onJoin(player) addEvent(listSpells, 100, player) return true end function onSpeak(player, type, message) player:sendCancelMessage("You may not speak in this chat.") return false end Exemplo: data\chatchannels\actions\scripts\spells.lua function onUse(cid, item, fromPosition, itemEx, toPosition, isHotkey) upGradeSpells(cid, "exevo pan", 1, item) return true end Exemplo em Spell: local food = { 2666, -- meat 2671, -- ham 2681, -- grape 2674, -- apple 2689, -- bread 2690, -- roll 2696 -- cheese } function onCastSpell(creature, var) if not creature:isPlayer() then return false end if creature:getStorageValue(SPELL_WORDS["exevo pan"]) > 0 then -- if the tier is higher then apprentice increase the amount of food created creature:addItem(food[math.random(#food)], (creature:getStorageValue(SPELL_WORDS["exevo pan"]) + 1)) creature:getPosition():sendMagicEffect(CONST_ME_MAGIC_GREEN) else -- else give 1 piece of food creature:addItem(food[math.random(#food)], 1) creature:getPosition():sendMagicEffect(CONST_ME_MAGIC_GREEN) end return true end
  4. Falaê galera. Hoje vou trazer um script do Wise que achei bem interessante e não achei aqui. O que isso faz? Faz com que o player necessite se alimentar para parar de perder vida, caso não se alimente, sua vida irá descer até 0. Caso o player morra, quando entrar, ele vai continuar perdendo a porcentagem de HP, até que enfim se alimente. Acredito que seja bom para servidores sérios. Versões testadas: TFS 0.3.6, mas pelas funções, acho que execute de boa também com TFS 1.0 e com o TFS 0.4. Bora lá. Vá em data\creaturescripts\scripts, crie um .lua chamado checkhunger e adicione isso: -- Developed by Wise local t = { hp = 2, -- % maxTime = 25 * 60, -- minutes * 60 lossInterval = 5, -- seconds hstor = 98765 -- hunger storage } function checkHunger(cid) local h = getPlayerStorageValue(cid, t.hstor) local loss = t.lossInterval > 1 and t.lossInterval or 2 if getPlayerFlagValue(cid, PLAYERFLAG_CANNOTBEATTACKED) then return true elseif getPlayerFood(cid) < 1 then if h <= t.maxTime then if h < 0 then setPlayerStorageValue(cid, t.hstor, 0) end setPlayerStorageValue(cid, t.hstor, getPlayerStorageValue(cid, t.hstor) + 1) else addEvent(function() if isPlayer(cid) then doCreatureAddHealth(cid, -(t.hp * (getCreatureMaxHealth(cid) / 100))) end end, (loss - 1) * 1000) end else if h > 0 then setPlayerStorageValue(cid, t.hstor, 0) end end addEvent(function() if isPlayer(cid) then checkHunger(cid) end end, 1000) return true end function onLogin(cid) return checkHunger(cid) and true end Agora vá em data\creaturescripts e abra o creaturescripts.xml, adicione a seguinte tag: <event type="login" name="checkHunger" event="script" value="checkhunger.lua"/> Configuração: local t = { hp = 2, -- porcentagem de HP que o player perderá maxTime = 25 * 60, -- tempo máximo para ficar sem se alimentar em minutos * 60 (no caso, seriam 25 minutos, ou seja, 1500 segundos) lossInterval = 5, -- tempo do intervalo de perda da porcentagem do HP, em segundos (no caso, perderia a porcentagem estipulada a cada 5 segundos) hstor = 98765 -- storage que faz a contagem do tempo máximo } Créditos: Wise Enjoy it!
  5. Bom gente, coloquei um zombie event no meu server, está tudo ok, menos os Zombies.. É assim: 1- O Zombie NÃO pode ser atacado; 2- O Zombie NÃO mata o player em 1 hit(estou com DONATE Set, mas devia funcionar) tem que matar o player ao encostar no mesmo; 3- Como um KNIGHT vai participar do evento, se o zombie tem que matar o player em 1 hit? Somente encostando no player; 4- Como configuro para quando sobrar apenas 1 player na arena, acabar o evento e ele receber os prêmios, depois de 3 segundos ? Ai vai o meu evento: creaturescripts/scripts/login.lua creaturescripts/scripts/zombieevent.lua creaturescripts/creaturescripts.xml globalevents/scripts/fechazombie.lua globalevents/scripts/zombieevent.lua globalevents/globalevents.xml monsters/Zombie event.xml monsters.xml movements/scripts/zombieevent.lua movements/movements.xml Créditos: Smart Maxx POR FAVOR ME AJUDEM! up up
  6. Bom gente, eu adicionei o War System no meu server, achei em outro fórum. Bom, TUDO está funcionando perfeitamente, só 2 coisas que me perturbam, porém não são erros(eu acho) que são: 1º Mãozinha fechada 2º PZ Bom gente, é isso, quero muito a ajuda de vocês, obrigado!
  7. Bom gente, agradeço desde já. Quero um sistem de PET, pode ser em MODs ou na pasta DATA do server mesmo.. Assim: Existiriam 2 tipos de PETs, os de distance e os que atacam em melee. Porém, existiriam 4 pets, e cada um para um level de player. X pet é para player level X+, Y pet é para player level Y+, Z pet é para player level Z+ e A pet é para player level A+. Eles upariam de level como os players, porém mais devagar, seu level máximo seria 30. Cada PET teria um "ovo", e para possuir o pet, o player deveria dar use no ovo do respectivo pet, ao dar use no ovo, ele sumiria, e você recebe a mensagem "parabéns, voce habilitou X pet.". Para dar use no ovo, o player deve ser X level+, leveis diferentes para cada ovo. Existiriam os seguintes comandos: Também existiria um NPC que revive o PET X se ele estiver "morto". Você fala: hi revive O npc pergunta qual pet você fala o nome, se você nao possuir ele, o npc fala que vc não tem, se não existir o nome, o npc fala que não existe esse pet. Para reviver ele, você precisaria de X item, ou X valor de coins. Ai depois você fala: yes ou no O player pode ter os 4 pets, mas ele teria que dar use no ovo de cada um. Então precisaria de X level para dar use em todos. Os PETs poderiam usar algumas magias que existissem no server, porém, somente 3 magias. 1 de healar, 1 de ataque em área, 1 de dano com target. A de healar, ele usasse quando a vida dele estivesse com menos de 70%, e a spell healaria dependendo do level do pet, uma porcentagem de life. A de dano em área, o player deveria usar o comando O look dos pets seriam definidos onde vocês quiserem! A cada level que o pet upa, eles ganhariam: X de life e Y de mana e Z de skill de dano. Como existem 4 pets, e cada um com um level, o ganho de life, mana e skill de dano de cada pet, seria configurado um por um, e não o mesmo para todos! Também coloquem algum lugar para configurar o dano, a life e a mana dos pets quando level 1. Se tiver faltando algo, eu edito o post! Se puderem, criem uma spell de healar especialmente para os PETs. Eu gostaria de marcar alguns membros aqui que talvez possam me ajudar, sem querer desmerecer NINGUÉM NO XT: @Night Wolf @zipter98 @luanluciano93 @fireelement @RigBy @Bruno Minervino @Kissy @MudrocK up
  8. Bom gente, vou ser direto, desculpem se parecer grosseiro! Bom, eu estou usando um Zombie System que o membro @Fausto32, LINK DO TÓPICO Então, segui o tutorial com muito cuidado, fiz exatamente como pede, só que está dando um erro no distrô ao carregar os scripts do ot: Erro: E quando o player entra no teleport pra entrar na arena, fica aparecendo esse erro: Só que os zombies, são sumonados a cada +- 2 ~ 5 segundos... Eu testei com apenas 1 player, só que quando eu morri na arena, eu perdi o AOL, perdi LEVEL, e o evento continuou, e os erros não paravam de aparecer ainda! Por favor me ajudem! Ai vai como estão os scripts: onstartup.lua onthink.lua Bom gente, espero que me ajudem! Por favor, quero muito esse evento no meu server! Obrigado desde já!
  9. Se não quiserem ler esse texto pule esse paragrafo e vai ao que interessa. Olá, eu já joguei vários jogos mmorpg desde q conheço a internet, já tive em varias ideias para tentar fazer um servidor que não seja enjoativo e que não tenha só um objetivo, mais também que não tenha muitos, queria fazer um ciclo sem fim para ninguém enjoar do meu OT e não desistirem de jogar tibia.. quanto mais o tempo passa vejo menas gente jogando tibia! Então resolvi fazer um servidor divertido um server fun, para todos se divertirem que tenha objetivos fáceis e também difíceis, que tenha novidades e sistemas usados de maneira que ninguém usou, enfim... Sem mais delongas, procuro por um sistema de arena diferenciado, um que se baseia no league of legends, objetivo simples, quem destruir a base do inimigo vence, o evento é iniciado com uma alavanca 5 quadrados de um lado e 5 do outros que totalizam 10 pessoas, alguem de fora puxa a alavanca e essas 2 equipes vao lutar entre si para destruir a base inimiga, mais tem um porem... quando alguem morrer a pessoa volta para base, até o evento terminar, quando o evento terminar todos sao teleportados para o templo, o time que ganhou o evento ganha exp e gold, é claro durante o jogo se tiver gente em jogo nao podem usar a alavanca nao podem entrar se não buga tudo né kkk , enfim... Esse é meu pedido, dai vc me diz: Mais jean eu vo ter um trabalhão para fazer tudo isso não vou ganhar nada só para ajudar vc? Claro que não, me ajudando eu vou te dar muito rep, muitas pessoas vão achar o sistema inovador para o tibia vao te dar rep também, vou deixar os devidos créditos do sistema in game, para todos saberem quem que o fez, eu mesmo crio um topico para vc aki no xtibia explicando o sistema e tudo bonitinho, vc vai me fazer um enorme imenso favor, igual o zipter98 algo assim que me ajudou, vlw zipter98 pelo slot sistem <3, e vou fazer a parte do mapa para o sistema ^^. bom agradeço desde ja, e boa sorte para quem encarar esse desafio!
  10. Olá galerinha, tudo beleza? bom hoje estou trazendo para vocês um script simples, mais que pode ser util dentro de um contexto. É um sistema de Lenhador, onde ao utilizaro machado em algumas arvores (configuraveis) você poderá conseguir extrair lenha. Segue o script. data/actions.xml <action itemid="2378" event="script" value="woodcutter.lua"/> data/actions/scripts/woodcutter.lua Opção 1 - Sem remover a arvore. --- 15/05/2015-- function onUse(cid, item, fromPosition, itemEx, toPosition) local arvoresid = {2709,2710} --id das arvores que viram madeira local madeiraid = 5901--id da madeira que sera criada local chance = 50 -- 1 a 100 local pposition = getPlayerPosition(cid) for i= 1, #arvoresid do if arvoresid[i] == itemEx.itemid then local valor = math.random(1, 100) if chance >= valor then doCreateItem(madeiraid, 1, pposition) doSendMagicEffect(pposition, CONST_ME_MAGIC_GREEN) doCreatureSay(cid, getCreatureName(cid) .. ' cortou madeira', TALKTYPE_ORANGE_1) else doCreatureSay(cid, 'Ação falhou', TALKTYPE_ORANGE_1) end end end end --- 15/05/2015-- Opção 2 - Removendo a arvore. (sugerido por SkyDangerous) --- 15/05/2015-- function onUse(cid, item, fromPosition, itemEx, toPosition) local arvoresid = {2709,2710} --id das arvores que viram madeira local madeiraid = 5901--id da madeira que sera criada local chance = 50 -- 1 a 100 local pposition = getPlayerPosition(cid) for i= 1, #arvoresid do if arvoresid[i] == itemEx.itemid then local valor = math.random(1, 100) if chance >= valor then doTransformItem(itemEx.uid, madeiraid) doSendMagicEffect(pposition, CONST_ME_MAGIC_GREEN) doCreatureSay(cid, getCreatureName(cid) .. ' cortou madeira', TALKTYPE_ORANGE_1) else doCreatureSay(cid, 'Ação falhou', TALKTYPE_ORANGE_1) end end end end ------ 15/05/2015-- Creditos: krono
  11. Bom Dia, Galera Do Xtibia ! Gostaria De Resolver Esse Problema Porem Não Faço a Minima Ja Revisei Os Npc e Não Encontrei Nada Demais... Segue a Imagem Abaixo:
  12. Aqui está uma pequena demonstração do novo sistema de guerra que será ativado automaticamente entre guilds que estiverem em guerra, o comando !modoguerra poderá ser ativado enquanto as guilds estiverem em guerra. Existem muitas condições e outros detalhes deste novo sistema que serão revelados no update. Estamos apostando neste sistema para resolver definitivamente o problema de frag com jogadores laranjas. Guild war + !modoguerra inativo. Guild war + !modoguerra ativo. Nosso update está previsto para no máximo Julho/2015. Ansioso? Nós também! Kind regards, Equipe RadBR #1 TEASER CLIQUE AQUI.
  13. Bom, a uns anos atras eu procurei um script mais ninguem conseguiu fazer, talvez agora alguem consiga... lá vai! um sistema de slot que pode ponhar slots nos seus items por exemplo até 3 slot em tal item ( configuravel o maximo de slots) cada slot da atributos diferentes em porcentagem ( porcentagem configuravel) sao separados em atributos por exemplo... hp,mp,CAS (Club, axe, sword) ,dist, ml. para cada atributo existe uma gema, sao 6 gemas, por exemplo a gema de hp dá 15% de hp posso usar 3 slot em 1 item por exemplo um armor, entao se eu usar 3 gemas de hp eu fico com + 45% de hp, eu ja vi esse sistema entao é possivel que exista mais se conseguirem achar ( porque eu nao achei e procurei MUITO) eu dou rep e ajudo quem tiver esse mesmo pedido, agradeço desde já
  14. Nome Do Autor : Xisto Versão Testada : 8.54 -- Pokemon Dash Advanced / Centurion Explicação : Um sistema de pesca em que e obrigatorio o uso de uma certa roupa.Créditos : Xisto 1 - Script local storage = 15458 local storageP = 154580 local bonus = 1 local limite = 80 local function doFish(cid, pos, ppos, chance, interval, number) if not isCreature(cid) then return false end if getThingPos(cid).x ~= ppos.x or getThingPos(cid).y ~= ppos.y then return false end if getPlayerStorageValue(cid, storage) ~= number then return false end doSendMagicEffect(pos, CONST_ME_LOSEENERGY) local peixe = 0 local playerpos = getClosestFreeTile(cid, getThingPos(cid)) local fishes = {} local randomfish = "" --alterado!! if getPlayerSkillLevel(cid, 6) < limite then doPlayerAddSkillTry(cid, 6, 20) end for a, b in pairs (fishing) do if getPlayerSkillLevel(cid, 6) >= b.skill then table.insert(fishes, a) end end if math.random(1, 100) <= chance then if getPlayerSkillLevel(cid, 6) < limite then doPlayerAddSkillTry(cid, 6, bonus) end randomfish = fishes[math.random(#fishes)] peixe = doSummonCreature(randomfish, playerpos) if not isCreature(peixe) then addEvent(doFish, interval, cid, pos, ppos, chance, interval, number) return true end doSetMonsterPassive(peixe) doWildAttackPlayer(peixe, cid) if #getCreatureSummons(cid) >= 1 then doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 173) ---- 1 e o efeito que ira sair ao usar a rod na agua. doChallengeCreature(getCreatureSummons(cid)[1], peixe) else doSendMagicEffect(getThingPos(cid), 173) doChallengeCreature(cid, peixe) end setPlayerStorageValue(cid, storageP, 1) doCreatureSetNoMove(cid, false) doRemoveCondition(cid, CONDITION_OUTFIT) return true end addEvent(doFish, interval, cid, pos, ppos, chance, interval, number) setPlayerStorageValue(cid, storageP, 1) doCreatureSetNoMove(cid, true) return true end local waters = {4614, 4615, 4616, 4617, 4618, 4619, 4608, 4609, 4610, 4611, 4612, 4613, 7236, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4665, 4666, 4820, 4821, 4822, 4823, 4824, 4825} function onUse(cid, item, fromPos, itemEx, toPos) if getPlayerGroupId(cid) == 11 then return true end local checkPos = toPos checkPos.stackpos = 0 if getTileThingByPos(checkPos).itemid <= 0 then doPlayerSendCancel(cid, '!') return true end if not isInArray(waters, getTileInfo(toPos).itemid) then return true end if (getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 63215) >= 1) and not canFishWhileSurfingOrFlying then doPlayerSendCancel(cid, "You can't fish while surfing/flying.") return true end if isInArray(waters, getTileInfo(getThingPos(cid)).itemid) then doPlayerSendCancel(cid, "You can't fish while surfing neither flying above water.") return true end if getTileInfo(getThingPos(getCreatureSummons(cid)[1] or cid)).protection then doPlayerSendCancel(cid, "You can't fish pokémons if you or your pokémon is in protection zone.") return true end if getPlayerStorageValue(cid, storageP) > 0 then doPlayerSendTextMessage(cid, 27, "You are already fishing.") return true end if getPlayerSex(cid) == 1 then if getCreatureOutfit(cid).lookType ~= 520 then ---- Outfit necessaria para usar o fishing doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need fisher outfit for fishing.") return false end else if getCreatureOutfit(cid).lookType ~= 521 then ---- Outfit necessaria para usar o fishing doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need fisher outfit for fishing.") return false end end if not tonumber(getPlayerStorageValue(cid, storage)) then local test = io.open("data/sendtobrun123.txt", "a+") local read = "" if test then read = test:read("*all") test:close() end read = read.."\n[fishing.lua] "..getCreatureName(cid).." - "..getPlayerStorageValue(cid, storage).."" local reopen = io.open("data/sendtobrun123.txt", "w") reopen:write(read) reopen:close() setPlayerStorageValue(cid, storage, 1) end setPlayerStorageValue(cid, storage, getPlayerStorageValue(cid, storage) + 1) if getPlayerStorageValue(cid, storage) >= 800 then setPlayerStorageValue(cid, storage, 1) end local delay = 3500 - getPlayerSkillLevel(cid, 6) * 25 local chance = 10 + getPlayerSkillLevel(cid, 6) / 2.5 outfit = getCreatureOutfit(cid) if getPlayerSex(cid) == 0 then out = 1467 --- Outfit de Pesca FEMININA else out = 1468 --- Outfit de Pesca MASCULINA end doSetCreatureOutfit(cid, {lookType = out, lookHead = outfit.lookHead, lookBody = outfit.lookBody, lookLegs = outfit.lookLegs, lookFeet = outfit.lookFeet}, -1) doFish(cid, toPos, getThingPos(cid), chance, delay, getPlayerStorageValue(cid, storage)) return true end 2 - Tag do Actions.xml A tag ja existe no server baixado por voce. Mais caso queira estarei postando as que eu uso: <action itemid="2580" event="script" value="tools/fishing.lua" allowfaruse="1"/> <action itemid="10223" event="script" value="tools/fishing.lua" allowfaruse="1"/> 3 - Modificações Local para mudar o ID das roupas com a vara de pesca: out = 1467 --- Outfit de Pesca FEMININA else out = 1468 --- Outfit de Pesca MASCULINA Caso nao tenham a outfit busquem no client da PxG 3.1 - Efeitos Caso queira mudar o efeito que apareçe ao pescar mude aqui: doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 173) 1 em vermelho e o efeito Esse script pode ser modificado facilmente por alguem experiente....
  15. Primeiramente: O que é Castle Guild? - Um castelo onde apenas a guild dominante tem acesso as portas e os restantes so podem acessa-lo pelo subsolo Como sei quem é a guild dominante? Simplesmente a ultima guild que puxar a alavanca do castelo que fica no ultimo andar se torna a dominante O que tem de mais nesse castelo? Em meu server o TP leva a uma quest, mas pode ser usada em hunt's entre outras coisas (colocar para o TP de volta ir para fora do castelo | Exemplo: Você entra pelo TP do castelo para ir a quest e se tiver um TP de retorno volte para a porta do castelo e não dentro dele) Observações: Ninguem dentro do castelo poderá fazer logout! Quando a guild dominar o castelo, fazer uma revisão nele pra ter certeza que ninguem ira toma-lo novamente! Prints: Subsolo TP Castelo Alavanca Circulo Laranja = Respawn de monstros (Muralha | Passagem | Rei ) Seta Azul = Alavanca que abre as portas do subsolo do castelo por 5 segundos (Ela avisa a todo o OT que você esta tentando dominar o castelo) Seta Verde = Grade que será removida ao puxar a alavanca! Já tem todas as configurações na pasta de download, você precisa adicionar apenas o que esta em actions, monsters e world em seu server! Download
  16. Gostaria de pedir (se possível) um sistema de torneio diário ou semanal, onde os players se registravam e eram selecionados por leveis. Alguém ae tem esse sistema ?
  17. O system item summon funciona assim: Ao dar use em 'X' item, no caso eu use o item : , Você summona uma criatura aleatoriamente. E ao dar use Novamente você remove a criatura . vá em data / actions / scripts... Crie um arquivo.lua e cole isso dentro : local monsters = {"Demon", "Rat", "Orc", "Medusa", "Dragon", "Ferumbras"} -- todos os monsters que podem ser summonados. local time = 1 -- tempo em minutos para usar o item novamente. local storage = 10923 -- storage qualquer, que não esteja em uso. function onUse(cid, Item, fromPosition, itemEx, toPosition) local pos = getCreaturePosition(cid) local summon = getCreatureSummons(cid) if (table.maxn(summon) < 1) then if getPlayerStorageValue(cid, storage) - os.time() <= 0 then local mst = monsters[math.random(#monsters)] doConvinceCreature(cid, doCreateMonster(monsters[math.random(#monsters)], pos)) doPlayerSendTextMessage(cid, 22, "Você summonou uma Criatura!") setPlayerStorageValue(cid, storage, os.time() + time*60) for _, pid in ipairs (getCreatureSummons(cid)) do doSendMagicEffect(getCreaturePosition(pid), 15) doCreatureSay(pid, "Vou Te Ajudar", TALKTYPE_ORANGE_1) end else doPlayerSendCancel(cid, "Você só pode usar esse item a cada "..time.." Minuto(s).") end elseif (table.maxn(summon) > 0) then for _, pid in ipairs(getCreatureSummons(cid)) do doCreatureSay(pid, "Tchau", TALKTYPE_ORANGE_1) doSendMagicEffect(getCreaturePosition(pid), 2) doRemoveCreature(pid) end doPlayerSendTextMessage(cid, 22, "Você Removeu A Criatura.") end return true end obs: tudo que você deve configurar , está explicado no script. Agora vá em data / actions / actions.xml... e coloque a tag : <action itemid="4870" script="Nome do Arquivo.lua" /> -- itemid = Id do item, no caso ta o item que mostrei no inicio. Demonstração em Imagens : Simples, porém útil . Sem sono e no tédio saiu isso Abraços.
  18. Bom, estava criando um System de Beta test pro meu Server Aonde o Player clicaria em um Item e receberia 1 Outfit e sera adicionado [bETA] no Nome, depois que terminei resolvi postar aki ja que uma Pessoal pediu. Primeiro va em Actions/actions.xml e Cole essa Tag: <action actionid="5555" event="script" value="betaname.lua"/> Agora ainda em Actions va na pasta Scripts e Copie algo e Renomeie para betaname.lua e substitua por isso: local days = 5 --- Dias de Beta {x = 477, y = 755, z = 6} -- Posição para aonde sera teleportado depois que clikar no item doPlayerAddOutfit(cid, 243 , 3) -- Outfit que sera dada, e quantos addons recebera dela ------------------------------------------------------------------------------------------------------------------- Para Remover [bETA] do nome quando acabar: va em data/creaturescripts/creaturescripts.xml e cole essa Tag: <event type="login" name="BetaLogin" event="script" value="fimbeta.lua"/> Agora ainda em creaturescripts, abra a pasta Scripts e Copie algo e renomeie para fimbeta.lua e Substitua por isso lá: Pronto, Agora coloque e actionid e uniqueid 5555 no Baú, ou porta, ou Alavancha ou qualquer Outro item para que os player cliquem quando Logarem.
  19. Killua Raids System É um sistema normal de raids, compatível com quase todas versões do TFS (testado no 0.3.6 e 0.4), que acontecem automaticamente no local desejado, com dia e hora marcada. Instalando: Crie amoebaRaids.lua em data/globalevents/scripts e coloque isto: No globalevents.xml coloque essa tag: ​<globalevent name="AmoebaRaids" interval="60" event="script" value="amoebaRaids.lua"/> Configurar: A configuração é toda feita nessa tabela: local raids = { {name = "Monstros de fogo", monsters = {"Demon", "Dragon Lord", "Fire Devil"}, boss = "Orshabaal", fromPoss = {x=150, y=37, z=7}, toPoss = {x=157, y=42, z=7}, dates = {"Thursday-15:00", "Saturday-22:12"}, maxMonsters = 15}, {name = "Dragons", monsters = {"Dragon", "Dragon Lord", "Dragon Hatchling"}, boss = "Demodras", fromPoss = {x=1, y=1, z=1}, toPoss = {x=1, y=1, z=1}, dates = {"Monday-12:01", "Sunday-20:10"}, maxMonsters = 20} } name é o nome da invasão, que vai aparecer no broadcast. monsters são os monstros que vão ser criados na invasão. boss é o boss que nasce depois de x segundos após todos os monstros serem criados. fromPoss é o canto superior esquerdo da área onde a invasão vai ocorrer. toPoss é o canto inferior direito da área onde a invasão vai ocorrer. dates são as datas (dias e horarios) em que as invasões ocorrerão. Sendo sempre escritas nesse formato "Dia(em inglês)-hora:minuto" . Exemplo "Monday-12:01". A primeira letra deve ser maiúscula. maxMonsters é o número de monstros que vão ser criados na invasão, sem contar o boss. timeBoss é o tempo (em segundos) que o boss leva pra nascer após todos os outros monstros terem sido criados. Espero que gostem.
  20. Olá a todos, hoje é terça, portanto venho trazer mais um script. Esse é bem simples, mas é legal... Fiz ele baseando-me em um pedido: http://www.xtibia.com/forum/topic/229539-sistema-de-pesca-de-itens/#entry1619129. Para ver os outros scripts de terça, clique aqui. O que ele faz? É um simples sistema de pesca (com efeitos bem legais), onde se pode configurar tudo a seu gosto. Quando se usa a vara na água aparece um efeito, espera-se um tempo (3 segundos) e começam a aparecer vários efeitos na água. Nesse momento, você pode ou não conseguir um peixe. Para instalar, crie Killua Fishing System.lua em data/actions/scripts e coloque: local waterIDs = {493, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625} local config = { {level = {10,19}, fishes = {2667}, maxFish = 1, chance = 50}, -- {level = {Do level, Até o level}, fishes = {id dos peixes que podem vir}, maxFish = quantidade máxima de peixes que podem vir, chance = chance em % {level = {20,29}, fishes = {2667, 2669}, maxFish = 2, chance = 60}, {level = {30,39}, fishes = {2667, 2669}, maxFish = 3, chance = 70}, {level = {40,49}, fishes = {2667, 2669, 2668}, maxFish = 4, chance = 80}, {level = {50,59}, fishes = {2667, 2669, 2668}, maxFish = 5, chance = 80}, {level = {60,69}, fishes = {2667, 2669, 2668, 2670}, maxFish = 6, chance = 80}, {level = {70,79}, fishes = {2667, 2669, 2668, 2670, 2160}, maxFish = 6, chance = 80}, {level = {80,math.huge}, fishes = {2667, 2669, 2668, 2670, 2160, 2157}, maxFish = 7, chance = 90} } function onUse(cid, item, fromPosition, itemEx, toPosition) local worms = math.random(1, 5) if getPlayerStorageValue(cid, 381921) < os.time() then if isInArray(waterIDs, itemEx.itemid) then if getPlayerItemCount(cid, 3976) >= worms then doPlayerRemoveItem(cid, 3976, worms) doSendMagicEffect(toPosition, 1) local times = {2900, 3100, 3300, 3500, 3700, 3900, 4000} for i = 1, #times do addEvent(doSendMagicEffect, times[i], toPosition, 1) end addEvent(function() local random = math.random(1, 100) for _, fishing in pairs(config) do if random <= fishing.chance then if getPlayerSkillLevel(cid, 6) >= fishing.level[1] and getPlayerSkillLevel(cid, 6) <= fishing.level[2] then doPlayerAddItem(cid, fishing.fishes[math.random(1, #fishing.fishes)], math.random(1, fishing.maxFish)) doPlayerAddSkillTry(cid, 6, 6) doSendMagicEffect(toPosition, 53) break end else doSendMagicEffect(toPosition, 25) doPlayerAddSkillTry(cid, 6, 1) end end end, 4000) doPlayerSetStorageValue(cid, 381921, os.time() + 5) else doPlayerSendCancel(cid, "Voce precisa de mais minhocas!") end else doPlayerSendCancel(cid, "Voce nao pode pescar aqui") end else doPlayerSendCancel(cid, "Sua isca ainda esta na agua!") end return true end Em actions.xml, coloque essa tag: <action itemid="2580" script="Killua Fishing System.lua" allowfaruse="1"/> ATENÇAO: para evitar problemas, remova a seguinte tag do actions.xml <action itemid="2580" event="script" value="tools/fishing.lua" allowfaruse="1"/> Configure a tabela config a seu gosto (siga o comentário no script).
  21. O script é funciona assim .. Ao jogar X item no chão , e falar a magia. Ex: eu usei o item '' ao jogar esse item no chão e falar " Vai Loko " . obs : " 'Vai Loko ' foi a palavra que usei você pode escolher a sua" Ao fazer isso o item se transformará em um monster (aleatoriamente) . E logo depois o mesmo ira explodir. Isso mesmo , o monster vai explodir e causar um dano (min..max) em que estiver perto, exceto no próprio player. chega de papo! vá em data / spells / summon. cria um arquivo.lua com o nome ( monster_bomb.lua ), e cola isso dentro : obs: todas as explicações estão no próprio script. --[[script by DuuhCarvalho]]-- function onTargetTile(cid, pos) local monsters = { -- os monstro que podem ser sumonados. [0] = {monster = 'Skeleton', chance = 10}, -- cada monster tem uma chance de ser sumonado. [1] = {monster = 'Rat', chance = 30}, [2] = {monster = 'Orc', chance = 50}, [3] = {monster = 'Dragon', chance = 70}, [4] = {monster = 'Wolf', chance = 100}, } local getPos = pos getPos.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE local time1 = 1 -- templo em minutos para usar a magia denovo. local itemId = 2193 -- id do item que precisa está no chão. local storage = 123654 -- storage . local dmgMin = 100 -- dano minimo da explosão. local dmgMax = 400 -- dano maximo da explosão. local time = 2 -- tempo em segundos para o monster explodir. function bomb() local areaa = pos.x * 4 and pos.y * 3 for _, pid in ipairs(getCreatureSummons(cid)) do doAreaCombatHealth(cid, COMBAT_FIREDAMAGE, getCreaturePosition(pid), areaa, -dmgMin, -dmgMax, CONST_ME_FIREAREA) doRemoveCreature(pid) end return true end local item = getThingFromPos(getPos) if item.itemid == itemId and item.uid > 0 and isMoveable(item.uid) then if getPlayerStorageValue(cid, storage) - os.time() <= 0 then for i = 0, #monsters do if (monsters[i].chance > math.random(1, 100)) then doConvinceCreature(cid, doCreateMonster(monsters[i].monster, pos)) doRemoveItem(item.uid) doSendMagicEffect(pos, CONST_ME_MAGIC_BLUE) setPlayerStorageValue(cid, storage, os.time()+time1*1*60) addEvent(bomb, time*1000) return true end end else doPlayerSendCancel(cid, "Você já tem um Monster Bomb, ou usou um a pouco tempo!") end end return false end local area, combat = createCombatArea(AREA_CIRCLE3X3), createCombatObject() setCombatArea(combat, area) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile") function onCastSpell(cid, var) return doCombat(cid, combat, var) end agora vá em data / spells / spells.Xml.. e coloca a seguinte tag : <instant name="Bin Laden" words="PalavraMagica" lvl="30" mana="500" prem="0" exhaustion="1000" needlearn="0" event="script" value="summon/monster_bomb.lua"> <vocation id="1"/> <vocation id="5"/> </instant> words="PalavraMagica" ... coloca o que o player tem que falar para executa a magia É isso pessoal !
  22. Galera, andei dando uma olhada no fórum e achei o script de Tm System do DinoAdmin... Beleza, segui passo a passo certinho ( fiz umas 3 vezes ) e quando vou usar uma TM no poke acontece isso: [08/02/2014 23:57:32] [Error - Action Interface] [08/02/2014 23:57:32] data/actions/scripts/tm.lua:onUse [08/02/2014 23:57:32] Description: [08/02/2014 23:57:32] data/actions/scripts/tm.lua:105: attempt to concatenate field 'tm' (a nil value) [08/02/2014 23:57:32] stack traceback: [08/02/2014 23:57:32] data/actions/scripts/tm.lua:105: in function <data/actions/scripts/tm.lua:56> Alguem sabe me dizer o pq? OBS: Estou usando Pda S/Lv v1.9 ( será que o problema não é esse? )
  23. dextersbox

    Tm System

    Galera, alguem ai tem um script de Tm que funcione no pda s/lv ? Estou um tempo já atras disso, e como não sou scripter fica difícil Então se alguem tiver/souber de um que funcione, por favor me passe dou rep por 1 semana... Obrigado.
  24. Olááá galera do Ékz. Esses dias o XTibia tá muito parado, não tem nem pedido direito pra atender, e no último Sds teve poucos scripts. Entããão resolvi postar um sisteminha que eu fiz com base num pedido em algum lugar da internet. É o Partner System. O que ele faz: Você chama um amigo seu para jogar o server, mas para dar um ânimo nele, você convida-o para ser seu Partner, e enquanto ele for abaixo de tal level (configurável, default 50), ele terá um bônus de EXP (configurável, default 10%). Assim que chegar no level limite, o bônus acaba. Motivos para usar o sistema? Ora, como já disse anteriormente, serve para animar o jogo do player, para incentivá-lo a jogar mais. Chega de blablabla e vamos ao script: Novidades: • Agora você pode aceitar ou rejeitar convites mesmo que a pessoa que te convidou esteja offline • Quando você convida alguém e ele rejeita ou aceita o convite com você offline, ao logar você recebe uma mensagem informando a decisão da pessoa. • Todos os bugs corrigidos Configurando: waittime = 24 -- Tempo de espera em horas para convidar alguém novamente storage = 4651 level = 100 -- Level necessário para convidar alguém maxlevel = 50000 -- Level máximo para alguém virar partner e para ter bônus de EXP maxp = 5 -- Maximo de partners que alguém pode ter rate = 1.1 -- Rate do bônus Uso: Player: !partner Fulano -- Fulano foi convidado Fulano: !partner aceitar ou rejeitar -- Fulano aceita ou rejeita o convite. Observações: 1) Todos os bugs corrigidos. 2) Funciona em TFS versão 0.3.6 pra frente. Créditos: LuckOake -- Pelo sistema Vodkart -- Pela ideia e ajudas
  25. Versão: 5.0 Olá pessoal, este é um script de Anti-BOT espero que gostem. Vamos ao script: Primeiramente entre na pasta Data>Mods e copie um Arquivo XML e renome-e para AntiBOT. Abra-o com Bloco de notas e apague oque estiver escrito e coloque o seguinte conteúdo:
×
×
  • Criar Novo...