Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''script''.



Mais opções de pesquisa

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • A Cidade OTBR
    • OTServ Brasil
    • Atendimento
    • Taverna
  • Projetos Open Source
    • Canary
    • OTServBR-Global
    • Mehah OTClient
    • MyAAC
  • OpenTibia
    • Notícias e Discussões
    • Suporte - Dúvidas, Bugs, Erros
    • Downloads
    • Tutoriais
    • Show-Off
  • Outros
    • Design

Encontrado 67 registros

  1. Wolfman and Halloween Monster

    ------------------------------- Monstros: Wolfman - Humano que pode se tranformar em um lobo selvagem e depois volta a forma humana. Bom para hunts, além de sumonar wolfs também. Halloween Monster - Otimo monstro que pode ser usado em evento.Ele se transforma em varios outros monstros e transforma os players que estiverem perto dele também. Versão: 8.5x Tipo do script: Monstro Servidor Testado: The Forgotten Server 0.3.5.2576,Alissow Ots 3.6 Autor: LordBelkil (Eu) ------------------------------- Bom pessoal, esses são meus primeiros monstros e estou aberto a críticas e sugestões. Lembrando, esses monstros são editavéis, ou seja, edite eles a seu gosto e necessidades do seu server. Wolfman 1º Passo: Abra a pasta monster aque se encontra na pasta data do seu server. Copie e cole qualquer arquivo e renomeie para Wolfman. Abra o arquivo, delete tudo e cole isso: [spoiler=Wolfman] 2º Passo: Salve em .xml e fexe. 3º Passo: Abra o arquivo monsters.xml que se encontra na pasta monster e adicione: Halloween Monster 1º Passo: Abra a pasta monster aque se encontra na pasta data do seu server. Copie e cole qualquer arquivo e renomeie para Halloween Monster. Abra o arquivo, delete tudo e cole isso: [spoiler=Halloween Monster] 2º Passo: Salve em .xml e fexe. 3º Passo: Abra o arquivo monsters.xml que se encontra na pasta monster e adicione: Bom galera, agora você ja tem mais 2 monstros criativos e legais pro seu server! :w00t: Espero que tenham gostado... Doe V$ ;D!!!!!!
  2. Apostila Lua !!

    ~~* Apostila Lua *~~ Como participo da seção de scripting a muito tempo eu sei que ha poucos tutorias que realmente ensinam como scriptar !! Sabendo disso eu decidi postar uma apostila para vocês espero que se envolvam e tentem aprender alguma coisa !!!!!! Primeiramente queria falar que eu não sou o autor da mesma portanto não quero créditos por isso !! Segundo espero que isso ajudem vocês e que vocês venham fazer bom uso desta !! Agora sem mais delongas vou postar aqui o link para vocês usarem e se divertirem =P
  3. Escalar System

    E ae Galera, Vo postar aqui um script que pode ser util pra qm gostad e rpg e usa mta criatividade! Agora o Script!Vá em actions/tolls e add um arkivo chamado Scall.lua dentro dele cole isto: local holeId = {[color=Blue]3369, 7062, 7064, 7066, 392, 408, 409, 427, 428, 430, 462, 469, 470, 482, 484, 485, 489, 924, 3135, 3136[/color]} function onUse(cid, item, fromPosition, itemEx, toPosition) local groundTile = getThingfromPos(toPosition) if groundTile.itemid == 7062 or groundTile.itemid == 7066 or groundTile.itemid == [color=Red]3362[/color] then doTeleportThing(cid, {x = toPosition.x, y = toPosition.y - 1, z = toPosition.z - 1}, FALSE) elseif isInArray(holeId, itemEx.itemid) == TRUE then local hole = getThingfromPos({x = toPosition.x, y = toPosition.y, z = toPosition.z + 1, stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE}) if hole.itemid > 0 then doTeleportThing(hole.uid, {x = toPosition.x, y = toPosition.y + 1, z = toPosition.z}, FALSE) else doPlayerSendCancel(cid, "Sorry, not possible.") end else return FALSE end return TRUE end Depois vá em actions.xml e coloque: ----------CONFIGURANDO--------- é o id da corda, no caso a elvenhair é os pisos aond pode ter a montanha/parede é o id da montanha/parede que vc vai escalar! pronto Configure e gogo rpg! c quiser deichar assim eh melhor... pois voce pod bugar algo...c vc souber mudar direitin, use a criatividade! Nesse script vc esacala a Stone wall com a elvehair rope! Ate a proxima! :yes:
  4. Quest Manera!

    Nome: Quets Criativa Autor: eu msm! Versão: TESTADO Em 8.40 Tipo: Action/quest Poh galera, esses dias tava eu tendo umas ideas pro meu ot, e pensei numa base pra fazer uma quest manera, e usei essa! Supomos q seu server tenha 4 cidades; Uma quest criativa poderia ser: em cada cidade você faz uma pequena sala. Nela você coloca um piso especial. uma placa indicando que se quer participar da quests que fique em cima dele! ai voce faz isso nas 4 cidades! e em uma voce coloca uma alavanca! ( na principal de preferencia ) Ao puxar a alavanca, os players das 4 cidades sao teleportados para uma quest!!! manero né? eu axo...hahuhua agora como fazer? crie em action/scripts/quests um arkivo renomeie para o nome que quiser!e coloque: Coloque isso em actions/scripts/quests local playerPosition = { [color=Magenta]{x = 217, y = 364, z = 7, stackpos = STACKPOS_TOP_CREATURE}, {x = 218, y = 364, z = 7, stackpos = STACKPOS_TOP_CREATURE},[/color] } local newPosition = { [color=YellowGreen]{x = 216, y = 375, z = 7}, {x = 216, y = 376, z = 7},[/color] } -- Do not modify the declaration lines below. local player = {0, 0, } local failed = FALSE function onUse(cid, item, fromPosition, itemEx, toPosition) if item.itemid == 1945 then for i = 1, 2 do failed = TRUE player[i] = getThingfromPos(playerPosition[i]) if player[i].itemid > 0 then if isPlayer(player[i].uid) == TRUE then if getPlayerStorageValue(player[i].uid, [color=DarkSlateBlue]30015[/color]) == -1 then if getPlayerLevel(player[i].uid) >= [color=Blue]10[/color] then failed = FALSE end end end end if failed == TRUE then doPlayerSendCancel(cid, "Sorry, not possible.") return TRUE end end for i = 1, 4 do doSendMagicEffect(playerPosition[i], CONST_ME_POFF) doTeleportThing(player[i].uid, newPosition[i], FALSE) doSendMagicEffect(newPosition[i], CONST_ME_ENERGYAREA) end doTransformItem(item.uid, item.itemid + 1) elseif item.itemid == 1946 then doPlayerSendCancel(cid, "Sorry, not possible.") end return TRUE end dpois vá em actions.xml e add: <action uniqueid="30015" script="quests/NOMEDOSCRIPT.lua"/> Configurando! è a posição do player, aonde ele deve estar na hra q o principal puxar a alavanca! (configure quantos players quiser é só adicionar mais tags igual eu markei) è a posição que os players vao ser teleportados! 10 é o level do player coloque qual vc kiser! é o unique id q vc vai colocar na alavanca no map editor! isso tudo acima é a configuração basica! se quiser mais detalhes! msg me! Agora não skece de colocar a quest que vc quer! use a criatividade! Foi mal qualquer erro! so novo ak na area... vlw :yes:
  5. Magias Totalmente novas e exclusivas!

    Fala galera, primera vez que to postando uma spell ak no forum! então qualquer erro me avisem! =) Seguint, fiz um pacote com 4 magias! sendo elas: exevo fury: Para sorcerers ( dmg ) exori expert: para Kinas ( dmg ) exevo defiler: Druids ( Dmg ) exana mana "player :kina e palla ( tira a mana do cidadao ) postarei o ss das 3 de dmg, pois a outra não presisa de ss Lembrando que os dmgs, as classes que vão usar, tipo de dano é tudo configuravel, então qualquer coisa me manda uma msg q eu ajudo! Nome: Spells Pack Tipo de script: spell Autor: Eu Versão 8.4 Server TESTADO: TFS 0.2x Versão: 1.0 essa é a exevo defiler (dmg de poison) essa acima é a exevo fury e essa a exori expert! Essas tags, que devem ser adicionada em spells.xml e estão configuradas para os scipts q eu postei, qualquer modificação nos scripts deve ser modificados ak! Abaixo a exevo fury <instant name="Fury of Death" words="exevo fury" lvl="75" mana="770" direction="1" exhaustion="1500" needlearn="0" script="attack/fury.lua"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> </instant> Abaixo a Exevo Defiler <instant name="Defiler Wave" words="exevo defiler" lvl="80" mana="810" direction="1" exhaustion="1500" needlearn="0" script="attack/defiler.lua"> <vocation name="Druid"/> <vocation name="Elder Druid"/> </instant> Abaixo a Exori expert <instant name="Expert Exori" words="exori expert" lvl="130" mana="390" prem="1" needweapon="1" exhaustion="1100" needlearn="0" script="attack/superzerker.lua"> <vocation name="Knight" /> <vocation name="Elite Knight" /> </instant> Abaixo a Mana Drain <instant name="Mana Drain" words="Exana Mana" lvl="58" mana="230" prem="1" aggressive="0" needtarget="1" params="1" exhaustion="2200" needlearn="0" script="attack/mana drain.lua"> <vocation name="Elite Knight"/> <vocation name="Royal Paladin"/> </instant> Atenção, as magias forão testadas em TFS 0.2x Mais deve funcionar nos outros. Todas as spells deven ser colocadas na pasta attack,\data\spells\scripts\attack c mudar a pasta, mude tambén no spells.xml Isso ai, espero ter ajudado! Link das magias: http://rapidshare.com/files/229956807/scripts.rar.html Créditos: 90% Meus 10% do Slayer (usei de BASE pra fazer a exori expert!) Até a Proxima! :yes:
  6. Sistema de propaganda

    Bom, para começar, gostaria de dizer que este script SUPER SIMPLES foi feito por mim, então, por favor, não venham me dizer que foi cópia. Eu sei que há outro script parecido com este no fórum, mas o outro foi feito por raids, este será feito por global events e irá acontecer sempre de tempos em tempos. De agora em diante, adotando os padrões de postagem: Titulo: [8.4] Sistema de propaganda Editado: Adicionando a dica do Mock, você pode pular linhas utilizando "[[", em vez de usar o \n. Segue como exemplo: function onThink(interval, lastExecution) -- Configurações local cor = 22 -- Defina a cor da mensagem (22 = branco) local mensagens = { [[Propaganda: Gostaria de ser premium account? Compre nosso pacote com 6000 VIP Points por apenas R$ 5,00!]], [[ Propaganda: Está com inveja de outros jogadores por não possuir as mesmas magias? Compre sua premium account por apenas R$ 5,00!]], [[You advanced in magic level. Oops, mentira, mas poderia ter acontecido se você fosse premium account. Compre a sua em nosso website. ]] } -- Fim de Configurações doBroadcastMessage(mensagens[math.random(1,table.maxn(mensagens))], cor) return TRUE end Créditos: Pivigu
  7. Joker[monster]

    Nome do monstro:Joker Versão:8.31 Testado em:YourOt's Créditos:100% Corinback Bom pessoal,esses dias estava pensando em que bixo eu poderia criar,então pensei no maior inimigo do Batman,o Coringa(Joker).Aí criei e até gostei dele,então resolvi postar... Para cria-lo em seu OT sigua as seguintes instruções: Vá em Data/Monster/Bosses , copie e cole um arquivo XML apague tudo e copie isso: Salve e agora vá em Data/Monster/monsters.XML Adicione lá: <monster name="Joker" file="Bosses/joker.xml"/> E pronto seu monstro já ta adicionado! O Joker vem com o Outfit do verdadeiro Coringa fikou bem legal! Agora vai uma SS: Espero que tenham gostado! coment plz..... By: Corinback.
  8. [8.1] Magia Sacrificio

    ------------------------------- Nome: Magia de Sacrificio Versão: 8.1 Tipo do script: Spells Servidor Testado: Aries 4.0 Autor: Lyndell ------------------------------- Bom, é uma magia bem forte que decha o player com apenas 100 de hp e 200 de mana, ou seja eh meio um sacrificio... a magia nao irá matar o player porque só ira ser feita se ele tiver uma quantidade de hp e mana. script: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 49) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -3.6, -30, -5.9, 4) local arr = { {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, } local area = createCombatArea(arr) setCombatArea(combat, area) function onCastSpell(cid, var) health = getPlayerHealth(cid) mana = getPlayerMana(cid) if mana >= 1500 and health >= 2000 then doPlayerAddHealth(cid, -(health-100)) doPlayerAddMana(cid, -(mana-200)) return doCombat(cid, combat, var) else doPlayerSendTextMessage(cid,22,"Você nao tem mana ou health suficiente.") end end Aqueles valores 100 e 200 sao a vida e mana que o player irá ficar ao usar o spell, você tbm pode mudar quanto de hp e mana o player precisa para executar o spell. Bom... você pega qualquer arquivo, apaga tudu e cola o script dentro dele... Depois disso salve ele como magiadead.lua Feito isso abra seu Spells.xml e cole esse tag: <instant name="death" words="exevo death" soul="5" mana="0" aggressive="1" lvl="200" maglv="5" exhaustion="1" prem="1" enabled="1" script="magiadead.lua"><vocation id="2"/><vocation id="6"/><vocation id="5"/><vocation id="1"/><vocation id="3"/><vocation id="4"/><vocation id="7"/><vocation id="8"/></instant> Caso queiram mudar algo no script ou no tag pode, eu recomendo deixar assim mesmo. Gostaram? if yes then Comentem (Y) end
  9. Duvida Script

    Tipo to querendo saber se tem como ler o level de um player sem ser cid... por exemplo: getPlayerLevel(nome do cara do ot) ae tipo... se for possivel eu queria montar um npc mais nao sei como faz para ele ler oque vc falar e salvar numa variavel... por exemplo blablabla Ler como sendo (nomedocara) selfSay(o level dele é , ' .. getPlayerLevel(nomedocara) .. '!') entenderao??? isso é possivel??
  10. (pedido) porta que passa dps da quest

    queria sbe se tem como fase uma porta que so passa dps de um teleport npc ou quest tipo a Porta da Força(que ele só pode passar depois de ter feito a quest do Fortress) a porta da Sabedoria(que ele só pode passar depois de ter feito a quest do Rivers Dragon) e a porta da Coragem(que ele só pode passar depois de ter feito a quest da Prison) se tive me ajuda por favor! vlw!
  11. [8.1] Fishing Evolution

    ------------------------------- Nome: Fishing Evolution Versão: 8.10 Tipo do script: Action Servidor Testado: Aries 0.4.5 Autor: Mukah ------------------------------- Como disse no meu primeiro script, do Plantinha System, postaria mais scripts meus... Dai eu pensei assim: Eu to sem scripts pra coloca lá... eu tenho uns só que estão muito foda pra ficar postano. MAS... Eu pensei melhor. Como gostei dos elogios, axei que vocês iriam gostar desse script tbm! (OBS: virem meu fan please *-*) O script eh o seguinte: Vocês conheçem o script de fishing (pesca) tradicional do Tibia certo? Mas este que fiz, ele é modificado! "Fishing Evolution 100 x 0 Fishing Global UHUU!! :lol:" Voltando ao assunto, o script ele pesca todos os tipos de peixe que existe no global! (Mais abaixo vou postar a tabela de peixes) Alem de ele pescar todos os tipos, ele contém outros efeitos (quando você pega o peixe) e ainda por cima necessita de skills para poder pescar os peixes! Inclusive, no final eu vou colocar o script do NPC que compra todos os itens e também o script para comer todos os peixes também! Tabela de peixes: Shrimps - [skill: 0-25+] Fishs - [skill: 26-35+] Northern Pikes - [skill: 36-45+] Green Perchs - [skill: 46-55+] Rainbow Trouts - [skill: 56-65+] Marlins - [skill: 66+] ----------------------------------------------- Bom, vamos para os scripts: Crie um arquivo na pasta "data/actions/scripts/" com o nome de "fishing.lua". fishing.lua -- Script 100% by Mukah -- local useWorms = TRUE local waterIds = {493, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625} function onUse(cid, item, fromPosition, itemEx, toPosition) fskill = getPlayerSkill(cid,6) count = math.random(3,7) if isInArray(waterIds, itemEx.itemid) == TRUE then if itemEx.itemid ~= 493 then if useWorms == FALSE or useWorms == useWorms then fish = math.random(1,fskill) if (fish == 2 or fish == 4 or fish == 6 or fish == 8 or fish == 10 or fish == 12 or fish == 14 or fish == 16 or fish == 18 or fish == 20 or fish == 22 or fish == 24) then doPlayerAddItem(cid, 2670, count) doPlayerRemoveItem(cid, 3976, 1) doSendMagicEffect(toPosition, 53) doPlayerAddExp(cid,math.random(1,fskill+fskill/2+15)) doPlayerAddSkillTry(cid,6,1) elseif (fish == 26 or fish == 28 or fish == 30 or fish == 32 or fish == 34) then doPlayerAddItem(cid, 2667, 1) doPlayerRemoveItem(cid, 3976, 1) doSendMagicEffect(toPosition, 53) doPlayerAddExp(cid,math.random(1,fskill+fskill/2+15)) doPlayerAddSkillTry(cid,6,1) elseif (fish == 36 or fish == 38 or fish == 40 or fish == 42 or fish == 44) then doPlayerAddItem(cid, 2669, 1) doPlayerRemoveItem(cid, 3976, 1) doSendMagicEffect(toPosition, 53) doPlayerAddExp(cid,math.random(1,fskill+fskill/2+20)) doPlayerAddSkillTry(cid,6,1) elseif (fish == 46 or fish == 48 or fish == 50 or fish == 52 or fish == 54) then doPlayerAddItem(cid, 7159, 1) doPlayerRemoveItem(cid, 3976, 1) doSendMagicEffect(toPosition, 53) doPlayerAddExp(cid,math.random(1,fskill+fskill/2+30)) doPlayerAddSkillTry(cid,6,1) elseif (fish == 56 or fish == 58 or fish == 60 or fish == 62 or fish == 64) then doPlayerAddItem(cid, 7158, 1) doPlayerRemoveItem(cid, 3976, 1) doSendMagicEffect(toPosition, 53) doPlayerAddExp(cid,math.random(1,fskill+fskill/2+40)) doPlayerAddSkillTry(cid,6,1) elseif (fish == 66 or fish == 68 or fish == 70 or fish == 72 or fish == 74 or fish == 76 or fish == 78 or fish == 80 or fish == 82 or fish == 84 or fish == 86 or fish == 88 or fish == 90 or fish == 92 or fish == 94 or fish == 96 or fish == 98 or fish == 100 or fish == 102 or fish == 104 or fish == 106 or fish == 108 or fish == 110 or fish == 112 or fish == 114 or fish == 116 or fish == 118 or fish == 120 or fish >= 150) then doPlayerAddItem(cid, 7963, 1) doPlayerRemoveItem(cid, 3976, 1) doSendMagicEffect(toPosition, 53) doPlayerAddExp(cid,math.random(1,fskill+fskill/2+60)) doPlayerAddSkillTry(cid,6,2) else end end end doSendMagicEffect(toPosition, 1) return TRUE end return FALSE end -- Script 100% by Mukah -- Após ter criado o script acima, abra o arquivo "data/actions/actions.xml". Coloque o tag dentro depois do "<actions>" e antes do "</actions>". tag actions <action itemid="2580" script="fishing.lua" allowfaruse="1" /> [Edit_Motivo: Continuação] Bom.. então vamos para o script para COMER todas as comidas... ou melhor: peixes! Provavelmente seu OT já come Fish/Shrimps/Northerns Pikes; Então apenas vao restar Green Perchs/Rainbow Trouts/Marlins. Crie um arquivo na pasta "data/actions/scripts/" com o nome de "peixes.lua". -- Script Aries editado por Mukah -- local text = "" local nutrition = 0 local effect = 50 function onUse(cid, item, frompos, item2, topos) if item.itemid == 7159 then nutrition = [color=Red]50[/color] text = "[color=Blue]Munch.[/color]" elseif item.itemid == 7158 then nutrition = [color=Red]70[/color] text = "[color=Blue]Munch.[/color]" elseif item.itemid == 7963 then nutrition = [color=Red]350[/color] text = "[color=Blue]Munch.[/color]" end if (getPlayerFood(cid) + nutrition > 400) then doPlayerSendCancel(cid,"You are full.") else doPlayerFeed(cid, nutrition * 4) doPlayerSay(cid, text, 16) doRemoveItem(item.uid, 1) if effect < 31 then doSendMagicEffect(getPlayerPosition(cid), 27) end end return 1 end -- Script Aries editado por Mukah -- Pergunta: Ei Muka! Eu quero que os peixes sustente um certo tanto, como faço? Resposta do Muka: Voce edita os números em VERMELHO de acordo com sua escolha! Lembrando que quando o player fica Full, ele fica com 400 de Sustento (Feed) Pergunta: Ok. Mas agora eu quero mudar a FALA! Quero que ele fale "Mukah" em vez de "Munch"! Como eu faço? Resposta: Está vendo as palavras na cor AZUL? Você poderá editar avontade, basta mudar a fala sem tirar as Aspas ("")! Continuando: Agora falta o script do "actions.xml"! Após ter criado o script acima, abra o arquivo "data/actions/actions.xml". Coloque o tag dentro depois do "<actions>" e antes do "</actions>". tag actions <action itemid="7159" script="peixes.lua" /> <action itemid="7158" script="peixes.lua" /> <action itemid="7963" script="peixes.lua" /> Agora falta somente o NPC para vender os peixes (todos)! Crie um arquivo na pasta "data/npc/" e renomeie com o nome de "Perac.xml", um nome já bastante conheçido de alguns OT's baixados. Em seguida abra o arquivo "Perac.xml" e coloque o seguinte script: perac.xml <?xml version="1.0"?> <npc name="Perac" script="data/npc/scripts/fishs.lua" access="3" lookdir="2" autowalk="25"> <mana now="800" max="800"/> <health now="200" max="200"/> <look type="128" head="66" body="46" legs="2" feet="89"/> </npc> Agora crie um arquivo na pasta "data/actions/scripts/" com o nome de "fishs.lua". fishs.lua -- Script 100% by Mukah -- local focus = 0 local talk_start = 0 local target = 0 local following = false local attacking = false function onThingMove(creature, thing, oldpos, oldstackpos) end function onCreatureAppear(creature) end function onCreatureDisappear(cid, pos) if focus == cid then selfSay('Good bye then.') focus = 0 talk_start = 0 end end function onCreatureTurn(creature) end function msgcontains(txt, str) return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)')) end function onCreatureSay(cid, type, msg) msg = string.lower(msg) if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then selfSay('Hello ' .. creatureGetName(cid) .. '! I sell fishing rods(100gp) and buy Shrimp(5gp), Fish(20gp), Northern Pikes(40gp), Green Perch(70gp), Rainbow Trout(100gp) and Marlin(500gp).') focus = cid talk_start = os.clock() elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then selfSay('Sorry, ' .. creatureGetName(cid) .. '! I talk to you in a minute.') elseif focus == cid then talk_start = os.clock() if msgcontains(msg, 'shrimp') or msgcontains(msg, 'shrimps') then sell(cid,2670,getCount(msg),5) elseif msgcontains(msg, 'fish') or msgcontains(msg, 'fishs') then sell(cid,2667,getCount(msg),15) elseif msgcontains(msg, 'northern pike') or msgcontains(msg, 'northerns pikes') then sell(cid,2669,getCount(msg),40) elseif msgcontains(msg, 'green perch') or msgcontains(msg, 'green perchs') then sell(cid,7159,getCount(msg),70) elseif msgcontains(msg, 'rainbow trout') or msgcontains(msg, 'rainbow trouts') then sell(cid,7158,getCount(msg),100) elseif msgcontains(msg, 'marlin') or msgcontains(msg, 'marlins') then sell(cid,7963,getCount(msg),500) elseif msgcontains(msg, 'fishing rod') then buy(cid,2580,1,100) elseif msgcontains(msg, 'bye') and focus == cid and getDistanceToCreature(cid) < 4 then selfSay('Good bye, ' .. creatureGetName(cid) .. '!') focus = 0 talk_start = 0 elseif msgcontains(msg, 'no') then selfSay('Ok. Come back when you need my services.') talk_state = 0 end end end function onCreatureChangeOutfit(creature) end function onThink() if (os.clock() - talk_start) > 30 then if focus > 0 then selfSay('Next Please...') end focus = 0 end if focus ~= 0 then if getDistanceToCreature(focus) > 5 then selfSay('Good bye then.') focus = 0 end end end -- Script 100% by Mukah -- Agora só falta adiciona-lo no seu map editor! Como adicionar no map editor? A OTNET tem! Ta ai uma foto do que fiz no meu OT que começei a criar: [Edit_Motivo: Continuação] Ta ai! (Y) Vlws! COMENTA! (Y) e VIRA MEU FAN PLEASE!
  12. Vampirecoffin Quest

    Testado em: Yurots 1.2 Versão 8.1 Olá, este é o meu primeiro tutorial, espero que gostem... Eu utilizei a action em uma quest em que você chega num local com vários caixões...Em um deles você abre (coloquei a unique ID somente em um caixão), recebe um vampire shield e sai um vampire de cada caixão. Criando a action: Crie um arquivo .lua na pasta data/actions/scripts com o nome vampirecoffin, copie isso e cole lá: Salve o arquivo e feche. Explicando: Em azul a posição do primeiro vampire que irá aparecer. Em vermelho a posição do segundo vampire que irá aparecer. Você pode criar quantas posições quiser, assim poderão ser invocadas mais criaturas...simplesmente insira outra linha abaixo das que possuem as "vamppos" assim: Dessa forma, você pode colocar quantos vampires quiser, isso fica ao seu critério, e também se quiser pode colocar mais de um vampire para ser invocado por caixão, ou até outras criaturas, eu coloquei um vampire ao lado de cada caixão. Em verde a Unique ID utilizada pela quest(a que será colocada no caixão). Em azul ciano o "valor" que será adicionado ao player quando o mesmo usar o caixão(assim a quest não poderá ser repetida várias vezes), ou seja, quando alguém tentar abrir o caixão será checado se ele possuí esse "valor" no seu arquivo, se possuir, a action não será realizada. Em laranja a mensagem recebida ao abrir o caixão. Em amarelo o ID do item que receberá ao abrir usar o caixão. Em roxo as criaturas que serão invocadas, com as respectivas posições. Para serem invocadas outras criaturas como demons, por exemplo, é só alterar assim: Você pode usar demonposX, posiçãodobichoX, como você quiser, estou usando vampposX pois a quest é com vampires. A mesma coisa na seguinte parte, é só alterar na "pos" do início e na "pos" do doSummonCreature: Poderia estar assim: Na parte do doSummonCreature: Ficaria assim: Em rosa a mensagem recebida se você tentar abrir o caixão após ter feito a quest. Agora, vá em data/actions e abra o actions.xml com o bloco de notas, e insira isso em uma linha: Pronto, agora salve e a sua action está pronta. ^^ Imagens da quest: Ao achar o caixão: http://img511.imageshack.us/my.php?image=coffin1sp0.png O que será que tem dentro? http://img291.imageshack.us/my.php?image=coffin2zs4.png Abrindo: http://img511.imageshack.us/my.php?image=coffin3ok2.png Vou tentar denovo... http://img291.imageshack.us/my.php?image=coffin4lt6.png Bom...é isso aí Baseada em uma action de The Killer: http://forums.otserv.com.br/showthread.php?t=661 Modificada by: Shibew Aproveitem (Y)
  13. [8.0+] !pet <> O pet system chegou!

    Pet System Você fala !pet e terá um cachorrinho de estimação, falando !pet outra vez ele sumirá, não é possível fazer pets em zonas de proteção. Se seu pet morrer não importa, é possível fazer ele quantas vezes quiser. No futuro estarei adicionando mais tipos de pet como gatos e esquilos, mas por enquanto é só o cachorro. Na pasta data/talkactions/scripts de seu ot crie um arquivo com nome de pet.lua e coloque isto: function doPlayerAddSummon(cid, name, pos) local creature = doSummonCreature(name, pos) doConvinceCreature(cid, creature) return creature end function onSay(cid, words, param) local petUid = 0 local pos = getCreaturePosition(cid) local store = getPlayerStorageValue(cid, 1000) if words == "!pet" then if store == -1 then if getTilePzInfo(pos) == FALSE then petUid = doPlayerAddSummon(cid, "Dog", pos) setPlayerStorageValue(cid, 1000, petUid) else doPlayerSendCancel(cid, "You can not call your pet in a protection zone.") end else if isCreature(store) == TRUE then doRemoveCreature(store) setPlayerStorageValue(cid, 1000, 0) else if getTilePzInfo(pos) == FALSE then petUid = doPlayerAddSummon(cid, "Dog", pos) setPlayerStorageValue(cid, 1000, petUid) else doPlayerSendCancel(cid, "You can not call your pet in a protection zone.") end end end end end Agora só falta adicionar esta tag no talkactions.xml na pasta data/talkactions: <talkaction words="!pet" script="pet.lua"/> Não era necessário colocar isto abaixo no script, mas para futuras modificações que farei será importante: Até a próxima e se doarem OT$ ficarei muito feliz. E não esqueçam das sugestões, elas são importantes mas nada muito difícil por favor.
  14. [8.10+][Do concurso] Adv. Teleport Quest

    Teleport Quest Um teleport diferente. Requisitos: Você coloca uma wooden stake em cada coal basin e da use numa alavanca então alguns efeitos aparecerão e você será teleportado perto de um baú que quando aberto te da uma blessed wooden stake e você é teleportado para uma posição definida depois de 5 segundos. Crie um arquivo na pasta "data/actions/scripts" com o nome de "teleport_quest.lua" contendo o script abaixo: local coalpos1 = {x=500, y=442, z=6, stackpos=1} local coalpos2 = {x=502, y=442, z=6, stackpos=1} local otherpos = {x=501, y=501, z=7} local newpos = {x=504, y=440, z=6} function doDelayTeleport(cid, pos, delay, effect) if pos ~= nil then local function teleport(p) doTeleportThing(cid, pos, FALSE) if effect ~= nil then doSendMagicEffect(pos, effect) else doSendMagicEffect(pos, 10) end end if delay ~= nil then addEvent(teleport, delay, p) else addEvent(teleport, 0, p) end return LUA_NO_ERROR else print("Error: doDelayTeleport.") return LUA_ERROR end end function doDelayShoot(frompos, topos, effect, delay) if frompos ~= nil and topos ~= nil and effect ~= nil then local function shoot(p) doSendDistanceShoot(frompos, topos, effect) end if delay ~= nil then addEvent(shoot, delay, p) else addEvent(shoot, 0, p) end return LUA_NO_ERROR else print("Error: doDelayShoot.") return LUA_ERROR end end function onUse(cid, item, frompos, itemEx, topos) playerpos = getCreaturePosition(cid) coal1 = getThingfromPos(coalpos1) coal2 = getThingfromPos(coalpos2) if item.itemid == 1945 then if getPlayerStorageValue(cid, 6000) == -1 then if coal1.itemid == 5941 and coal2.itemid == 5941 then doRemoveItem(coal1.uid, 1) doRemoveItem(coal2.uid, 1) doSendMagicEffect(coalpos1, 10) doSendMagicEffect(coalpos2, 10) doTransformItem(item.uid, item.itemid + 1) for i = 1, 20 do doDelayShoot(coalpos1, newpos, 37, i * 100) doDelayShoot(coalpos2, newpos, 37, i * 100) end doDelayTeleport(cid, newpos, 2000, 39) doSendMagicEffect(playerpos, 2) doSendAnimatedText(playerpos, "Teleport!", TEXTCOLOR_YELLOW) else doSendMagicEffect(topos, 2) doPlayerSendCancel(cid, "Coloque um wooden stake sobre cada coal basin.") end else doPlayerSendCancel(cid, "Você já fez essa quest.") doSendMagicEffect(playerpos, 2) end elseif item.itemid == 1946 then if math.random(1, 5) >= 4 then doTransformItem(item.uid, item.itemid - 1) doSendMagicEffect(topos, 12) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "A alavanca voltou ao seu estado normal.") else doSendMagicEffect(topos, 2) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "A alavanca está emperrada, tente puxá-la novamente.") end elseif item.itemid == 1746 then if getPlayerStorageValue(cid, 6000) == -1 then doDelayTeleport(cid, otherpos, 5000, 12) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Teleportando em 5 segundos...") doPlayerAddItem(cid, 5942, 1) setPlayerStorageValue(cid, 6000, 1) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você já pegou um blessed wooden stake.") doDelayTeleport(cid, otherpos, 5000, 12) end end return TRUE end Adicione esta tag no "actions.xml" que se encontra na pasta "data/actions": <action actionid="6000" script="teleport_quest.lua"/> No seu MapEditor coloque actionID 6000 na alavanca e actionID 6000 no baú de ID 1746 que virá a recompensa, mas coloque alguma uniqueID nesse mesmo baú para ninguém sair com ele As configurações necessárias são mudar as posições contidas em: local coalpos1 = {x=500, y=442, z=6, stackpos=1} -- Posição do 1º coal basin. local coalpos2 = {x=502, y=442, z=6, stackpos=1} -- Posição do 2º coal basin. local otherpos = {x=501, y=501, z=7} -- Posição para onde o jogador será teleportado ao dar use no baú. local newpos = {x=504, y=440, z=6} -- Posição para onde o jogador será teleportado ao dar use na alavanca se tiver os determinados itens. É importante que a newpos esteja perto da coalpos1 e coalpos2 para que os efeitos se tornem mais bonitos. O andar de newpos, coalpos1 e coalpos2 tem que ser o mesmo, pois não é possível enviar projétils para andares diferentes. Postem, tirem dúvidas, dêem sugestões para novos script, doem OT$, enfim, façam algo que eu possa saber que você leu meu tópico.
  15. [N:Médio] Usando o "For"

    Usando "For" Eu já vi muito tipo de aula: aula sobre If, While, Repeat e tantas outras que me ajudaram bastante, então um dia desses eu tava conversando com o Fadi e ele me ensinou a usar essa função, então hoje venho ensinar a vocês, por isso créditos a ele(Fadi, e eu Nord por fazer o tutorial/aula). O que o for faz? Ele repete um determinado número de vezes a cada um milésimo de segundo algo, mas trocando um valor que é uma espécie de variável. Tá, mas você não entendeu nada então vamos a prática. Quando usarmos o for será assim: Ok, até agora podemos entender que começaremos com for e depois colocaremos qualquer letra, no caso eu usei i e depois = um número, outro número (de preferência maior) e para finalizar o do. O que acontecerá, ele vai repetir o i, então na primeira vez ele vai ser 1, depois ele vai repetir de novo, dai vai ser 2, então repetira outra vez, e vai ser 3. E talvez você diga: "Mas eu não to vendo utilidade nenhuma." Então você vai ver, olhe abaixo e depois eu explico: [b]for[/b] [color=blue]i[/color] = [i]1[/i],[u]3[/u] [color=Red]do[/color] doSendMagicEffect(qualquer_posição, [color=blue]i[/color]) [color=navy]end[/color] Agora explicação: Acontecerá um efeito na "qualquer_posição", como for começa com 1 ele enviara o efeito de número 1, depois ele vai repetir e vai enviar outro efeito, mas dessa vez vai ser o 2, e depois novamente enviará um efeito, mas um efeito de número 3. Acredito que vocês entenderam, mas lembrando de nunca se esquecer do end para terminar o for. Ou seja, o for i será um valor, eu posso fazer então o player falar 1, depois 2, depois 3, se eu fizer for i = 1,6 do e dentro da função doPlayerSay(cid,"'..i..'",1) olhe o que vai acontecer: Nord says: 1 <Se passa um milésimo...> Nord says: 2 <Outro milésimo depois...> Nord says: 3 E isso acontecerá até chegar ao 6. Conforme sua criatividade, inteligência e esforço você conseguirá fazer scripts para annihilator, arenas e muito mais(inclusive funções). Lembre-se, entre uma ação e outra dentro do for terá um espaço de 1 milésimo de segundo, isso você não pode alterar a não ser que use um addEvent, mas isso é outro tutorial. Até agora vocês aprenderam a usar o for, mas há mais alguma coisa faltando sobre isso, e é o break. O break serve para parar um loop(coisas como for, while e repeat) Então abaixo um exemplo nada prático mas útil para aprender como usar o break: for [color=orange]i[/color] = 1, 100 do doPlayerSendTextMessage(cid, 22, "[color=Orange]"..i.."[/color]") if i == 50 then [color=Blue]break[/color] end end Tutorial/Aula fica por aqui, espero ter ajudado e gostaria que me fizessem doações de OT$ ou então pelo menos postem uma crítica, sugestão ou o que achou do tópico. (Mas com respeito) Aula eu acho que é coisa de moderador fazer, mas não há mal algum em aprender com um usuário não?! -------------------------------------------- Script de Exemplo -------------------------------------------- Créditos: Feito por Fadi e postado por Haxy function onUse(cid, item, frompos, item2, topos) local conf = {bagId = 1987, storage = 15975} local itens = {"2120", "2554"} -- Script: if getPlayerStorageValue(cid,conf.storage) ~= 9 then -- Verifica se o player ja fez a quest, se não tiver feito: local bagUid = doPlayerAddItem(cid,conf.bagId,1) -- Adiciona bag ao player setPlayerStorageValue(cid,conf.storage,9) for i = 1,#itens do doAddContainerItem(bagUid, itens[i], 1) end else -- Caso já tenha feito a quest doPlayerSendTextMessage(cid,22,'It\'s empty.') -- Manda mensagem falando que esta vazio end return 1 end
  16. [n:facil]papai Noel Editado!!!

    -------------------------------------------------- Nome: Papai Noel Versão: 8.1 Tipo do script: Action Servidor Testado: Devland premiun Autor: Alisson ------------------------------------------------- Eae galera!! estou aki para postar meu aprimoramento =] sempre tem akele q pergunta: oq vc fez??? eu modifiquei a aparencia dele e algumas coisas q ele da pq ele tava como morgaroth =/ bem, vamo para di inrrolar va em data/npc copie qualquer um, cole com o nome Papai Noel apague tudu di la dentro e cole isto abra a pasta "scripts" copie qualquer um e coloke o nome de "noel" (sem as aspas) pra quem usa map editor, coloka issu no arquivo "creatures": espero ter ajudado =] por favor postem criticas e elogios =] creditos: 50% xxdkdosalamexx por ter criado o script 50% eu por modificar alguns presentes,mudar skin, todas as falas,looktipe map editor e alguns outros x) agora eu colokei o tutorial na seção correta =]
  17. [8.1]Mother's Day

    Bem, hoje como é dia das mães, fiz um script para comemorar está data. O script é uma caixinha que ao dar use nela, você irá instala, que após um tempo soltará fogos de artificios, e criará (ou não) alguns itens, e poderá transformar as pessoas em alguns itens. Bem vamos ao script. Abra a pasta do seu OT e vá até a pasta data/actions/scripts, copie um arquivo lua de lá e renomei para DDM, apague tudo que está la dentro e coloque isso: ----===---=== Script by Dark ===---===--- ----===---=== OTNET ===---===--- --- CONFIGURAÇÕES --- local CONFIG = { contagem = 1, money = 100, tempo = {instal = 15, inicio = 7, fogos = 600, trans = 1200}, fogos = {numero = 15, distance = 3, efeito = 15}, area = 3, transforma = {numero = 10, createitem = 1, timeout = 60, efeito = 35, distance = 30}, item = {7697, 7733, 7692, 2112, 1685, 7966, 7694, 1687}, text = "Happy\nMother's day" } -------------------------------------- local cid = 0 function onUse(cid, item, frompos, item2, topos) if topos.x ~= 0 and topos.y ~= 0 and topos.z ~= 0 then if doPlayerRemoveMoney(cid,CONFIG.money) == TRUE then doPlayerSendTextMessage(cid, 21, 'Instalando. Este procedimento demorara ' ..CONFIG.tempo.instal.. ' segundos. Aguarde') doSendMagicEffect(topos,2) mayNotMove(cid, 1) cid = cid addEvent(Instal, CONFIG.tempo.instal*1000, {cid = cid, topos = topos}) else doPlayerSendCancel(cid, 'Voce precisa de '..CONFIG.money..' para ativar isto') end else hit = math.random(10,50) doCreatureAddHealth(cid,-hit) doSendAnimatedText(getPlayerPosition(cid), hit, 180) doSendMagicEffect(getPlayerPosition(cid), 5) end doRemoveItem(item.uid,1) return TRUE end function Instal(i) topos = i.topos cid = i.cid doPlayerSendTextMessage(cid, 21, 'Instalação completa.') doSendMagicEffect(topos,2) mayNotMove(cid, 0) addEvent(Time, 1000, {topos = topos}) end local TEMPO = CONFIG.tempo.inicio function Time(t) topos = t.topos if TEMPO ~= 0 then if TEMPO >= 8 then color = 5 elseif TEMPO >= 4 then color = 198 else color = 180 end if CONFIG.contagem == 1 then anitext = TEMPO else if anitext == "tic" then anitext = "tac" color = 129 else anitext = "tic" color = 129 end end doSendAnimatedText(topos, anitext, color) doSendMagicEffect(topos,3) TEMPO = TEMPO-1 addEvent(Time, 1000, {topos = topos}) else TEMPO = CONFIG.tempo.inicio addEvent(Effects, 100, {topos = topos}) end end local Fogos = CONFIG.fogos.numero function Effects(e) topos = e.topos if Fogos > 3 then ax = math.random(-CONFIG.area, CONFIG.area) ay = math.random(-CONFIG.area, CONFIG.area) position = {x=topos.x+(ax), y=topos.y+(ay), z=topos.z} doSendDistanceShoot(topos, position, CONFIG.fogos.distance) doSendMagicEffect(topos,CONFIG.fogos.efeito) doSendAnimatedText(topos, "*", math.random(100,300)) doSendMagicEffect(position,math.random(28,30)) Fogos = Fogos-1 addEvent(Effects, CONFIG.tempo.fogos, {topos = topos}) elseif Fogos > 0 then for _= 1, CONFIG.fogos.numero do ax = math.random(-CONFIG.area, CONFIG.area) ay = math.random(-CONFIG.area, CONFIG.area) position = {x=topos.x+(ax), y=topos.y+(ay), z=topos.z-1} doSendMagicEffect(position,math.random(28,30)) doSendAnimatedText(position, "Bumm", math.random(100,300)) end Fogos = Fogos-1 addEvent(Effects, CONFIG.tempo.fogos, {topos = topos}) else addEvent(Trans, 1500, {topos = topos}) Fogos = CONFIG.fogos.numero end end local Tran = CONFIG.transforma.numero function Trans(t) topos = t.topos if Tran ~= 0 then ax = math.random(-CONFIG.area, CONFIG.area) ay = math.random(-CONFIG.area, CONFIG.area) posi = {x=topos.x+(ax), y=topos.y+(ay), z=topos.z, stackpos = 253} position = getThingfromPos(posi) if position.uid ~= 0 and isPlayer(position.uid) == TRUE then doSetItemOutfit(position.uid, CONFIG.item[math.random(1, #CONFIG.item)], (CONFIG.transforma.timeout*1000)) else if math.random(1,10) == 1 and position.itemid == 0 and CONFIG.transforma.createitem == 1 then doCreateItem(CONFIG.item[math.random(1, #CONFIG.item)],1,posi) end end doSendMagicEffect(topos, math.random(12,14)) doSendMagicEffect(posi, CONFIG.transforma.efeito) doSendDistanceShoot(topos, posi, CONFIG.transforma.distance) doSendAnimatedText(posi, "Bzzz", math.random(100,300)) Tran = Tran-1 addEvent(Trans, CONFIG.tempo.trans, {topos = topos}) else Tran = CONFIG.transforma.numero doSendMagicEffect(topos, 2) cartao = doCreateItem(6538,1,topos) text = CONFIG.text .. '\n\nBy: ' ..getPlayerName(cid) doSetItemText(cartao, text) end end Agora vá até data/actions/ e abra o arquivo actions.xml e dicione isso: <action itemid="7961" script="DDM.lua"/> Pronto, o item do pacote é 7961 . Configurando Para configurar o speed basta mudar nessa parte do script: local CONFIG = { contagem = 1, money = 100, tempo = {instal = 15, inicio = 7, fogos = 600, trans = 1200}, fogos = {numero = 15, distance = 3, efeito = 15}, area = 3, transforma = {numero = 10, createitem = 1, timeout = 60, efeito = 35, distance = 30}, item = {7697, 7733, 7692, 2112, 1685, 7966, 7694, 1687}, text = "Happy\nMother's day" } [/left] [/center] [/center] [/left] [/center] -- Contagem: Coloque 1 para que mostre uma contagem regressiva ou 0 para que não msotre -- Money: Preço que deverá ser pago para ativar a caixa -- Tempo: --------- Instal : Tempo (em segundos) que levará para instalar a caixa --------- Inicio : Tempo (em segundos) que levará para começar as ações do pacote --------- fogos : Intervalo (em milisegundos) que levará entra um fogos e outro --------- trans : Intervalo (em milisegundos) que levará entra uma transformação e outra -- Fogos: --------- numero : Numeros de fogos de artificio que será solto --------- distance : efeito de distanca --------- efeito : Numeros de efeito magico -- Area: alcance (em SQMs) maximo que a ação chegará -- Transforma: --------- numero : Numeros de efeitos --------- createitem : Coloque 1 para que seja criado itens, e 0 para que não seja criado --------- timeout : Tempo (em segundos) que o player ficará com o Outfit --------- distance : efeito de distanca --------- efeito : Numeros de efeito magico -- Item: IDs dos itens que poderão ser criados, e que os players poderão ser transformados -- Text: Texto que virá escrito no cartão (lembre-se de colocar entre aspas (")) Bem, lembrando que esse script só funcionará provavelmente apenas em TFS, é isso, espero que tenham gostado e até a próxima
×