Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''action''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

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

Encontrar resultados em...

Encontrar resultados que contenham...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Sou

  1. Antes de mais nada,queria deixar claro que sou um aprendiz,na verdade sou mapper,entendo muito de map editor,RME,criação de maps etc,sou novo no mundo dos scripts,então críticas e dicas são muito bem vindas.CRÉDITOS 80% meu e 20% de uma talkaction que me inspirou,minha ideia saiu de uma talkaction,mas eu modifiquei para ser uma action e troquei algumas funções. Sem mais delongas,o que é esse script? Você da use em alguma coisa,statue,wall,stone, sei la,você que sabe,e você ganha um item se tiver outros x itens. É como se fosse uma compra,você da x itens e ganha um Item,dando use na pedra. Abra a pasta data/action/script e crie um arquivo.lua com o nome "stonetrade.lua" sem as aspas,cole essa função: function onUse(cid, item, frompos, item2, topos) if doPlayerRemoveItem(cid,2157,200) then doPlayerAddItem(cid,2400,1) doSendMagicEffect(getPlayerPosition(cid), 14) else doPlayerSendCancel(cid, 'you not have 200 Gold Nuggets.') doSendMagicEffect(getPlayerPosition(cid), 3) end end salve e vá na pasta data/actions/actions.xml e add essa tag: <action actionid="5005" script="stonetrade.lua" /> feito isso,agora é só ir no seu map editor e colocar a action id 5005 no item que você quiser,no meu caso coloquei numa "angel statue",mas fica a seu critério,pode colocar no item que vc quiser,uma arvore,uma parede até um tile,só basta colocar a mesma action que foi gravada no arquivo xml,e a mesma ainda não pode existir no seu server,se n vai dar errado! Explicando a função: Vermelho: significa que a função é executada através de um "Use" ou seja clicando com o botão direito do mouse na estatua. Verde: É o item ou os itens que serão retirados do jogador para que ele ganhe a recompensa, o primeiro é o id e o segundo a quantia. Azul: O item que o player irá ganhar caso ele tenha na bp os itens exigidos na linha de cima =2400 no caso uma sov no exemplo acima. Cinza: É a animação que vai surgir no corpo do jogador se ele tiver o item ,o número indica a animação. Azul Claro:A msg que vai aparecer caso o jogador não tenha os itens necessários para processar a função. Roxo:A animação que irá aparecer no corpo do player se ele não tiver o item,o numero 3 indica o tipo de animação Muito obrigado,esse foi meu primeiro post,espero que me critiquem com respeito se preciso,mas estou aprendendo,prometo que com um pouco de inspiração consigo criar coisas muito mais interessantes,mas esse foi só o inicio,comente,elogie,critique,me de um motivo para me superar e sempre postar novas coisas!
  2. AI GALERINHA DO XTIBIA AKI SHADOWNZINHO ESTOU ENTRANDO PARA RAMO SCRIPTER ^^ AINDA SOU NOVO NISSO QUERO QUE VEJAM MEU PRIMEIRO SCRIPT 100% MEU (DIGAM O QUE ACHAM, OQ ESTA FALTANDO ETC...) PRIMEIRAMENTE VAO EM (PASTA DO OT/DATA/ACTION/SCRIPT) DEPOIS DISSO CRIE UM ARQUIVO.LUA LA COM UM NOME QUE VC ESCOLHER (EX: outfitquest.lua) SE TIVER ALGUMA COISA DENTRO DO ARQUIVO APAGUE E COLOQUE ISSO LEGENDA * VERMELHO É O VALOR DA STORAGE QUE O PLAYER IRA RECEBER AO GANHAR O OUTFIT * AZUL É O OUTFIT QUE O PLAYER IRA RECEBER (287 SE PLAYER FOR MALE /// 312 SE O PLAYER FOR FEMALE) * VERDE ADDONS DO OUTFIT QUE O PLAYER IRA RECEBER (1 SOMENTE A 1ª PARTE /// 2 SOMENTE A 2ª PARTE /// 3 FULL) * ROXO A MENSAGENS QUE IRAO APARECER QUANDO PLAYER GANHAR O OUTFIT E QUANDO TENTAR PEGAR NOVAMENTE) DEPOIS QUE FIZER ISSO SALVE E FEXE VÁ EM (PASTA DO OT/DATA/ACTIONS/ACTION.XML) ABRA E ADICIONE A SEGUINTE TAG DEPOIS DE TER FEITO ISSO VAMOS PARA ULTIMA PARTE VÁ EM (PASTA DO OT/DATA/XML/OUTFIT.XML) E COLOQUE AS SEGUINTES TAGS VALEU GALERINHA DO XTIBIA DUVIDAS POSTEM AKI QUE AJUDAREI (COMENTEM) CREDITOS : 100% MEU POIS EU QUE CRIEI O SCRIPT AJUDEI ? REP+ SHADOWNZINHO
  3. Positioner [v1] Iaaaae Galera, como vão? Hoje vim lhes apresentar o meu Action. É o Positioner, oque ele faz? O Positioner é um item (ID:1956 - MAPA), ao dar USE, ele grava suas coordenadas, ai você pode ir para aonde quiser. Pode até morrer, dando USE novamente, voltará para aquelas coordenadas (posição) que salvou. Legal né? Eu adaptei alguns códigos que achei para fazê-lo, vamos lá. Vá em data/lib, abra o arquivo 050-function.lua, as vezes pode estar só com o nome function.lua. Lá, na última linha de todas, dê um enter, pule uma linha e acrescente isso: function savePosition(cid) RETORNAR = {x = getPlayerStorageValue(cid, 20000), y = getPlayerStorageValue(cid, 20001), z = getPlayerStorageValue(cid, 20002)} local PLAYER = getPlayerGUID(cid) addEvent(function() if isCreature(cid) then setPlayerStorageValue(PLAYER, 20003, 0) else db.executeQuery("DELETE FROM `player_storage` WHERE `key` = 20003 AND `player_id` = " .. getPlayerGUID(cid) .. ";") end end) end Essa é a nossa função para salvar a position, usei a do SkyMagnum (talkaction) e adaptei para action. No caso, vá em data/actions/scripts, copie algum arquivo dessa pasta e cole. Renomeie para positioner.lua,abra com o bloco de notas, apague oque estiver dentro e cole: Agora no arquivo actions.xml, adicione essa tag: <action itemid="1956" event="script" value="positioner.lua"/> No caso é o item ID 1956 que é um mapa, basta dar USE nele para salvar e dar USE novamente para retornar á position! Se quiser trocar o ID do item na tag pode, mas esse item não pode ser do tipo "Use With..." Beeeeijo grande galera, aguardem por breves versões
  4. Iaeh galerinha do Xtibia venho aqui trazer um script que acabei de fazer, um script básico de Quest que adiciona mana, item e experiencia ao player e depois teleporta o player para determinada posição, então lavai. vai em action\scripts\quests, e copie qualque script e renomeie para "quest1.lua", depois cole isso dentro dele: depois va em action.xml e cole essa tag la: ali onde ta "xxxx" voce pode botar qualquer numero que ainda nao esteja sendo usado como uniqueid, depois eh so add esse numero na uniqueid da quest no mapa! como ja expliquei tudinho no script mesmo intaum nem vo explicar mais! creditos: RickSoares "EU", por fazer o script!
  5. Fala Galera Do Fórum xTibia! Eu Estava Vagando Por Alguns Fóruns, e Encontrei Essa Action, Muito Boa Para Map's De EXP Baixa/Alta/Mediana. Vamos Lá! Primeiramente, Vá Em data/actions/scripts e Crie Um Arquivo .lua Com o Nome De changeoutfit, Adicione Isso Nele - Depois Vá Em data/actions.xml e Adicione a Seguinte Tag - <action uniqueid="65415" event="script" value="changeoutfit.lua"/> Depois Vá Em Seu Map Editor, e Adicione Os ID's Da Estátua, Observe - Espero Que Gostem! Créditos - Mark e Same
  6. Olá pessoal hoje trago a vocês uma Action que ira ajudar alguns iniciantes, e especialmente para servidores derivados 8.54 #Oque ele faz? # Primeiramente ele cura o personagem por certa quantidade de vida, tem um tempo de reutilização é também da um STORAGE. 1- Copie um arquivo .lua e depois renomeie-o com qualquer nome. 2- Apague tudo oque há dentro e cole o código abaixo: local temp = { exhausted = 1, storage = 2100 } local confg = { level = 5, } function onUse(cid, item, fromPosition, itemEx, toPosition) local hp = 30000 local mp = 30000 if(getPlayerStorageValue(cid, temp.storage) > os.time() and getPlayerStorageValue(cid, temp.storage) < 100+os.time()) then doPlayerSendTextMessage(cid, 24, "você esta exausto, espere " .. getPlayerStorageValue(cid, temp.storage) - os.time() .. ' segundo' .. ((getPlayerStorageValue(cid, temp.storage) - os.time()) == 1 and "" or "s")) return true elseif getPlayerLevel(cid) < confg.level then doPlayerSendCancel(cid, "You need to be atleast level ".. confg.level ..".") return true end doCreatureAddHealth(cid, hp) doCreatureAddMana(cid, mp) doSendMagicEffect(getCreaturePosition(cid), 13) setPlayerStorageValue(cid, temp.storage, os.time() + temp.exhausted) return true end 3- Abra o Actions.xml e cole isso lá: <action itemid="ID DO ITEM" event="script" value="NOMEDOARQUIVO.lua"/> QUALQUER ERRO REPORTAR. Créditos: Thalia (Peguei alguns códigos dele) SkyDarkEyes (Por ele ser viado) Brinks (Pela base)
  7. Ola galera, vim posta aki um scripter e pode ser bem útil para vocês. Ele e uma actions e funciona assim, você poder criar um item no seu Server que de uma Outfit de um Monstro (Aleatoriamente). Passei quase 2 Horas adicionando mais de 300 monster que vão ate a versão 8.40. para vocês (nem contei quantos monster adicionei, quem quiser contar e postar ai, agradeço) Primeiro va em data/actions/scripts e crie um arquivo.lua com o nome de outfits.lua local price = 2600 --- Quanto a Outfit custara local duration = 200 --- Quanto tempo ela durara. local monsters = {"demon", "frost dragon", "grim reaper", "fire elemental", "water elemental", "ferumbras", "madareth", "toad", "azure frog", "bog frog", "green frog", "gozzler", "hellhound", "orc", "fire elemental", "orc", "orc warrior", "orc leader", "orc rider", "orc warlord", "orc shaman", "orc spearman", "orc beserk", "dwarf", "dwarf soldier", "dwarf geomancer", "dwarf guard", "dwarf miner", "monk", "barbarian bloodwalker", "barbarian brutetamer", "barbarian headsplitter", "barbarian skullhunter", "assassin", "necromancer", "priestess", "dark magician", "fury", "warlock", "barbarian skullhunter", "warlock", "witch", "infernalist", "ice witch", "amazon", "valkyrie", "pirate corsair", "pirate skeleton", "pirate ghost", "pirate marauder", "behemoth", "cyclops", "cyclops drone", "cyclops smith", "frost giant", "yeti", "kongra", "sibang", "merlkin", "elephant", "mammoth", "tiger", "lion", "quara pincher", "quara predator", "quara constrictor", "quara hydromancer", "spider", "poison spider", "giant spider", "crystal spider", "tarantula", "scorpion", "wailing widow", "ancient scarab", "wasp", "scarab", "larva", "sandcrawler", "bug", "zugurosh", "ushuriel", "latrivan", "hellgorak", "golgordan", "annihilon", "dark torturer", "destroyer", "diabolic imp", "fire devil", "nightmare", "nightmare scion", "plaguesmith", "elf", "elf arcanist", "elf scout", "frost troll", "troll", "troll champion", "island troll", "swamp troll", "dworc fleshhunter", "dworc venomsniper", "dworc voodoomaster", "chakoya toolshaper", "chakoya tribewarden", "chakoya windcaller", "rotworm", "carrion worm", "rotworm queen", "deer", "sheep", "pig", "wolf", "mutated bat", "mutated rat", "mutated tiger", "chicken", "parrot", "terror bird", "penguin", "azerus", "dragon", "dragon lord", "ghastly dragon", "undead dragon", "wyrm", "wyvern", "crocodile", "killer caiman", "tortoise", "goblin", "goblin assassin", "goblin leader", "goblin scavenger", "ghost", "phantasm", "wisp", "gargoyle", "worken golem", "hellfire fighter", "energy elemental", "acid blob", "death blob", "mercury blob", "bog raider", "defiler", "carniphila", "haunted treeling", "black knight"} --- Nome dos Outfits. function onUse(cid, item, fromPosition, itemEx, toPosition) doPlayerRemoveMoney(cid, price) doSetMonsterOutfit(cid,monsters[math.random(#monsters)],duration*1000) doPlayerSendTextMessage(cid, 20, 'Ganhe seu outfit por '.. price ..' gold coins!') else doPlayerSendTextMessage(cid, 20, 'Você não tem '..price..' gold coins Para comprar o Outfit!') doSendMagicEffect(getThingPos(cid),12) end return true end Agora vá em actions.xml e adicione essa tag: <action uniqueid="18500" event="script" value="outfits.lua"/> Agora abra seu RME, e adicione o UniqueId 18500 no item que dara a Outfit.
  8. Então,eu já postei alguns tutoriais aqui no site,mas poucos deles são de minha autoria,esse é um dos poucos créditos 100% meus não sou nenhum profissional,sou apenas um amador muito curioso,na maioria das vezes não consigo criar nada,pq n tenho experiencia em lua,mas as vezes sai coisas legais como essa função,sem mais delongas vamos explicar! o que é? É um sistema de compra,vc da use na estatua,e se tiver os itens ou o dinheiro vc ganha acesso a uma quest ou a uma hunt sei la,vc q sabe. abra a pasta data/actions/scripts: cria um arquivo.lua abra-o e cole a seguinte função! function onUse(cid, item, frompos, item2, topos) acesso = getPlayerStorageValue(cid,194) -- checa a storage if acesso == -1 then -- serve pra n deixar o jogador comprar 2x o acesso if (doPlayerRemoveMoney(cid, 1000)) then -- valor em dinheiro setPlayerStorageValue(cid, 194, 1) -- sto que o jogador ganha doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,'Here is your Acess To Green Djinn Faction!') doSendMagicEffect(getPlayerPosition(cid), 14) else doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,'You Not Have 1000 gps.') doSendMagicEffect(getPlayerPosition(cid), 15) end else return 0 end return 1 end agora registre data/actions/action.xml: add a tag \/ \/ \/ <action actionid="xxxx" script="nome" /> ta aí com todas minhas limitações,as vezes consigo criar minhas proprias actions,são simples sim,mas é tudo q sei fazer,sou muito amador!
  9. gente tenho uma Quest feita e quero colocar 6 baus cada um com 1 item e o player so pode pegar um desses baus ok manda o scripter ai para min por favor ha caso eu queira adicionar +1 bau com item depois me dis a teg que eu tenho que adicionar ai
  10. 890098

    Quest bugada

    Na quest do golden helmet e do blessed shield só da pra pegar o golden helmet. Esse é o script do blessed shield -- annihilator chests function onUse(cid, item, frompos, item2, topos) if item.uid == 15873 then queststatus = getPlayerStorageValue(cid,5433) if queststatus == -1 then doPlayerSendTextMessage(cid,22,"You have found a blessed shield.") doPlayerAddItem(cid,2523,1) setPlayerStorageValue(cid,5433,1) else doPlayerSendTextMessage(cid,22,"It is empty.") end else return 0 end return 1 end
  11. [/img] Iae Galera tudo bom ?? acho que sim. então, hoje meu amigo Zipter98 me ajudou com um Script super foda. que seria a da Outland Main quest, e só para avisar. ela não e igual a da PxG. e só um esquema de quest, vocês iram entender mais para frente. então vamos ao script: Crie um arquivo.lua na pasta actions/script, e cole isso lá: e em actions.xml coloque essa tag: <action actionid="xxxx" script="arquivo.lua"/> esse action irá para a alavanca que o player irá puxar para todos teleportarem para a area de fight, combate, como vocês preferirem chamar. agora crie outro arquivo.lua, e cole isso: e em actions.xml, coloque essa tag: <action actionid="19381;19382;19383;19384;19385" script="arquivo.lua"/> esses actions vocês não precisam colocar em nenhuma alavanca. EXPLICAÇÃO: Primeiramente irei explicar como o script funciona, vamos lá. 1º os players terão que ficar na posição indicada para cara clãn. nesta parte do primeiro script que coloquei, você poderá mudar as posiçoes, Lembrando que eles só serão teleportados, se todos estiverem nas posições certas: {1, {x = 1056, y = 1056, z = 7}, {x = 1056, y = 1057, z = 7}}, --{valor da storage do clan, posição que o jogador deve ficar, posição para qual o mesmo será teleportado}, {2, {x = 1057, y = 1056, z = 7}, {x = 1056, y = 1058, z = 7}}, {3, {x = 1058, y = 1056, z = 7}, {x = 1056, y = 1059, z = 7}}, {4, {x = 1059, y = 1056, z = 7}, {x = 1056, y = 1060, z = 7}}, {5, {x = 1060, y = 1056, z = 7}, {x = 1056, y = 1061, z = 7}}, {6, {x = 1061, y = 1056, z = 7}, {x = 1056, y = 1062, z = 7}}, {7, {x = 1062, y = 1056, z = 7}, {x = 1056, y = 1063, z = 7}}, {8, {x = 1063, y = 1056, z = 7}, {x = 1056, y = 1064, z = 7}}, {9, {x = 1064, y = 1056, z = 7}, {x = 1056, y = 1065, z = 7}}, aqui está uma tabela que irá ajudar muito: [1] = Volcanic [2] = Seavell [3] = Orebound [4] = Wingeon [5] = Malefic [6] = Gardestrike [7] = Psycraft [8] = Naturia [9] = Raibolt esses são os ids de cada clãn. 2º quando todos forem teleportados, aparecera os primeiros pokemons, após derrotar esses pokemons, irá aparecer a proxima alavanca, essa alavanca nao precisa todos estarem em uma certa posição e só alguém chegar nela e clicar, que irá aparecer outros pokemons: local monsters = {{"Pikachu", {x = 1050, y = 1058, z = 7}}, {"Magikarp", {x = 1051, y = 1058, z = 7}}} local posi = {x = 1049, y = 1054, z = 7} --Coordenadas da posição superior esquerda da área. local posis = {x = 1057, y = 1061, z = 7} --Coordenadas da posição inferior direita da área. local pos = {x = 1053, y = 1058, z = 7} --Onde a alavanca será criada. Local monsters = {{"Nome do pokemon", {Posição aonde ele irá aparecer}}, Local posi = {Coordenadas da Parte Superior esquerda da área, que seria <</\} Locas posis = {Coordenadas da Parte Inferior direita da área, que seria >>>\/} Local pos = {Posição aonde a próxima alavanca irá aparecer após os pokemons serem derrotados} 3° quando a primeira alavanca aparecer você irá clicar nela e aparecera outros pokemons, que você poderá configurar no segundo script nessa parte: local monsters = {{"Pikachu", {x = 1050, y = 1058, z = 7}}, {"Magikarp", {x = 1051, y = 1058, z = 7}}, {"Caterpie", {x = 1052, y = 1058, z = 7}}} lembrando que no segundo script essa parte aqui: continuando essa parte: local monsters = {{"Pikachu", {x = 1050, y = 1058, z = 7}}, {"Magikarp", {x = 1051, y = 1058, z = 7}}, {"Caterpie", {x = 1052, y = 1058, z = 7}}} eo mesmo esquema que eu falei ali, nome do pokemon, ea posição. essa parte aqui: local aids = {19381, 19382, 19383, 19384, 19385} --Action IDs. essas sao as actions de cada alavanca que irá aparecer. vou resumir para vocês, clicou na alavanca, apareceu os pokemons, matou eles e apareceu outra alavanca, e assim por diante. no caso desse script, tem 4 waves. Criando novas waves: Primeiramente, tenha em mente que cada actionid representa uma nova wave. Se são 4 actionids, então serão 5 waves (4 actionids + a wave programada pela alavanca da Outland Main). Quando você adicionar um novo actionid, não se esqueça de colocá-lo na tag e na tabela aids. Cada elseif item.actionid == aids[número] then representa uma wave, sendo número = wave. LEMBRE-SE: esse número também representa a index na tabela aids. Portanto, se você colocar, por exemplo, esse número = 20, e não tiver 20 actionids na tabela, não funcionará. Modelo: elseif item.actionid == aids[wave/número/index do actionid na tabela aids] then local monsters = {{"Nome do monstro", posição}, {"Nome do monstro", posição}, {"Nome do monstro", posição}, {"Nome do monstro", posição}} doRemoveItem(item.uid, 1) addEvent(function() for i = 1, #monsters do doCreateMonster(monsters[i][1], monsters[i][2]) end checkMonsters(posi, posis, pos, new_aid) --Lembre-se: esse new_aid sempre será o actionid da alavanca+1. end, 5*1000) Todas as waves estão configuradas para ocorrer em 5 segundos. Para alterar isso, basta mudar os 5*1000 para segundos*1000. Exemplo: 10 segundos-10*1000. Configurei 5 waves, sendo os actionids: 19381, 19382, 19383, 19384. OBS: A primeira wave não possui actionid, pois foi iniciada pelo código de entrada da Outland Main! Segue como deixei as waves: -[wave/actionid] - Pokémons: pokémons que vêm na wave. [1ª wave/sem actionid] - Pokémons: Pikachu e Magikarp. [2ª wave/19381] - Pokémons: Pikachu, Magikarp e Caterpie. [3ª wave/19382] - Pokémons: Pikachu, Magikarp, Caterpie e Metapod. [4ª wave/19383] - Pokémons: Pikachu, Magikarp, Caterpie, Metapod e Butterfree. [5ª wave/19384] - Pokémons: Pikachu, Magikarp, Caterpie, Metapod, Butterfree e Mewtwo. Acrescentando: quando for configurar a última wave, configure normalmente como as outras. Quando todos os pokémons forem derrotados, será criada uma alavanca com actionid x. Então, em outro arquivo, você configura o quê quiser: se a alavanca criada levará para uma posição e dará os prêmios, ou se apenas teleportará, ou se, sei lá, matará os jogadores. Então, na tag, você coloca o actionid que foi setado nesta última alavanca (em outras palavras, o actionid da alavanca da última wave + 1). Espero que tenham entendido, eu sei que e muita coisa, e só ler devagar. Depois eu coloco imagens para vocês verem como funciona. abraçs Creditos: Zipter98 (Pelo script todo) Eu (pela ideia e por postar)
  12. OLÁ XTIBIA GOSTARIA DE PEDIR UMA SCRIPT BOM TENHO UMA JÁ SO QUE GOSTARIA QUE GANHACE O SEGUINTE HIDAN AMULET ID:11396 SEMANA PREMIUM ID:8981 CERTIFICADO ID:6088 COM A SEGUINTE SCRIPT NPC É ISSO GALERINHA AGUARDO RESPOSTAS E +REP PRA QUEM AJUDAR XD PS: < IMPORTANTE > TIPOW QUE O PLAYER ESCOLHECE TROCAR O CERTIFICADO PELA SEMANA PREMIUM OU PELO HIDAN AMULET SO PODER ESCOLHER UM DOS DOIS
  13. Bom, é minha Primeira Script, Qualquer coisa posta ai function onUse(cid, item, frompos, item2, topos) local level = { [LeveldoPlayer] = {{ItemID, Quantidade}} } --Multiplique Isso quantas vezes você por níves, exemplo você poe 100 e 150 ponha isso 2x (Mude a Stor -- Storage) if level[getPlayerLevel(cid)] then if getPlayerStorageValue(cid, Storage1) >= 1 then for _, prizes in pairs(level[getPlayerLevel(cid)]) do doPlayerAddItem(cid, prizes[1], prizes[2]) doPlayerSendTextMessage(cid, 27, "Mensagem Completa.") setPlayerStorageValue(cid, Storage1, 1) end else return doPlayerSendCancel(cid, "Sorry, not possible.") end return true --Multiplicar Até aqui end Como Editar: Storage1 = Storage Mensagem Completa = Mensagem de quando o player pegar o Baú Mensagem de Erro = Mensagem quando não conseguir [LeveldoPlayer] = Level do player ItemID = ID do item Quantidade = Quantidade do item Exemplo da que eu uso no meu servidor: function onUse(cid, item, frompos, item2, topos) local level = { [120] = {{622, 1}, {2392, 100}, {2160,10}}, [100] = {{613, 1}, {622, 1}, {2392, 100}, {2160,10}}, } --Level 100 if level[getPlayerLevel(cid)] then if getPlayerStorageValue(cid, 646521456215) >= 1 then for _, prizes in pairs(level[getPlayerLevel(cid)]) do doPlayerAddItem(cid, prizes[1], prizes[2]) doPlayerSendTextMessage(cid, 27, "Você recebeu suas recompensas! Boa sorte em sua jornada.") setPlayerStorageValue(cid, 646521456215, 1) end else return doPlayerSendCancel(cid, "Sorry, not possible.") end return true --level 120 if level[getPlayerLevel(cid)] then if getPlayerStorageValue(cid, 646521456216) >= 1 then for _, prizes in pairs(level[getPlayerLevel(cid)]) do doPlayerAddItem(cid, prizes[1], prizes[2]) doPlayerSendTextMessage(cid, 27, "Você recebeu suas recompensas! Boa sorte em sua jornada.") setPlayerStorageValue(cid, 646521456216, 1) end else return doPlayerSendCancel(cid, "Sorry, not possible.") end return true end Como usar: É bem simples, você põe um baú, quando o player Usar o baú ele vai receber o Item e a quantidade. ou seja, você pode por de 10 em 10 leveis o player ir no bau e pegar um "kit" Qualquer Erro poste.
  14. Fala galera, beleza ? Eu preciso de 2 script que vou explica abaixo. Primero eh: Ao clicar em X Item da respawn de um boss em tal lugar e fechar Y teleporte (Tipo yalahar quest), mas soh pode da use no item se nao tiver o boss na sala de respawn dele. (Pra nao bugarem a quest) Segundo eh: Ao matar o boss abrir X teleporte por 1 min, depois de 1 min o teleporte fechar, assim que o teleporte fechar abrir o teleporte que o primero script fecho. Desde ja agradeço.
  15. Olá galera,sou eu de novo com meu segundo script,esse tenho certeza que vai ajudar muito mais que o ultimo. Explicando: É um script de quest,que da um BP com itens dentro,quantos itens você quiser. OBS:Aqui no forum achei um script desse de quest de multiplos itens,porém encontrei alguns erros nele,ele era assim,você clicava no chest,e ganhava uma bp com itens dentro,até aí tudo bem,mas se você clicasse outra vez no chest,você ganhava outra BP vazia,isso fazia uma bagunça,isso ocorreu porque a BP que regia a Action era uma bp "independente" ou seja uma bp sem codificação,não existia um storage nela,aí o player podia dropar a bp infinitas x,porém a bp vinha vazia... créditos 50% meu que montei e corrigi o erro e 50% do criador que não sei quem é! Vá na pasta data/actions/scripts crie um arquivo.lua e o renomeie para "multichest.lua" sem as aspas! cole a seguinte função: function onUse(cid, item, frompos, item2, topos) if item.uid == 7778 then queststatus = getPlayerStorageValue(cid,7778) if queststatus == -1 then doPlayerSendTextMessage(cid,22,"Voce Ganhou um Tera Set!.") local bp = doPlayerAddItem(cid, 1991, 1) -- doAddContainerItem(bp, 7884, 1) doAddContainerItem(bp, 7903, 1) doAddContainerItem(bp, 7885, 2) doAddContainerItem(bp, 7887, 1) setPlayerStorageValue(cid,7778,1) else doPlayerSendTextMessage(cid,22,"It is empty.") end else return 0 end return 1 end Modifique a seu gosto salve e feche! tem essa forma aqui também! function onUse(cid, item, frompos, item2, topos) local items = { [7884] = 1, --Tabela, para facilitar a configuração. Configuração: [id do item] = quantida [7903] = 1, [7885] = 2, [7887] = 1, } if item.uid == 7778 then queststatus = getPlayerStorageValue(cid,7778) if queststatus == -1 then doPlayerSendTextMessage(cid, 22, "Voce Ganhou um Tera Set!.") local bp = doPlayerAddItem(cid, 1991, 1) for a, b in pairs(items) do --looping da tabela items: a = id do item, b = quantidade. Esse "a" generaliza todos os IDs; já "b", todas as quantidades (e seus respectivos items). for i = 1, b do --looping: sem esse looping, a quantidade seria sempre 1. doAddContainerItem(bp, a, 1) --Sendo a = ids configurados na tabela items; esse 1 foi alterado no looping acima, para ter como valor a quantidade "b". end end setPlayerStorageValue(cid,7778,1) else doPlayerSendTextMessage(cid, 22, "It is empty.") end else return 0 end return 1 end qualquer uma das 2 funções que você usar vai dar certo,a diferença é que a de baixo tem tabela,OBS o meu script é o primeiro,esse segundo é do zipter98 créditos pra ele. Use a que você achar mais fácil,as 2 tem a msm função. Agora na pasta data/actions/actions.xml cole essa tag: <action uniqueid="7778" script="multichest.lua" /> salve e feche,e dps no map editor coloque o unique id 7778 no item que você quiser,não precisa ser um chest,pode ser numa statue,num tile,numa wall,qualquer coisa que possa ser add um unique id,Certo? O que você precisa saber? Primeira linha= não meche Segunda linha = Unique id coloque o que você quiser desde q n exista no seu serv Terceira linha = Storage coloque o que você quiser que ainda n exista quarta linha = n meche nela quinta linha = msg que vai receber ao clicar no chest sexta linha = id da bp que vai ser dropada com os itens dentro apartir da sexta linha = os itens que estarão dentro da bp setPlayerStorageValue(cid,7778,1) = é o storage que o player vai ganhar, lembre-se dos prefixos, "Set" = Ganhar "get"=Checar não mecha nos else,nos return e nos end,se n vai dar zebra. doPlayerSendTextMessage(cid,22,"It is empty.") esse é a msg que o player vai receber quando concluir LEIA IMPORTANTE= É interessante você colocar um storage diferente do Uid,porque se você colocar um tile ou uma door pra abrir se o player tiver concluido a quest,com o uid igual ao storage vai bugar,nesse caso é legal colocar o uid diferente do storage.. Muito obrigado por ler,critique! comente! elogie! mas n deixe de se manifestar sua opinião é o que me move e inspira!
  16. Bem galera eu tenho um script e está quase perfeito só está faltando incrementar uma parte, bem quando eu uso o potion no pokemon ele vai soltando os efeitos e healando o pokemon, porém quando o life do pokemon está cheio ele cura mas não solta os efeito... Eu queria que mesmo com o life ja cheio o player pudesse usar o potion e os efeitos aparecessem, tanto curando o pokemon quanto o player... rep+ script abaixo
  17. Estou com um pokemon centurion e estou querendo botar a Master ball para pegar .. Alguem pode me ajudar com script dela ?
  18. Pessoal eu já procurei em um monte de site achei váááarriooos sistema vip por item, mas o problema é que nem meu sistema vip eu sei, então eu queria saber se alguém pode me ajudar a fazer um SISTEMA VIP, e para adquirir essa vip precisa clikar em um item, obg ((;
  19. Nome Do Sistema: Venda de itens por alavanca. Créditos: MatheusMkalo (Por criar) Isbigo (Por Postar) Olá galerinha do :XTibia_smile: . Vim lhes trazer um script de venda de items por alavanca. Mais como ele funciona? ... SIMPLES! Você ira colocar o item em um devido SQM, é ira clicar numa alavanca ao lado. Mais pode por mais de um item em cima? ... SIM PODE. Ele ira calcular o preço total de todos items posto a venda pelo script. E vende também com os items na BP? ... Ai se ta querendo d-mais também né? Agora vamos la adiciona-lo ao seu OTSERV. Primeira mente abra sua pasta "Actions/scripts" E crie um arquivo chamado Venda.lua, dentro dele adicione isto: function onUse(cid, item, frompos, item2, topos) local sqmpos = {x=80, y=311, z=7} -- Posiçao do sqm que vao estar os items. local configs = { -- Items a venda, use o nome do item ou seu id. [2472] = 10000, ["Plate Armor"] = 300, ["gold ingot"] = 10000, } local sell = false for i,x in pairs(configs) do for s = 0,255 do sqmpos.stackpos = s if getThingFromPos(sqmpos).itemid == (type(i) == "number" and i or getItemIdByName(i)) then sell = type(sell) == "number" and sell+(getThingFromPos(sqmpos).type > 0 and getThingFromPos(sqmpos).type or 1)*x or (getThingFromPos(sqmpos).type > 0 and getThingFromPos(sqmpos).type or 1)*x doRemoveItem(getThingFromPos(sqmpos).uid) end end end if sell then doPlayerAddMoney(cid, sell) return doPlayerSendTextMessage(cid, 22, "Voce vendeu os items e ganhou " .. sell .. " gold coins.") else return doPlayerSendCancel(cid, "Não tem nenhum item na mesa que esteja a venda.") end end Agora em seu Actions.xml adicione a seguinte linha: <action actionid="45666" event="script" value="venda.lua"/> Pronto ele já esta funcionando em seu OTSERV, agora vamos aprender como configura-lo? Para adicionar um novo item basta você adicionar uma nova linha em Venda.lua assim: Exemplo "[iD DO ITEM] = VALOR QUE O PLAYER IRA RECEBER," Você também pode adicionar o item pelo nome fazendo assim: Exemplo "["NOME DO ITEM"] = VALOR QUE O PLAYER IRA RECEBER," (NÃO ESQUEÇA DAS "" ANTES DE POR O NOME DO ITEM COMO "GOLDEN LEGS") Neste linha aqui: {x=80, y=311, z=7} [sera a posição onde ficara os items] Agora vamos adiciona-lo ao seu MAPA? Abra seu MAPA, e escolha um lugar onde os players poderão acessar para vender. [VEJA ABAIXO UM EXEMPLO] Adicione o ID 45666 "que foi colocado no script em Actions.xml na alavanca", Como ACTIONID. Pronto amigo seu script esta pronto para ser usado, espero que gostem. Qualquer duvida, basta você postar e eu irei responder. Gostou? REP+ para nois :button_ok: .
  20. Ele faz você se teleportar para aonde você usou o item, lembre-se que o item deve ter a opção "Use With"(acho que é assim, não lembro direito). /data/actions/scripts: 63vrKjni[/pastebin] actions.xml <action itemid = "ITEM_ID" event = "script" value = "NOME_DO_SCRIPT.lua"/> a configuração é fácil, se não entender poste no tópico. @LEIA Para ele funcionar você deve ter a função "isWalkable" no seu servidor, e fácil de achar, só você colocar no google.
  21. Ola Galerinha do XTibia Venho aqui posta uma script da shiny stone vi um pedido no forum e resolvi posta a do meu antigo servidor... vamos ao que interessa. Primeiramente vá em "DATA/ACTIONS/SCRIPTS" ou "DATA/ACTIONS/SCRIPTS/STONES" do como que estiver no seu servidor e copie um arquivo ".lua" renomeie para shinystone.lua e cole isto dentro. Apos ter feito o passo acima feche e salve, logo em seguida vá em "DATA/ACTIONS/ACTIONS.XML" e adicione esta tag Adicionando mais pokemons no meu script. E simples siga os passos abaixo Agora salve e pronto shiny stone adicionada. =) A sim imagem não tive tempo de testa pois estou no hospital doente mais logo que chega em casa daqui umas 2 semanas eu testarei e postarei ID DA SHINY STONE = 2361 AJUDEI ?? REP + NÃO ?? Poste sua duvida ou erro e tentarei ajuda-lo.
  22. Dasdor

    Potion

    como eu faço pra cada pot tem um efeito diferente por exemplo quando eu usa mana potion faze o CONST_ME_MAGIC_BLUE e quando eu usa o health potion faze o CONST_ME_MAGIC_RED? local config = { removeOnUse = "no", usableOnTarget = "no", -- can be used on target? (fe. healing friend) splashable = "yes", realAnimation = "no", -- make text effect visible only for players in range 1x1 healthMultiplier = 1.0, manaMultiplier = 1.0 } config.removeOnUse = getBooleanFromString(config.removeOnUse) config.usableOnTarget = getBooleanFromString(config.usableOnTarget) config.splashable = getBooleanFromString(config.splashable) config.realAnimation = getBooleanFromString(config.realAnimation) local POTIONS = { [8704] = {empty = 7636, splash = 2, health = {50, 100}}, -- small health potion [7618] = {empty = 7636, splash = 2, health = {20, 50}}, -- health potion [7588] = {empty = 7634, splash = 2, health = {80, 100}}, [7591] = {empty = 7635, splash = 2, health = {500, 700}, level = 80, vocations = {4, 8}, vocStr = "knights"}, -- great health potion [8473] = {empty = 7635, splash = 2, health = {800, 1000}, level = 130, vocations = {4, 8}, vocStr = "knights"}, -- ultimate health potion [7620] = {empty = 7636, splash = 7, mana = {20, 50}}, -- mana potion [7589] = {empty = 7634, splash = 7, mana = {80, 100}}, [7590] = {empty = 7635, splash = 7, mana = {200, 300}, level = 80, vocations = {1, 2, 5, 6}, vocStr = "sorcerers and druids"}, -- great mana potion [8472] = {empty = 7635, splash = 3, health = {200, 400}, mana = {110, 190}, level = 80, vocations = {3, 7}, vocStr = "paladins"} -- great spirit potion } local exhaust = createConditionObject(CONDITION_EXHAUST) setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100)) function onUse(cid, item, fromPosition, itemEx, toPosition) local potion = POTIONS[item.itemid] if(not potion) then return false end if(not isPlayer(itemEx.uid) or (not config.usableOnTarget and cid ~= itemEx.uid)) then if(not config.splashable) then return false end if(toPosition.x == CONTAINER_POSITION) then toPosition = getThingPos(item.uid) end doDecayItem(doCreateItem(2016, potion.splash, toPosition)) doTransformItem(item.uid, potion.empty) return true end if(hasCondition(cid, CONDITION_EXHAUST_HEAL)) then doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED) return true end if(((potion.level and getPlayerLevel(cid) < potion.level) or (potion.vocations and not isInArray(potion.vocations, getPlayerVocation(cid)))) and not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES)) then doCreatureSay(itemEx.uid, "Only " .. potion.vocStr .. (potion.level and (" of level " .. potion.level) or "") .. " or above may drink this fluid.", TALKTYPE_ORANGE_1) return true end local health = potion.health if(health and not doCreatureAddHealth(itemEx.uid, math.ceil(math.random(health[1], health[2]) * config.healthMultiplier))) then return false end local mana = potion.mana if(mana and not doPlayerAddMana(itemEx.uid, math.ceil(math.random(mana[1], mana[2]) * config.manaMultiplier))) then return false end if(not realAnimation) then doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_BLUE) doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1) else for i, tid in ipairs(getSpectators(getCreaturePosition(cid), 1, 1)) do if(isPlayer(tid)) then doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1, false, tid) end end end doAddCondition(cid, exhaust) if(not potion.empty or config.removeOnUse) then doRemoveItem(item.uid) return true end doTransformItem(item.uid, potion.empty) return true end
×
×
  • Criar Novo...