Jump to content

Search the Community

Showing results for tags 'creatureevent'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • 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

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Sou

  1. #Descrição:Este sistema baseia-se em evitar que a diferença de level dos players do seu servidor seja muito grande, reconhecendo, automaticamente, os players com os maiores levels do servidor e, então, enviando uma mensagem aos players anunciando uma recompensa em Gold Coins, que será fornecida a quem matar o referido Top Level. Após a morte do mesmo, o player que ganhou o frag recebe, instantaneamente, o prêmio correspondente. #O que possui? - Level Active (Script: Você poderá configurar o script para que o mesmo só funcione a partir do momento em que os players atingirem determinado level) - Fórmula do prêmio (Script: Configure a quantidade de dinheiro multiplicada pelo level do player a ser caçado. Ex: 700.LEVELDOPLAYER) - Periodicidade do anúncio (Script: Defina de quanto em quanto tempo a mensagem anunciando o player a ser caçado será exibida em broadcast) - Função Automática (Script: Verifica qual o player de maior level online e define-o como o player a ser caçado) - Tipo do arquivo (Script: Mods não precisa reniciar o servidor para colocar este sistema. Basta dar reload e ele funcionará normalmente) - Facilidade (Script: Só possui 1 arquivo onde serão feitas todas as configurações, sem a necessidade de um outro script) - Entre outras coisas… DOWNLOAD: CLICK AQUI Créditos: ChaitoSoft Jhon Thiagobji
  2. Eai pessoal. Bom, eu estou querendo um script que quando o player pega X level apareça uma mensagem na tela para ele, igual aquela quando se pega level 8 no global e aparece avisando que você já pode zarpar de rook. Agradeço desde já quem puder me ajudar.
  3. Galera galerosa, vim trazer o sistema de KD, nem vou explicar porque todo mundo sabe oque é KD. /data/lib/050-function: Tz453RsD[/pastebin] Script: vwGWDsXw[/pastebin] Tags: <event type="look" name="showKD" event="script" value="?.lua"/> <event type="kill" name="killKD" event="script" value="?.lua"/>
  4. O script consiste em não deixar que players da mesma guild se ataquem (se matem). creaturescripts.xml (data/creaturescripts): <event type="attack" name="attackguild" script="attackguild.lua"/> attackguild.lua (data/creaturescripts/scripts):
  5. Galera, eu queria um script de task com npc, seria 5 tasks, só pode pedir uma por vez, podendo cancelar caso queira, e ao finalizar as 5 tasks ganharia os addons 1 e 2 do assassin outfit, vlw!
  6. Em data\creaturescripts\scripts crie um aquivo com o nome de doublexp.lua: -- Monday = Segunda -- Tuesday = Terça -- Wednesday = Quarta -- Thursday = Quinta -- Friday = Sexta -- Saturday = Sabado -- Sunday = Domingo function onLogin(cid) DoubleDays = {"Thursday", "Sunday"} if isInArray(DoubleDays, os.date("%A")) then doPlayerSetRate(cid, SKILL__LEVEL, 2.0) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Hoje estamos em evento de Double XP,Aproveite.") end return true end Em creaturescripts.xml adicione a seguinte linha: <event type="login" name="DoubleXP" event="script" value="doublexp.lua"/> Para alterar os dias que ocorrem a DoubleXP basta alterar os dias em: DoubleDays = {"Thursday", "Sunday"}
  7. Resist: reduz o dano por x% Absorb: reduz o dano por x%, cura x% Reflect: Recebe todo o dano e da x% para o atacante Deflect: Reduz o dano por x% e da x% para o atacante creaturescript.lua local res = { {101, COMBAT_FIREDAMAGE}, {102, COMBAT_EARTHDAMAGE}, {103, COMBAT_ENERGYDAMAGE}, {104, COMBAT_ICEDAMAGE}, {105, COMBAT_HOLYDAMAGE}, {106, COMBAT_DEATHDAMAGE}, {107, COMBAT_PHYSICALDAMAGE}, {108, COMBAT_PHYSICALDAMAGE}, {109, COMBAT_FIREDAMAGE},{110, COMBAT_EARTHDAMAGE}, {111, COMBAT_ENERGYDAMAGE}, {112, COMBAT_ICEDAMAGE}, {113, COMBAT_HOLYDAMAGE}, {114, COMBAT_DEATHDAMAGE}, {115, COMBAT_PHYSICALDAMAGE}, {116, COMBAT_PHYSICALDAMAGE}, {117, COMBAT_FIREDAMAGE}, {118, COMBAT_EARTHDAMAGE}, {119, COMBAT_ENERGYDAMAGE}, {120, COMBAT_ICEDAMAGE}, {121, COMBAT_HOLYDAMAGE}, {122, COMBAT_DEATHDAMAGE}, {123, COMBAT_PHYSICALDAMAGE}, {124, COMBAT_PHYSICALDAMAGE}, {125, COMBAT_FIREDAMAGE}, {126, COMBAT_EARTHDAMAGE}, {127, COMBAT_ENERGYDAMAGE}, {128, COMBAT_ICEDAMAGE}, {129, COMBAT_HOLYDAMAGE}, {130, COMBAT_DEATHDAMAGE}, {131, COMBAT_PHYSICALDAMAGE}, {132, COMBAT_PHYSICALDAMAGE}, } local refs = { [COMBAT_PHYSICALDAMAGE] = CONST_ME_DRAWBLOOD, [COMBAT_ENERGYDAMAGE] = CONST_ME_ENERGYAREA, [COMBAT_EARTHDAMAGE] = CONST_ME_POISONAREA, [COMBAT_FIREDAMAGE] = CONST_ME_FIREAREA, [COMBAT_ICEDAMAGE] = CONST_ME_ICEAREA, [COMBAT_HOLYDAMAGE] = CONST_ME_HOLYAREA, [COMBAT_DEATHDAMAGE] = CONST_ME_MORTAREA } function onHealthChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin) if creature:isPlayer() then if primaryType == COMBAT_HEALING then return primaryDamage, primaryType, secondaryDamage, secondaryType end if creature:getCondition(CONDITION_ATTRIBUTES, CONDITIONID_COMBAT, 11) then if primaryType == COMBAT_DROWNDAMAGE then primaryDamage = 0 end if secondaryType == COMBAT_DROWNDAMAGE then secondaryDamage = 0 end end for i = 1, 8 do -- resist if creature:getCondition(CONDITION_ATTRIBUTES, CONDITIONID_COMBAT, res[i][1]) then if primaryType == res[i][2] or i == 8 then primaryDamage = (primaryDamage - (primaryDamage * (creature:getStorageValue(5) / 100))) end if secondaryType == res[i][2] or i == 8 then secondaryDamage = (secondaryDamage - (secondaryDamage * (creature:getStorageValue(5) / 100))) end end end for i = 9, 16 do -- reflect if creature:getCondition(CONDITION_ATTRIBUTES, CONDITIONID_COMBAT, res[i][1]) then if not attacker then return primaryDamage, primaryType, secondaryDamage, secondaryType end if primaryType == res[i][2] or i == 16 then local a = math.floor(primaryDamage * (creature:getStorageValue(5) / 100)) if attacker:isMonster() then local m = MonsterType(attacker:getName()) local e = m:getElementList() local f = m:getCombatImmunities() if type(f) == "number" then if f == primaryType then a = 0 end else for i, j in pairs(f) do if i == primaryType then a = 0 end end end if type(e) == "number" then if e == primaryType then if e > 0 then a = (a - (a * (e / 100))) else a = (a + (a * ((e * -1) / 100))) end end else for i, j in pairs(e) do if i == primaryType then if j > 0 then a = (a - (a * (j / 100))) else a = (a + (a * ((j * -1) / 100))) end end end end end doTargetCombatHealth(creature, attacker, primaryType, a, a, refs[primaryType]) end end end for i = 17, 24 do -- deflect if creature:getCondition(CONDITION_ATTRIBUTES, CONDITIONID_COMBAT, res[i][1]) then if not attacker then return primaryDamage, primaryType, secondaryDamage, secondaryType end if primaryType == res[i][2] or i == 24 then local a = math.floor(primaryDamage * (creature:getStorageValue(5) / 100)) if attacker:isMonster() then local m = MonsterType(attacker:getName()) local e = m:getElementList() local f = m:getCombatImmunities() if type(f) == "number" then if f == primaryType then a = 0 end else for i, j in pairs(f) do if i == primaryType then a = 0 end end end if type(e) == "number" then if e == primaryType then if e > 0 then a = (a - (a * (e / 100))) else a = (a + (a * ((e * -1) / 100))) end end else for i, j in pairs(e) do if i == primaryType then if j > 0 then a = (a - (a * (j / 100))) else a = (a + (a * ((j * -1) / 100))) end end end end end doTargetCombatHealth(creature, attacker, primaryType, a, a, refs[primaryType]) primaryDamage = (primaryDamage - (primaryDamage * (creature:getStorageValue(5) / 100))) secondaryDamage = (secondaryDamage - (secondaryDamage * (creature:getStorageValue(5) / 100))) end end end for i = 25, 32 do if creature:getCondition(CONDITION_ATTRIBUTES, CONDITIONID_COMBAT, res[i][1]) then if primaryType == res[i][2] or i == 32 then local a = math.floor(primaryDamage * (creature:getStorageValue(5) / 100)) creature:addHealth(a) primaryDamage = (primaryDamage - (primaryDamage * (creature:getStorageValue(5) / 100))) secondaryDamage = (secondaryDamage - (secondaryDamage * (creature:getStorageValue(5) / 100))) end end end end if primaryDamage == 0 and secondaryDamage == 0 and creature:isPlayer() then creature:getPosition():sendMagicEffect(CONST_ME_POFF) end return primaryDamage, primaryType, secondaryDamage, secondaryType end Exemplo local t = 60 * 1000 local v = 10 local resist = Condition(CONDITION_ATTRIBUTES) resist:setParameter(CONDITION_PARAM_BUFF_SPELL, 1) resist:setParameter(CONDITION_PARAM_SUBID, 108) resist:setParameter(CONDITION_PARAM_TICKS, t) player:addCondition(resist) player:setStorageValue(5, v) Créditos: RazorBlade
  8. Em Creaturescript Copie qualquer arquivo .lua e renomeie para onadvanced e cole isso. local vocs = { [1] = {id = 2268 , count = 200, msg = "Sua mensagem"} [2] = {id = 2268, count = 200, msg = "Sua Mensagem"}, [3] = {id = 7367, count = 30, msg = "Sua Mensagem"}, [4] = {id = 7620, count = 200, msg = "Sua Mensagem"}, [5] = {id = 2268, count= 200, msg = "Sua Mensagem"}, [6] = {id = 2268, count = 200, msg = "Sua Mensagem"}, [7] = {id = 7367, count = 30, msg = "Sua Mensagem"}, [8] = {id = 7620, count = 30, msg = "Sua Mensagem"}, } function onAdvance(cid, skill, oldlevel, newlevel) local easy = vocs[getPlayerVocation(cid)] if skill == SKILL__LEVEL and newlevel == 45 and getPlayerStorageValue(cid, 13409) < 1 then doPlayerSendTextMessage(cid, 20, easy.msg) doPlayerAddItem(cid, easy.id, easy.quant) setPlayerStorageValue(cid, 13409, 1) end return true end Em Creaturescript.xml <event type="Advance" name="OnAdvanced" event="script" value="onadvanced.lua"/> Em Login.lua Registra isso registerCreatureEvent(cid, "OnAdvanced") Créditos: Roksas Enself
  9. então gente eu queria um sistema de quando um player matar outro apareça no default em laranja tipo Y matou Z tipo assim, outro sistema que eu preciso é de não poder matar membros da propria party
  10. @Edit: Modifiquei o script, estava com um bug, summon não hitava, agora está 100%. Fala galera =D, estou aqui para trazer um novo sistema, muitos servidores tem isso, e muitos ot-admins não gostam nada disso, os monstros do servidor, quando lançam spell em área que atinge outro monstro, ele da hit no monstro, dai fiz esse sistema para acabar com essa sacanagem, agora, o player pode caçar, e terá mais dificuldades, pois, os outros monstros não poderão matar um ao outro, e melhor para o player, ele ganha mais exp U.u, então, vamos ao script: Em data/creaturescripts/scripts copie qualquer arquivo.lua, e renomeie para registerm, ficando assim:registerm.lua, substitua tudo que tem dentro dele por isso: function onStatsChange(cid, attacker, type, combat, value) if isMonster(attacker) and isPlayer(cid) then registerCreatureEvent(attacker, "Mstats") end return true end Agora, em data/creaturescripts/scripts/login.lua antes do ultimo return true coloque isso: registerCreatureEvent(cid, "Registerm") Em data/creaturescripts/creaturescripts.xml adicione as seguintes tags: <event type="statschange" name="Registerm" event="script" value="registerm.lua"/> <event type="statschange" name="Mstats" event="script" value="mstats.lua"/> Em data/creaturescripts/scripts copie qualquer arquivo.lua, e renomeie para mstats, ficando assim:mstats.lua, substitua tudo que tem dentro dele por isso: function isSummon(cid) -- baseada na função do Vodkart if getCreatureMaster(cid) then return true end return false end function onStatsChange(cid, attacker, type, combat, value) if isSummon(cid) then return true elseif isMonster(attacker) then return false end return true end Bom, galera é só isso, logo, quando terminar meu sistema de house, postarei no xtibia, player pode criar sua própria casa, em breve... Mais explicações sobre o Anti-Monster Kill Monster: Isso só funciona com monstro, ou seja, summon que atacar o monstro dará dano normalmente ao monstro, player quando atacar, a mesma coisa, só monstro vs monstro que não leva hit, obrigado, e bom divertimento.
  11. então gente alguem tem uma creaturescript que não de dano na pessoa da mesma party ?
  12. Para quem não sabe como funciona o script : Cada vocation ao atingir X level ganha uma X recompensa(podendo ganhar mais de um item por level). • Adicionando o script • Em "data/creaturescripts/scripts/vocreward.lua" : local c = { [{1,5}] = { [13] = {items = {{itemid = 2191, count = 1}}, storage = 40953}, [19] = {items = {{itemid = 2188, count = 1}}, storage = 40954}, [22] = {items = {{itemid = 8921, count = 1}}, storage = 40955}, [26] = {items = {{itemid = 2189, count = 1}}, storage = 40956}, [33] = {items = {{itemid = 2187, count = 1}, {itemid = 2152, count = 25}}, storage = 40957}, [37] = {items = {{itemid = 8920, count = 1}, {itemid = 2152, count = 50}}, storage = 40958}, [42] = {items = {{itemid = 8922, count = 1}, {itemid = 2160, count = 1}}, storage = 40959} }, [{2,6}] = { [13] = {items = {{itemid = 2186, count = 1}}, storage = 40953}, [19] = {items = {{itemid = 2185, count = 1}}, storage = 40954}, [22] = {items = {{itemid = 8911, count = 1}}, storage = 40955}, [26] = {items = {{itemid = 2181, count = 1}}, storage = 40956}, [33] = {items = {{itemid = 2183, count = 1}, {itemid = 2152, count = 25}}, storage = 40957}, [37] = {items = {{itemid = 8912, count = 1}, {itemid = 2152, count = 50}}, storage = 40958}, [42] = {items = {{itemid = 8910, count = 1}, {itemid = 2160, count = 1}}, storage = 40959} }, [{3,7}] = { [12] = {items = {{itemid = 2389, count = 5}}, storage = 40953}, [16] = {items = {{itemid = 2389, count = 10}}, storage = 40954}, [20] = {items = {{itemid = 3965, count = 10}}, storage = 40955}, [25] = {items = {{itemid = 7378, count = 10}}, storage = 40956}, [30] = {items = {{itemid = 2456, count = 1}, {itemid = 2544, count = 100}}, storage = 40957}, [35] = {items = {{itemid = 7364, count = 100}, {itemid = 2152, count = 75}}, storage = 40958}, [40] = {items = {{itemid = 7365, count = 100}, {itemid = 2160, count = 1}}, storage = 40959} }, [{4,8}] = { [15] = {items = {{itemid = 2409, count = 1}}, storage = 40953}, [30] = {items = {{itemid = 2392, count = 1}, {itemid = 2152, count = 75}}, storage = 40957}, [40] = {items = {{itemid = 2407, count = 1}, {itemid = 2160, count = 1}}, storage = 40959} } } function onAdvance(cid, skill, oldlevel, newlevel) if skill ~= SKILL__LEVEL then return true end for voc, x in pairs(c) do if isInArray(voc, getPlayerVocation(cid)) then for level, z in pairs(x) do if newlevel >= level and getPlayerStorageValue(cid, z.storage) ~= 1 then local text = "" for v = 1, #z.items do count, info = z.items[v].count, getItemInfo(z.items[v].itemid) local ret = ", " if v == 1 then ret = "" elseif v == #z.items then ret = " and " end text = text .. ret text = text .. (count > 1 and count or info.article).." "..(count > 1 and info.plural or info.name) doPlayerAddItem(cid, z.items[v].itemid, z.items[v].count) end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Parabens, voce alcancou o level "..level.." e obteve "..text..".") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_FIREWORK_YELLOW) setPlayerStorageValue(cid, z.storage, 1) end end end end return true end Em "data/creaturescripts/creaturescripts.xml" : <event type="advance" name="VocReward" event="script" value="vocreward.lua"/> Em "data/creaturescripts/scripts/login.lua" : registerCreatureEvent(cid, "VocReward") • Configurando • Créditos: ViitinG
  13. Todo mundo já sabe que quando queremos "colocar" algum script em creaturescripts alguns precisam ser registrado. O registro e para que o evento inicie quando o player logar. Mais muitas vezes o cadastramento consome linhas e tempo. Pensando nisso desenvolvi um código para que o próprio usuário registre o evento na tag Vamos a instalação. Crie um arquivo lua chamado de register em lib e coloque este código: function getEventRegisterName() local x = {} local events = io.open("data/creaturescripts/creaturescripts.xml", "r") for i in events:read("*a"):gmatch('name="(.-)"') do table.insert(x, i) end return x or nil end function getEventRegisterTrueByName(name) local x = {} local events = io.open("data/creaturescripts/creaturescripts.xml", "r") for i in events:read("*a"):gmatch('name="'..tostring(name)..'" register = "(.-)"') do table.insert(x, tonumber(i)) end return x[1] or nil end function registerEvents(cid) for y = 1, #getEventRegisterName() do local x = getEventRegisterName()[y] if getEventRegisterTrueByName(x) == 1 then registerCreatureEvent(cid, x) end end end Agora vá em creaturescripts em login.lua antes do ultimo return true Exclua todos os registro de evento: Eles são estarão assim: registerCreatureEvent(cid, "event") Depois no mesmo lugar coloque isto: registerEvents(cid) Agora em TODAS AS SUAS TAGS isto entre name e event. register = "1" (Sendo que 1 e ativado e 0 Desativado) Ela ficara assim: <event type="joinchannel" name="mens" register = "1" event="script" value="mensagens.lua"/> Pronto sistema instalado Para usar e simples. E so colocar na tag E colocar a 1(verdadeiro ativado) ou o(false desativado)
  14. Iai, pessoal blz? Estou aqui para postar uma gambiarra que eu fiz kkk está gambiarra deixa o player impossível de passar do levle 100 , se ele passar deste level o script fará ele voltar do level dele por 100, por exemplo, to level 99, dai eu upo uns 10 level, e fico no level 109, ai o script faz voltar pro level 100. é uma gambiarra grande hein kkk, tomei como base uns scripts que vi com o tempo, eu testei e está funcionando 100% então espero que gostem em creaturescripts/scripts crie um arquivo com o nome de MaxLevel.lua então coloque isto dentro: local level = 100 function onAdvance(cid, skill, oldLevel, newLevel) if skill == 8 then if getPlayerLevel(cid) >= level then doPlayerSetRate(cid, 8, 0.0) doPlayerSetExperienceRate(cid, 0.0) doPlayerAddExp(cid, getExperienceForLevel(level)-getPlayerExperience(cid)) doPlayerSendCancel(cid, "Você atingiu o level limite de ".. level .."!") end end return true end Agora em login.lua adicione isto com as linhas semelhantes: registerCreatureEvent(cid, "MaxLevel") E para finalizar vá em creaturescript.xml e adicione isto: <event type="advance" name="MaxLevel" event="script" value="Maxlevel.lua"/> Pronto! Script adicionado e funcionando! Espero que gostem! vlw e fuis
  15. Iai, pessoal blz? Estou aqui para postar uma gambiarra que eu fiz kkk está gambiarra deixa o player impossível de passar do levle 100 , se ele passar deste level o script fará ele voltar do level dele por 100, por exemplo, to level 99, dai eu upo uns 10 level, e fico no level 109, ai o script faz voltar pro level 100. é uma gambiarra grande hein kkk, tomei como base uns scripts que vi com o tempo, eu testei e está funcionando 100% então espero que gostem em creaturescripts/scripts crie um arquivo com o nome de MaxLevel.lua então coloque isto dentro: local level = 100 function onAdvance(cid, skill, oldLevel, newLevel) if skill == 8 then if getPlayerLevel(cid) >= level then doPlayerSetRate(cid, 8, 0.0) doPlayerSetExperienceRate(cid, 0.0) doPlayerAddExp(cid, getExperienceForLevel(level)-getPlayerExperience(cid)) doPlayerSendCancel(cid, "Você atingiu o level limite de ".. level .."!") end end return true end Agora em login.lua adicione isto com as linhas semelhantes: registerCreatureEvent(cid, "MaxLevel") E para finalizar vá em creaturescript.xml e adicione isto: <event type="advance" name="MaxLevel" event="script" value="Maxlevel.lua"/> Pronto! Script adicionado e funcionando! Espero que gostem! vlw e fuis Tópico duplicado! Desculpem-me! Poderiam Excluir este tópico??
  16. Créditos à zipter98. Objetivo Aparecerá uma mensagem no Local Chat avisando que x jogador matou x boss. O player [NickDoPlayer] matou o boss [NomeDoBoss]! Tutorial Vá em data/creaturescripts/scripts e crie o arquivo anunciomonstro.lua local monster = "monster_name" --Nome do monstro. function onDeath(cid, corpse, deathList) if isMonster(cid) and getCreatureName(cid) == monster and isPlayer(deathList[2] or deathList[1]) then broadcastMessage("O player "..getCreatureName(deathList[2] or deathList[1]).." matou o boss "..monster.."!") end return true end Em data/creaturescripts, abra o arquivo creaturescripts.xml e coloque a tag (coloque antes de </creaturescripts>): <event type="death" name="anuncioServer" event="script" value="anunciomonstro.lua"/> Depois, em data/monster, abra o arquivo XML do monstro e coloque, antes do </monster>, isso: <script> <event name="anuncioServer"/> </script>
  17. Explicação: Enquanto andar com o full addon de algumas ouflits irá sair efeito. Creaturescripts/scripts: creaturescripts.xml: <event type="login" name="EffectOutLogin" event="script" value="outfiteffect.lua"/> <event type="outfit" name="OutfitEffects" event="script" value="outfiteffect.lua"/> Configurando: local effect = { [136] = 3, [128] = 3, -- citizen [270] = 27,[273] = 27, -- jester [156] = 61,[152] = 61, -- assassin [147] = 44,[143] = 44, -- barbarian [148] = 45,[144] = 45, -- druid [157] = 68,[153] = 68, -- beggar [149] = 36,[145] = 36, -- wizard [279] = 17,[278] = 17, -- brotherwood [137] = 39,[129] = 39, -- hunter [141] = 66,[133] = 66, -- summoner [142] = 34,[134] = 34, -- warrior [155] = 31,[151] = 31, -- pirate [158] = 46,[154] = 46, -- shaman [288] = 6,[289] = 6 -- demonhunter } Em [] é o ID da ouflit e depois do = é o número do efeito
  18. Kill Player + Exp eu preciso do scrip eu teno um ot d war eu nao quero que os player ten dando 1 level al mourer. eu quero que de exp ejemplo.. 50000x
  19. 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!
  20. Então tenho uma script que da recompensa para o jogador dependendo o level que ele pegue, e queria saber como transforma-la em um script que da a recompensa de acordo com a Vocação do player. Exemplo: Knight upou level 100 ganha uma sword, um axe e um club. Druid upou level 100 ganha Rod. Etc... não precisaria ser 1 Script para toda vocação pode ser 1 script para cada vocação que já ajuda só destacando aonde teria que mudar o ID das vocações. levelitem.lua Tag: Login.lua
  21. Já existe um sistema parecido no fórum, mas esse possui um código menor e também é funcional em 0.3.6 e 0.4 Em data\creaturescripts\scripts crie um arquivo chamado Antimagebomb.lua local config = { max = 3, text = "Multi-Client or Magebomb is not allowed.", group_id = 1 -- it will only kick player whit that id (1=Players, 2=tutor, 3=seniortutors, 4=Gm's, 5=Cm's and 6=God's } local accepted_ip_list = "" local function antiMC(p) if (getCreatureName(p.pid) == "Account Manager") then return true end if #getPlayersByIp(getPlayerIp(p.pid)) >= p.max then doRemoveCreature(p.pid) end return TRUE end function onLogin(cid) if not(isPlayer(cid)) then return true end if (getCreatureName(cid) == "Account Manager") then return true end if(getConfigValue("antimulticlient")) then if getPlayerGroupId(cid) <= config.group_id then if isInArray(accepted_ip_list,getPlayerIp(cid)) == FALSE then addEvent(antiMC, 1000, {pid = cid, max = config.max+1}) doPlayerSendTextMessage(cid, 19, config.text) end end end return TRUE end Em creaturescripts.xml <event type="login" name="Antimagebomb" event="script" value="Antimagebomb.lua"/> Na linha é o máximo de players que podem logar por ip: max = 3,
  22. Bem galera,eu tenho um servidor 8.60 REal server 1.7 global e estava testando as tasks,a 1° task o grizzly adams me mandou fazer a task dos 5000 minotauros,e deu certo porém na 2° Task dos necromancers,ele pedia que matasse 4000 magicians...necromancers/priestess porém assim que matava o necromancer ou a priestess não aparecia em azul como kill x/4000 e quando falava com npc ele dizia : Grizzly Adams: Current 0 Magicians killed, you need to kill 4000. porém mesmo matando não entra na contagem,gostaria de saber o que há de errado.... o porque não conta e como faço pra configurar certo.
  23. vai em data\globalevents\scripts cria um arquivo com nome parede_que_atira.lua coloca isso -- config by uotl£ -- distancia contando os quadros no chao ate chegar a parede resumo tamanho do raio -- lado_raio 1 ->> 2 <<-- 3 / \ 4 | -- | \ / effect = efeito pos = posição dano = porcentagem do dano local config = { {effect = 30,pos = {x = 143, y = 120, z = 7},distancia = 7,dano = 34,lado_raio = 3}, --{effect = 29,pos = {x = 131, y = 47, z = 7},distancia = 3,dano = 34,lado_raio = 2}, --{effect = 28,pos = {x = 131, y = 48, z = 7},distancia = 5,dano = 34,lado_raio = 3}, --{effect = 28,pos = {x = 131, y = 48, z = 7},distancia = 6,dano = 34,lado_raio = 4} } -- config by uotl£ function onThink(cid, interval, lastExecution) atirador () return true end function atirador () for sinal, valor in pairs(config) do for i = 1,valor.distancia do if valor.lado_raio == 1 then doSendMagicEffect({x = valor.pos.x+i, y = valor.pos.y, z = valor.pos.z},valor.effect) check = {x = valor.pos.x+i, y = valor.pos.y, z = valor.pos.z,stackpos=255} elseif valor.lado_raio == 2 then doSendMagicEffect({x = valor.pos.x-i, y = valor.pos.y, z = valor.pos.z},valor.effect) check = {x = valor.pos.x-i, y = valor.pos.y, z = valor.pos.z,stackpos=255} elseif valor.lado_raio == 3 then doSendMagicEffect({x = valor.pos.x, y = valor.pos.y-i, z = valor.pos.z},valor.effect) check = {x = valor.pos.x, y = valor.pos.y-i, z = valor.pos.z,stackpos=255} elseif valor.lado_raio == 4 then doSendMagicEffect({x = valor.pos.x, y = valor.pos.y+i, z = valor.pos.z},valor.effect) check = {x = valor.pos.x, y = valor.pos.y+i, z = valor.pos.z,stackpos=255} end tmp = getThingFromPos(check) if(tmp.uid ~= 0) then if isPlayer(tmp.uid) then -- se quer que attack os bichos usa esse "if isCreature(tmp.uid) then" p = (getCreatureMaxHealth(tmp.uid)/100)*valor.dano doCreatureAddHealth(tmp.uid, -p) doSendAnimatedText(getCreaturePosition(tmp.uid), math.ceil (p),145) end end end end end TAG em data\globalevents\globalevents.xml coloca isso <globalevent name="parede_que_atira" interval="5" event="script" value="parede_que_atira.lua"/> uma demostração em video
  24. Recompense Kill Saudações meus anjos, estive um tempo sem postar absolutamente nada, voltei já com algumas ideias e vim trazer para vocês! Este é um sistema, no qual ao matar um PK (White Skull), você recebe uma recompensa, (25 gold coins por level do PK) - Configurável. Exemplo, ele tem level 200 (200x25) = 5k para você disfrutar Instalação Vá em data/creaturescripts/scripts, copie algum arquivo da pasta e cole, renomeie para recompense.lua e coloque isto dentro: Abra com o bloco de notas o arquivo creaturescripts.xml e adicione estas tags: <event type="login" name="LoginRgst" event="script" value="recompense.lua"/> <event type="kill" name="Recompense" event="script" value="recompense.lua"/> Configuração Na primeira linha de todas do código, no caso esta: local moneyPerLevel = 25 Você configura quantos gold coins recebe por level do PK. Assim formando uma conta como explicado na Introdução. Esta conta irá multiplicar o level do PK pela quantidade de gold coins recebe por level, assim dando uma leve recompensa ao killer. Demonstração
  25. Créditos: Snowsz Em creaturescripts.xml adicione essa tag: <event type="advance" name="SkillUpText" event="script" value="skilluptext.lua"/> Em creaturescripts/scripts crie um arquivo com o nome "skilluptext.lua" e troque tudo que tem dentro por isso: local config = { [0] = {msg = "Fist UP!", textcolor = 0}, [1] = {msg = "Club UP!", textcolor = 0}, [2] = {msg = "Sword UP!", textcolor = 0}, [3] = {msg = "Axe UP!", textcolor = 0}, [4] = {msg = "Dist UP!", textcolor = 0}, [5] = {msg = "Shield UP!", textcolor = 0}, [6] = {msg = "Fish UP!", textcolor = 0}, [7] = {msg = "Magic UP!", textcolor = 0}, [8] = {msg = "Level UP!", textcolor = 0} } function onAdvance(cid, skill, oldlevel, newlevel) if config[skill] then doSendAnimatedText(getThingPos(cid), config[skill].msg, config[skill].textcolor) end return true end Em creaturescripts/scripts, abra o login.lua e antes do último return true adicione essa função: registerCreatureEvent(cid, "SkillUpText")
×
×
  • Create New...