Ir para conteúdo

Demonbholder

Infante
  • Total de itens

    1551
  • Registro em

  • Última visita

  • Dias Ganhos

    24

Tudo que Demonbholder postou

  1. Vá no mapeditor e coloque um actionid na estatua. Depois vá em data/actions/script, crie um arquivo .lua, nomeie para rechange. Depois vá em data/actions, abra o arquivo actions.xml e cole isto em algum lugar dele: <action actionid="AID" event="script" value="rechange.lua"/> Troque onde esta AID pelo actionid que você colocou na estatua. Até.
  2. Olha, quanto a mensagem greet, coloque como "". Quanto a distancia eu vou ver.
  3. function onUse(cid, item) local itens = { [8710] = 300, [2679] = 10, [2151] = 5, [2123] = 1 } local reward = 2160 for id, quanti in pairs(itens) do if getPlayerItemCount(cid, id) < quanti then return doPlayerSendCancel(cid, "You dont have the itens.") end end for it, ty in pairs(itens) do doPlayerRemoveItem(cid, it, ty) end doPlayerAddItem(cid, reward, 1) doPlayerSendTextMessage(cid, 4, "Congratulations, you made your item.") return TRUE end Ai está o script.
  4. Alguém pode me dar uma ideia para script?

    1. SkyDangerous

      SkyDangerous

      ADD no msn , bora fazer um script? nbworldcs@hotmail.com

    2. Demonbholder
  5. Usa esse: function onLogout(cid) local id = getPlayerGUID(cid) local ne = getCreatureName(cid) local na = string.match(ne, ".+", 7) if getPlayerStorageValue(cid, 13540) - os.time() > 0 and string.match(ne, "%p%a+%p") ~= '[VIP]' then return TRUE, db.executeQuery("UPDATE `players` SET `name` = `[VIP] "..ne.."` WHERE `id` = "..id) elseif getPlayerStorageValue(cid, 13540) - os.time() <= 0 and string.match(ne, "%p%a+%p") == '[VIP]' then return TRUE, db.executeQuery("UPDATE `players` SET `name` = `"..na.."` WHERE `id` = "..id) end end Coloca o script acima em data/creaturescripts/scripts. Depois adiciona essa tag em creaturescripts.xml: <event type="logout" name="FimVip" event="script" value="NomeDoArquivo.lua"/> Edita onde diz NomeDoArquivo e coloca o nome do arquivo .lua que tu usou para colocar o script acima. -- Vai funcionar assim: O cara vai comprar vip e depois que ele sair o nome dele será atualizado. Até.
  6. Beleza, quanto ao de avisar só se falar bye e hi de novo, eu fiz assim porque tu falou que é como se ele fosse buscar o item, então ele iria ter que se afastar do npc e sair, mas se tu já arrumou ta beleza. Qualquer coisa posta ai. Movido para sub-seção de pedidos atendidos, abraços.
  7. Ahhh sim, quanto a ele virar sorcerer é porque eu estava testando e editei a table e depois eu ia arrumar e esqueci. Já edito. Quanto a ele pegar os itens ele pede sim, nessa parte: elseif getPlayerStorageValue(cid, sto) > 1 and getPlayerStorageValue(cid, sto) < 6 then selfSay('Olá, me lembro que você escolheu o elemento ' .. getName(getPlayerStorageValue(cid, sto)) .. ', então, você me trouxe o ' .. getItemNameById(itenstab[getName(getPlayerStorageValue(cid, sto))].item) .. ' ?', cid) talkState[cid] = 20 Já edito. -- Outra coisa, posso mover para seção de dúvidas sanadas aquela dúvida sua da função? -- Script editado.
  8. Realmente, o tópico não foi revivido, mas enfim, continua sendo flood, então continua o alerta. -- Bom script por sinal. Abraços.
  9. Fiz um aqui, pelo que eu vi não tem bugs, mas da uma testada: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} local sto = 14000 local itenstab = { ['death'] = {item = 2160, storage = 2, mg = "Parabéns, você escolheu o elemento death."}, ['fire'] = {item = 2421, storage = 3, mg = "Parabéns, você escolheu o elemento fire."}, ['ice'] = {item = 2422, storage = 4, mg = "Parabéns, você escolheu o elemento ice."}, ['earth'] = {item = 2423, storage = 5, mg = "Parabéns, você escolheu o elemento earth."} } local voctab = { ['sorcerer'] = {msg = "Parabéns, agora você é um sorcerer.", id = 1}, ['druid'] = {msg = "Parabéns, agora você é um druid.", id = 2}, ['paladin'] = {msg = "Parabéns, agora você é um paladin.", id = 3}, ['knight'] = {msg = "Parabéns, agora você é um knight.", id = 4} } function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) if getPlayerLevel(cid) < 8 then return selfSay('Você ainda não esta preparado para seu destino.', cid) end if (msgcontains(msg, 'hi') or msgcontains(msg, 'hello')) and talkUser == nil then if getPlayerStorageValue(cid, sto) == -1 then selfSay('Por favor, escolha sua vocação. [sorcerer],[Druid],[Paladin],[Knight]', cid) talkState[cid] = 1 elseif getPlayerStorageValue(cid, sto) == 1 then selfSay('Escolha seu elemento.', cid) talkState[cid] = 30 elseif getPlayerStorageValue(cid, sto) > 1 and getPlayerStorageValue(cid, sto) < 6 then selfSay('Olá, me lembro que você escolheu o elemento ' .. getName(getPlayerStorageValue(cid, sto)) .. ', então, você me trouxe o ' .. getItemNameById(itenstab[getName(getPlayerStorageValue(cid, sto))].item) .. ' ?', cid) talkState[cid] = 20 end end end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = cid if voctab[msg] and talkState[talkUser] == 1 then selfSay('Você tem certeza disso?', cid) voc = msg talkState[talkUser] = 2 elseif msgcontains(msg, 'yes') and talkState[talkUser] == 2 then doPlayerSetVocation(cid, voctab[voc].id) setPlayerStorageValue(cid, sto, 1) selfSay(voctab[voc].msg .. " Agora escolha seu elemento. [death],[ice],[Fire],[Earth]", cid) talkState[talkUser] = 30 elseif msgcontains(msg, 'no') and talkState[talkUser] == 2 then selfSay("Ok, then.", cid) talkState[talkUser] = 1 end if itenstab[msg] and talkState[talkUser] == 30 then selfSay('Você tem certeza disso?', cid) el = msg talkState[talkUser] = 31 elseif msgcontains(msg, 'yes') and talkState[talkUser] == 31 then setPlayerStorageValue(cid, sto, itenstab[el].storage) selfSay(itenstab[el].mg, cid) talkState[talkUser] = nil elseif msgcontains(msg, 'no') and talkState[talkUser] == 31 then selfSay("Ok, then.", cid) talkState[talkUser] = 30 end if msgcontains(msg, 'yes') and talkState[talkUser] == 20 then if getPlayerItemCount(cid, itenstab[getName(getPlayerStorageValue(cid, sto))].item) >= 1 then doPlayerRemoveItem(cid, itenstab[getName(getPlayerStorageValue(cid, sto))].item, 1) selfSay('Parabéns, você ganhou seu elemento.', cid) setPlayerStorageValue(cid, sto + 1, itenstab[getName(getPlayerStorageValue(cid, sto))].storage) doTeleportThing(cid,{x = 1000,y = 1000, z = 6}) setPlayerStorageValue(cid, sto, 6) talkState[talkUser] = nil else selfSay('Por favor, não minta, vá buscar o item para seu elemento.', cid) end elseif msgcontains(msg, 'no') and talkState[talkUser] == 20 then selfSay('Certo, volte mais tarde.', cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) function getName(n) for m, s in pairs(itenstab) do for i, r in pairs(s) do if i == 'storage' and r == n then return m end end end end Abraços.
  10. Haha que interessante. Deixa eu ver se eu entendi, na verdade foi adiciona o item com aquela sprite, mas muda os atributos para ficar igual ao item que ele quer? Abraço.
  11. Não tive tempo para testar, mas o tutorial me parece bom. Pelo que comentaram é efetivo, então nada mais a fazer além de aprovar! Boa, abraços.
  12. OT Server não é ilegal, pois não é o OT Server em si que usa o client do tibia e sim os que jogam o OT Server. Abraços.
  13. Vocês pedem os scripts e se esquecem do tópico...

  14. Quanto profissionalismo para um administrador de um fórum. É por isso que vocês vão down rapidinho. O XTibia está implantando os bots independente de concorrentes, queremos apenas proporcionar um conteúdo melhor para nossos membros. Até.
  15. Olha amigo, nós temos grandes sistemas de refinamento aqui no fórum. Vou te passar o link dos que eu lembro: http://www.xtibia.com/forum/topic/153132-sistema-de-alquimia/ http://www.xtibia.com/forum/topic/138928-sistema-de-refinamento-em-portugues/ Da uma olhada nesses ai, abraço.
  16. Pedido atendido, tópico movido para seção de Dúvidas de scripts sanadas. Abraços.
  17. Pelo que me parece o pedido já foi atendido. Evitem reviver os tópicos se não for necessário. Movido, abraços.
  18. Como já disse antes, apoio os bots no eks. Esperava que os membros também apoiassem, estranho. OBS: É perda de tempo e não perca de tempo. Abraços.
  19. Sim parceiro, ai a gente coloca pro script verificar o id da arvore, assim: function onUse(cid, item, fromPosition, itemEx, toPosition) local position = {x=1095, y=1104, z=7} -- reward room if item.itemid == ID_HALLOWED_AXE and itemEx.uid == UNIQUEID and isInArray({ID1, ID2}, itemEx.itemid) then if getPlayerLevel(cid) > 200 then doTeleportThing(cid, position) doSendMagicEffect(position, CONST_ME_TELEPORT) else return FALSE end end return TRUE end Se eu não me engano são dois ids de arvores possíveis né? Ai em ID1 tu coloca um id e em ID2 tu coloca o outro. Abraço.
  20. Vê se é isso: function onUse(cid, item, fromPosition, itemEx, toPosition) local position = {x=1095, y=1104, z=7} -- reward room if item.itemid == ID_HALLOWED_AXE and itemEx.uid == UNIQUEID then if getPlayerLevel(cid) > 200 then doTeleportThing(cid, position) doSendMagicEffect(position, CONST_ME_TELEPORT) else return FALSE end end return TRUE end Edita ali o ID_HALLOWED_AXE e o UNIQUEID.
  21. O que o gustavo fez não foi uma infração. Reviver tópico só se torna uma infração quando o post é considerado flood, e como o post dele visou ajudar o membro, não é considerado um desrespeito às regras. Espero que tenha ficado claro, abraços.
  22. Bom, creio que a seção de suporte de informática seja o local mais apropriado para esta dúvida. Ainda sim, não é no XTibia que você deveria procurar auxílio para este tipo de problema. Tópico movido e renomeado, abraços.
  23. Bom, vou esclarecer o ato de reviver um tópico. Reviver um tópico só é uma infração quando o post é considerado flood, nesse caso, é aplicada a reputação negativa (rep-). Como o post do nosso amigo é um dúvida, não se encaixa em uma infração à regra, portanto, tudo bem. Espero ter ficado claro, abraços.
  24. @DrakyLucas Cuidado para não linkar outros fóruns, desta vez vou apenas deixar o alerta verbal e editar seu post. Abraços.
  25. Da pra dar uma "burlada" na função. Setar o storage, mas dai fazer valer apenas no momento em que for executado o script, deste jeito: t = {} function setGlobalStorageValue(sto, val) t[sto] = val end function getGlobalStorageValue(sto) return t[sto] and t[sto] or -1 end setGlobalStorageValue(3000, 'teste') print(getGlobalStorageValue(3000)) Vai printar: teste Mas se depois de utilizar esse código, você apagar e executar, por exemplo, este script: t = {} function setGlobalStorageValue(sto, val) t[sto] = val end function getGlobalStorageValue(sto) return t[sto] and t[sto] or -1 end print(getGlobalStorageValue(3000)) Vai printar -1 -- Abraços.
  • Quem Está Navegando   0 membros estão online

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