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. Ola eu Notei que A Maioria dos Ot Serv de Poketibia que baixamos e colocamos online, os nossos playes Perdem Level apois Morrerem e Pra voce que quer retirar isso de seu servidor, deixar quando os Jogadores Morrerem e Nao perderem level Voces vao fazer o seguinte. Vai em Pasta do seu Ot/ Data/ creaturescript/ Script/ e Abra o arquivo chamado "Login.lua" Apois Abrir Aperte "Ctrl+F" E Digite: doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, 100) Ali onde Esta o 100 Voces Coloca 0. Vai Ficar Assim: Apois isso Salve e ligue o ot e divirta-se Espero que Tenham Gostado, Eu nao sei se já existe um Tutorial Assim. Se gostou REP+ ^^
  2. Olá Pessoal, Hoje eu gostaria de apresentar um script diferente. O que ele faz? se você abrir um documento gravável e digite uma palavra certa, então ele vai sumonar um monstro, Você pode definir certos monstros para exigir valores de armazenamento, se você escolher. Terá uma exhuast de 60 segundos entre citação, pode ser alterada. Então vamos la abra seuot/data/creaturescripts/scripts copie um arquivo lua e nomeie de summon. E cole isso dentro da pasta: local t = { ["Demon"] = {monster = "Demon", storage = 7890, secondstorage = 8890, time = 60, message = "Voce esta atualmente incapaz de convocar esse monstro! A fim de chamar esse monstro, voce deve completar a missao XXX"}, --o primeiro storage e o storage necessario para invocar monstros ["Dragon Lord"] = {monster = "Dragon Lord", storage = 7891, secondstorage = 8891, time = 60, message = "Voce esta atualmente incapaz de convocar esse monstro! A fim de chamar esse monstro, voce deve completar a missao XXX"}, ["Hydra"] = {monster = "Hydra", storage = 7892, secondstorage = 8892, time = 60, message = "Voce esta atualmente incapaz de convocar esse monstro! A fim de chamar esse monstro, voce deve completar a missao XXX"}, ["Grim Reaper"] = {monster = "Grim Reaper", storage = 7893, secondstorage = 8893, time = 60, message = "Voce esta atualmente incapaz de convocar esse monstro! A fim de chamar esse monstro, voce deve completar a missao XXX"} } function onTextEdit(cid, item, newText) if item.itemid == 1947 then -- Item id of the writable item. if isInArray({'Summons', 'summons'}, newText) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Convocacoes atuais: Demon, Dragon Lord, Hydra, Grim Reaper. Lembre-se de usar letras maiusculas na frente ao digitar!!!") else if getTilePzInfo(getCreaturePosition(cid)) ~= false then doPlayerSendCancel(cid, "Voce nao pode convocar um monstro em Protection Zone!") return false end local tt = t[newText] if not tt then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "monstro invalido") return false end local ts = tt.storage local tm = tt.message if getCreatureStorage(cid, ts) < 1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, tm) return true end local tss = tt.secondstorage if getCreatureStorage(cid, tss) > os.time() then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Voce deve esperar mais um " .. getCreatureStorage(cid, tss) - os.time() .. ' second' .. (getCreatureStorage(cid, tss) - os.time() == 1 and "" or "s") .. " para sumonar esse montros denovo") return true end local ttt = tt.time local summon = tt.monster doCreateMonster(summon, getCreaturePosition(cid)) doCreatureSetStorage(cid, tss, os.time() + ttt) end end return true end em creaturescripts.xml coloque esta tag: <event type="textedit" name="Summon" event="script" value="summon.lua"/> e depois em login.lua em scripts do creaturescripts cole esta tag: registerCreatureEvent(cid, "Summon") Bom é isso pessoal, espero ter ajudado qualquer bug comente abaixo!
  3. Como funciona? Ele previne que um player puxe outro player enquanto ele está treinando ou atacando um monstro. COLOQUE TUDO EM CREATURESCRIPTS creaturescripts.xml login.lua anti-push.lua
  4. Como funciona? - O Jogador precisa estar online por 15 minutos. - O Anti Bot pedirá para que o player diga alguns números sem símbolos. Ex: [Antibot]: Por favor, diga AntiBot 5% 8 e 9 ^ 2 * 3 sem símbolos! Ficará: AntiBot 58923. Se o player não fizer isso em 2 minutos, ele é kikado. - O Jogador tem 3 oportunidades para responder, se ele dizer 3 vezes o código errado, ele é kikado. Instalando Sistema: Vá em data/creaturescripts/scripts/ crie um arquivo chamado antibot.lua e cole isto: Cole isto em data/creaturescripts/creaturescripts.xml: E pronto, está instalado. Créditos: Darkhaos e War W0lf Agradeça, Comente e REP+
  5. Olá, galerinha do Xtibia vim trazer + um script em data/creaturescripts/scripts crie um arquivo e renomeie para um nome desejado e adicione isso dentro: function onStatsChange(cid, attacker, type, combat, value) local chance = 25 if (getPlayerSlotItem(cid, 2).itemid == 2196) and chance > math.random(1, 100) then if type == STATSCHANGE_HEALTHLOSS and isPlayer(cid) and isPlayer(attacker) or isMonster(attacker) then doPlayerSendTextMessage(cid, 28 , "Você levou um dano de "..value.." e recebeu 15% dessa hp perdida!!" ) doCreatureAddHealth(cid, value*0.15 ) end end return true end agora as tags -------------- tags ------------ <event type="statschange" name="ReflectHeal" event="script" value="nome_do_script.lua"/> registerCreatureEvent(cid, "ReflectHeal") ------------ ---------------------- em items.xml substitua: <item id="2196" article="a" name="broken amulet"> <attribute key="weight" value="420" /> <attribute key="slotType" value="necklace" /> </item> por <item id="2196" article="a" name="nome_de_um_amulet_show"> <attribute key="weight" value="420" /> <attribute key="slotType" value="necklace" /> se baseia num script que quando você usa um certo amuleto e a chance e maior que 25 você recebe 15% de hp do dano recebido QUALQUER ERRO REPORTE NO TÓPICO(tirando os de ortografia)
  6. Servidor: Global Distro: TFS 0.4 32bits Olá Xtibianos, gostaria de ajuda no seguint Script: Seguindo o estilo de quest global da cipsoft, queria um script que desse uma recompensa a todos os players que ajudaram a matar um monstro. O monstro aparecerá em uma sala, e todos os players que atacarem esse monstro 30 segundos antes dele morrer receberá o item (119). Espero que tenham entendio, e que possam me ajudar. Obrigado
  7. Estou usando o sistema de vip por storage ID 13540 , e botei pra promover vocação quando é vip .. porem não consigo fazer o script pra quando o vip acabar a promotion vip sair... Alguem poderia fazer esse script ser por storage 13540? Valendo REP+ Alguem? ;s Alguem me ajuda ai ? Valendo REP+
  8. Faaala, pessoar. Há um tempo vi em uma comunidade gringa um script super criativo que se baseava no anime Death Note. Através da função onTextEdit(cid, item, newText), o scripter criou um livro que matava jogadores cujo nome fosse escrito. Mas era um código simples e limitado, você só podia matar um jogador por vez e o livro se tornava inútil depois disso. Então resolvi criar meu próprio Death Note com alguns bônus. - Você pode matar um número de jogadores configurável por vez, ou ilimitados se for CM ou mais. - Existe um delay entre a escrita do nome e a morte do alvo de 40 segundos. (Igual o anime) - Depois de escritos os nomes, o jogador que usou o Death Note, fica impossibilitado de usar denovo por 30 minutos. (Sem exhaust para CMs ou mais) - Jogadores com red skull ou black skull não podem ser mortos pelo Death Note. - O livro não se inutiliza. Bom, vamos começar? 1 - Vá em seus items.xml e troque os atributos dos seguintes itens: <item id="1972" article="a" name="death note"> <attribute key="weight" value="1000"> <attribute key="writeable" value="1"> <attribute key="maxTextLen" value="512"> <attribute key="writeOnceItemId" value="1955"> </item> <item id="1955" article="a" name="death note"> <attribute key="weight" value="1000"> </item> 2 - Vá em creaturescripts/scripts, crie um arquivo chamado deathnote.lua e cole o seguinte script abaixo: local deathnote = { max = 3, delay = 40, interval = 30 * 60 } local function DeathNote(param) if isCreature(param.target) then local position, damage = getThingPosition(param.target), getCreatureMaxHealth(param.target) return doAreaCombatHealth(0, COMBAT_DEATHDAMAGE, getThingPosition(param.target), 0, -(damage * 10), -(damage * 10), CONST_ME_MORTAREA) end end function onTextEdit(cid, item, newText) if item.itemid == 1972 then newText = string.explode(newText, "\n") if #newText > deathnote.max and getPlayerGroupId(cid) == 1 then doPlayerSendCancel(cid, "Sorry, but you cannot kill more than ".. deathnote.max .." players.") else if os.time() > getPlayerStorageValue(cid, 101011) or getPlayerGroupId(cid) > 3 then for _, name in ipairs(newText) do local target = getPlayerByNameWildcard(name) if target then if getCreatureSkullType(cid) >= 4 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry, but ".. name .." cannot die by the power of Death Note.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, name .." will die in ".. deathnote.delay .." seconds.") setPlayerStorageValue(cid, 101011, os.time() + deathnote.interval) addEvent(DeathNote, deathnote.delay * 1000, {target = target}) end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry, but ".. name .." isn't in this world.") end end else doPlayerSendCancel(cid, "You are exhausted to use Death Note.") end end return false end return true end 3 - Ainda em creaturescripts/scripts, abra o arquivo login.lua e adicione a seguinte linha: registerCreatureEvent(cid, "DeathNote") Antes de: return true 4 - Abra o arquivo creaturescripts.xml e adicione a seguinte chave. <event type="textedit" name="DeathNote" event="script" value="deathnote.lua"/> Para usar o Death Note depois de instalado o script, basta dar Use no livro e escrever um nome em cada linha dando Enter depois. Por exemplo: E por aí vai.
  9. ABAIXO O ERRO: [18/06/2012 12:56:01] [Error - CreatureScript Interface] [18/06/2012 12:56:01] data/creaturescripts/scripts/look.lua:onLook [18/06/2012 12:56:01] Description: [18/06/2012 12:56:01] data/lib/050-function.lua:107: attempt to index local 'str' (a nil value) [18/06/2012 12:56:01] stack traceback: [18/06/2012 12:56:01] data/lib/050-function.lua:107: in function 'getArticle' [18/06/2012 12:56:01] data/creaturescripts/scripts/look.lua:16: in function <data/creaturescripts/scripts/look.lua:1> ABAIXO O SCRIPT: SCRIPT DA FUNÇÃO NA LIB:
  10. Entonces, percebi que existe uma busca constante de como "colocar tal item para previnir queda de items". Arranjei uma solucao para voces que nao precisa de nenhum tipo de edit, apenas a instalacao do script para que todos funcionem como o Amulet of Loss (obedecendo o items.xml): Primeiramente deve-se notar para que um certo item previna a queda de items ao morrer ele deve conter este attributo nos items.xml: <attribute key="preventDrop" value="1"/> <attribute key="removeOnDeath" value="1"/> Agora crie um arquivo chamado drop.lua dentro da pasta data/creaturescripts/script/ de seu OT e coloque isto dentro: function getItemXMLAttributes(itemid) -- By: Byerne local tmp, id_now, check_ids = {}, 0, {} for line in io.lines('./data/items/items.xml') do if string.find(line, '<item fromid="') then for x=tonumber(line:match('<item fromid="(.-)"')), tonumber(line:match('toid="(.-)"')) do table.insert(check_ids, x) tmp[x] = {['name'] = tostring(line:match('name="(.-)"'))} end elseif string.find(line, '<item id="') then id_now = tonumber(line:match('<item id="(.-)"')) tmp[id_now] = {['name'] = tostring(line:match('name="(.-)"'))} elseif string.find(line, '<attribute key="') then tmp[id_now][line:match('<attribute key="(.-)"')] = line:match('value="(.-)"') elseif string.find(line, '</item>') then if id_now == itemid then return tmp[id_now] end end end return false end function onDeath(cid, corpse, deathList) for slot=CONST_SLOT_FIRST, CONST_SLOT_LAST do local item = getPlayerSlotItem(cid, slot) if getItemXMLAttributes(item.itemid).preventDrop == 1 then doCreatureSetDropLoot(cid, false) if getItemXMLAttributes(item.itemd).removeOnDeath == 1 then doRemoveItem(item.uid) end return true end end return true end Coloque também dentro de creaturescripts.xml isto: <event type="death" name="DropLoot" event="script" value="drop.lua"/> Não se esqueca de registrar no login.lua isto: registerCreatureEvent(cid, "DropLoot") Ao final de tudo caso alguém morra com algum item (em qualquer slot) que previna drops este será removido se contido no items.xml a característica removeOnDeath. Espero que gostem, qualquer bug reporte neste mesmo tópico.
  11. PokeDash v6 ( Client: 8.54 ) Gostaria de saber se é possivel criar uma funcao MuteDefault e UnMuteDefault. Para que ? Digamos que eu queira impedir o Char de falar no Default e quand oeu quiser liberalo para falar novamente uso o unMuteDefault. Alguem poderia me explicar como fazer ?
×
×
  • Create New...