Ir para conteúdo

Entus

Campones
  • Total de itens

    23
  • Registro em

  • Última visita

Sobre Entus

Informações

  • Forma que conheci o xTibia
    Otservs
  • Sou
    Scripter

Últimos Visitantes

802 visualizações

Entus's Achievements

  1. Entus

    Aulinhas

    Queria saber se nesse fórum existe aulas de scripting e se tem vaga, não sei se poderia postar aqui mas postei (AHUHUAHU)
  2. Entus

    Sobre banimento

    Não sei se posso fazer essa pergunta aqui, se não puder, me avise. Alguém aí sabe por que o membro Vodkart foi banido? Sou meio newfag no xtibia ainda.
  3. Ah, eu testei em Tfs 1.0, vou fazer um mais elaborado e te mando no PM. Até!
  4. Fiz rápido, bem simples porém creio que funcione. Crie um arquivo chamado goldenpaper.lua em data/actions/scripts e coloque isso: function onUse(cid, item, fromPosition, toPosition) local voc = {1} --id da vocação local scroll = {} --id do item local efeito = {} -- efeito if item.uid == scroll then doPlayerSetVocation(cid, voc) doSendMagicEffect(cid, efeito) end return true end Agora em actions.xml, adicione essa tag: <action actionid="id do item" script="goldenpaper.lua"/>
  5. Como eu disse, para saber mais sobre como criar um mob é só dar uma procurada! Tem vários tutoriais ensinando passo a passo.
  6. esse não foi eu, é um antigo que achei pelo PC. Não vi nenhum parecido aqui no fórum e resolvi postar.
  7. Falaê, vi esse script em outro fórum porém tava meio bugado e fiz algumas alterações, pequenas mas que ajudaram no funcionamento. Quando prende o player ele não fica mais em um local fixo, você pode configurar para coloca-lo em outras celas. O tempo pode ou não ser fixo, é só você digitar /jail (nome do player) para um tempo fixo ou /jail (nome do player), (tempo) para coloca-lo com um tempo especifico. OBS: O tempo é posto em segundos. (120 segundos = 2 minutos) TAG, talkaction.xml: <talkaction log="yes" words="/jail;!jail;/prender;!prender;/unjail;!unjail;/desprender;!desprender" access="3" event="script" value="prision.lua"/> Script, data/talkaction/prision.lua: grouprequired = 3 jailedstoragevalue_time = 1338 jailedstoragevalue_bool = 1339 local jailpos = { [1] = {x = 59, y = 52, z =6}, [2] = {x = 59, y = 52, z =5}, [3] = {x = 55, y = 47, z =6}, [4] = {x = 55, y = 47, z =5}, [5] = {x = 55, y = 52, z =6}, [6] = {x = 55, y = 52, z =5}, [7] = {x = 59, y = 47, z =5}, [8] = {x = 63, y = 52, z =5} } local unjailpos = { x = 63, y = 54, z =6 } jail_list = {} jail_list_work = 0 function checkJailList(param) addEvent(checkJailList, 1000, {}) for targetID,player in ipairs(jail_list) do if isPlayer(player) == TRUE then if getPlayerStorageValue(player, jailedstoragevalue_time) < os.time() then doTeleportThing(player, unjailpos, TRUE) setPlayerStorageValue(player, jailedstoragevalue_time, 0) setPlayerStorageValue(player, jailedstoragevalue_bool, 0) table.remove(jail_list,targetID) doPlayerSendTextMessage(player, MESSAGE_STATUS_CONSOLE_ORANGE, 'Você saiu da cadeia, tente não fazer coisas malvadas da próxima vez para não ser preso novamente. Cuide-se amigo.') end else table.remove(jail_list,targetID) end end end function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return true end local t = string.explode(param, ",") if jail_list_work == 0 then jail_list_work = addEvent(checkJailList, 1000, {}) end local jail_time = -1 for word in string.gmatch(tostring(t[1]), "(%w+)") do if tostring(tonumber(word)) == word then jail_time = tonumber(word) end end local isplayer = getPlayerByName(t[1]) if isPlayer(isplayer) ~= TRUE then isplayer = getPlayerByName(string.sub(t[1], string.len("jail_time")+1)) if isPlayer(isplayer) ~= TRUE then isplayer = getPlayerByName(string.sub(t[1], string.len("jail_time")+2)) if isPlayer(isplayer) ~= TRUE then isplayer = getPlayerByName(string.sub(t[1], string.len("jail_time")+3)) end end end local default_jail = 30 if(t[2]) then default_jail = t[2] end if jail_time ~= -1 then jail_time = jail_time * 60 else jail_time = default_jail end if (words == '!prender' or words == '/prender') then if getPlayerGroupId(cid) >= grouprequired then if isPlayer(isplayer) == TRUE then doTeleportThing(isplayer, jailpos[math.random(#jailpos)], TRUE) setPlayerStorageValue(isplayer, jailedstoragevalue_time, os.time()+jail_time) setPlayerStorageValue(isplayer, jailedstoragevalue_bool, 1) table.insert(jail_list,isplayer) doPlayerSendTextMessage (cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Você prendeu o player: '.. getCreatureName(isplayer) ..' ate ' .. os.date("%H:%M:%S", getPlayerStorageValue(isplayer, jailedstoragevalue_time)) .. ' (agora é: ' .. os.date("%H:%M:%S", os.time()) .. ').') doPlayerSendTextMessage (isplayer, MESSAGE_STATUS_CONSOLE_ORANGE, 'Voce foi preso por '.. getCreatureName(cid) ..' ate ' .. os.date("%H:%M:%S", getPlayerStorageValue(isplayer, jailedstoragevalue_time)) .. ' (agora é: ' .. os.date("%H:%M:%S", os.time()) .. ').') else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Este jogador não existe ou esta offline.") end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você não tem permissão para prender players.") end elseif (words == '!desprender' or words == '/desprender') then if getPlayerGroupId(cid) >= grouprequired then if isPlayer(isplayer) == TRUE then if getPlayerStorageValue(isplayer, jailedstoragevalue_bool) == 1 then doTeleportThing(isplayer, unjailpos, TRUE) setPlayerStorageValue(isplayer, jailedstoragevalue_time, 0) setPlayerStorageValue(isplayer, jailedstoragevalue_bool, 0) table.remove(jail_list,targetID) doPlayerSendTextMessage(isplayer, MESSAGE_STATUS_CONSOLE_ORANGE, 'O player '.. getCreatureName(cid) ..' te tirou da prisão. Te vejo em breve!!!') doPlayerSendTextMessage (cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Você tirou da prisão o player: '.. getCreatureName(isplayer) ..'.') else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Este jogador não está preso.") end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Este jogador não existe ou esta offline.") end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você não tem permissão para prender players.") end end return true end Configuração: local jailpos = { -- Local das selas onde o player vai aparecer. local unjailpos = { x = 63, y = 54, z =6 } -- Local onde ele irá sair. local default_jail = 30 -- Tempo padrão. Créditos: Comedinha, por postar pela primeira vez. Eu, por arrumar alguns bugs. Enjoy it!
  8. 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!
  9. Entus

    Heal Friend

    Fala aí gurizada. Hoje vou trazer um script que não tenho visto muito em ot's 8.54, ou em qualquer outra versão, e eu acho ele bem útil para Druid/Sorcerer. OBJETIVO: Curar um amigo, ou seja, vamos usar um exemplo. Quero curar meu amigo que está com a vida baixa, vou usar o comando Ultra Heal "Amigo. Ok, vamos ao script. Em data/spells/scripts crie um arquivo com o nome de healaamigo.lua e dentro coloque: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_PINK) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setHealingFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 10, 10, 16, 22) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Depois de ter feito isto abra o spells.xml e coloque embaixo de uma spell a seguinte linha: <instant name="Ultra Heal" words="ultra heal" lvl="50" mana="200" prem="0" aggressive="0" needtarget="1" params="1" exhaustion="1000" groups="2,1000" icon="84" needlearn="0" event="script" value="healing/healaamigo.lua"> <vocation id="2"/> <vocation id="6"/> </instant> Eu coloquei para Druid e Sorcerer usarem, caso queira que mais vocations tenham essa spell é só colocar os ids delas. Espero que usem. Enjoy it!
  10. Coé xtibianos. Vi que alguns membros do fórum estavam com uma dúvida e não vi nenhum post sobre isso, decidi fazer um aqui. A galera tava com um bug na script e blá blá. OBJETIVO: Fazer com que o mob, ao morrer, deixe um teleporte por um tempo (configurável) e que esse teleporte leve para tal lugar (configurável). Vamos ao Script: IREMOS USAR O MOB KYUUBI/CHAKRA BIJUU COMO EXEMPLO! Primeiro de tudo vá em data/monster e adicione o chakrabijuu.xml <?xml version="1.0" encoding="UTF-8"?><monster name="The Chakra Bijuu Control" nameDescription="The Chakra Bijuu Control" race="blood" experience="8000" speed="450" manacost="0"> <health now="76065000" max="76065000"/> <look type="124" head="0" body="94" legs="79" feet="79" corpse="2815"/> <targetchange interval="5000" chance="50"/> <strategy attack="90" defense="20"/> <flags> <flag summonable="1"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="0"/> <flag convinceable="1"/> <flag pushable="0"/> <flag canpushitems="1"/> <flag canpushcreatures="1"/> <flag targetdistance="1"/> <flag staticattack="65"/> <flag runonhealth="0"/> </flags> <attacks> <attack name="melee" interval="800" min="-550" max="-640"/> <attack name="manadrain" interval="1000" chance="10" range="7" min="-760" max="-815"> <attribute key="areaEffect" value="redshimmer"/> </attack> <attack name="Bijuu Furie" interval="1000" chance="100" radius="4" target="0" min="-8340" max="-10600"> </attack> <attack name="Bijuu Punch" interval="2000" chance="100" target="0" min="-8440" max="-10100"> </attack> <attack name="Biju Dama" interval="2000" chance="100" target="0" min="-10440" max="-13100"> </attack> </attacks> <defenses armor="110" defense="110"> <defense name="healing" interval="2000" chance="40" min="300" max="300"> <attribute key="areaEffect" value="blueshimmer"/> </defense> <defense name="speed" interval="4000" chance="40" speedchange="600" duration="4000"> <attribute key="areaEffect" value="redshimmer"/> </defense> </defenses> <elements> <element physicalPercent="20"/> <element icePercent="10"/> <element holyPercent="-15"/> <element deathPercent="35"/> </elements> <immunities> <immunity poison="1"/> <immunity lifedrain="1"/> <immunity outfit="1"/> <immunity drunk="1"/> <immunity invisible="1"/> </immunities> <voices interval="5000" chance="10"> <voice sentence=".." yell="1"/> </voices> <loot> </loot> <script> <event name="the bijuu chakra control"/> </script> </monster> (PARA SABER MAIS SOBRE COMO CRIAR UM MOB, DÊ UMA PROCURADA HEHEHEH) Depois de ter feito isso, vá em monster.xml e adicione a tag: <monster name="The Chakra Bijuu Control" file="pasta/chakrabijuu.xml"/> Agora vá em data/creaturescripts/scripts, crie um .lua chamado chakrabijuu e adicione isso: local boss = { ["The Chakra Bijuu Control"] = {destiny = {x=174, y=2019, z=7}, time = 50, portalid = 1026} } function removePortal(pos) doRemoveThing(getTileItemById(pos, b.portalid).uid, 1) return true end function onDeath(cid) local b, pos = boss[getCreatureName(cid)], getCreaturePosition(cid) if b then doSendMagicEffect(pos, CONST_ME_TELEPORT) doCreateTeleport(b.portalid, b.destiny, pos) addEvent(removePortal, b.time*1000, pos) doCreatureSay(cid, "Eu ainda retornarei, guarde isso. O teleporte irá sumir em "..b.time.." segundos.", TALKTYPE_ORANGE_1) end return true end Em {destiny = {x=174, y=2019, z=7}, como já diz a palavra, você põem o destino do teleporte. Em time = 50, você põem o tempo que o teleporte vai ficar spawnado. Último passo, vá até data/creaturescripts, abra o creaturescripts.xml e adicione a tag: <event type="death" name="the bijuu chakra control" event="script" value="chakrabijuu.lua"/> Foi um tutorial curto mas acho que vai ajudar os membros que estavam com dúvida. Créditos: Wise Até a próxima, enjoy!!
  11. @UP E se eu quiser criar muitas scrolls pra muitas vocations? Terei de fazer várias tags? Como ficaria o nome dessas scripts/tags? EX: Quero criar Naruto the last e Sasuke the last.
  12. Entus

    Kamui me (NTO, 8.54)

    Ainda não consegui consertar. @UP Aguardo alguma script funcional =]
  • Quem Está Navegando   0 membros estão online

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