Postado Fevereiro 5, 2012 13 anos Este é um post popular. Bem pessoal, pensei que uma action dessa ia deixar o servidor de vocês com mais RPG, então resolvi botar a ideia para funcionar. - Para que serve? Para o seu servidor ficar com mais RPG, serve para quest mais elaboradas - Como funciona? Você instala a quest e a action no seu servidor, depois para passar na porta, o player ira precisar da chave, quando ele der use, a porta vai se abrir e ficar aberta, quando ele der use denovo a porta irá se fechar e ficar trancada. - Qual a vantagem disso? Na verdade, quase nenhuma, pois só vai trazer mais RPG para o seu servidor se você tiver criatividade para usa-la, alguns players valorizam isso. - Como "instalo" no meu servidor ? Simples, vamos adicionar dois scripts em \data\actions\script e adicionar duas linhas em \data\actions\actions.xml Vamos lá Instalação data\actions\scripts\portas.lua function onUse(cid, item, fromPosition, itemEx, toPosition) local doors = {[5098]={id=5100}, [5099]={id=5100}, [5101]={id=5102}, [5107]={id=5109}, [5108]={id=5109}, [5110]={id=5111}} local config = { actionid = 1221, -- Uma action normal, só para a portar nao abrir. keyaid = 1222 -- A action que deve ter na key } for i, x in pairs(doors) do if ((itemEx.itemid == i) and (itemEx.actionid == config.actionid) and (item.actionid == config.keyaid)) then doTransformItem(itemEx.uid, x.id) doItemSetAttribute(itemEx.uid, "aid", 0) elseif (itemEx.itemid == x.id) and (itemEx.actionid == 0) and (item.actionid == config.keyaid) then doTransformItem(itemEx.uid, i) doItemSetAttribute(itemEx.uid, "aid", config.actionid) elseif (itemEx.itemid == i) and (itemEx.actionid == 0) and (item.actionid == config.keyaid) then doTransformItem(itemEx.uid, i) doItemSetAttribute(itemEx.uid, "aid", config.actionid) end end return TRUE end data\actions\actions.xml <action itemid="IDdeUmaChave" event="script" value="portas.lua" /> Agora uma quest para ganhar a chave que abre a porta. data\actions\scripts\darkey.lua function onUse(cid, item, fromPosition, itemEx, toPosition) local config = { storage = 3235, -- Uma storage, se quiser nao precisa modificar keyID = 2088, -- ID de uma chave, você pode trocar. aid = 1222, -- ActionID, tem que ser o mesmo do script acima. } if getPlayerStorageValue(cid, config.storage) == -1 then local item = doPlayerAddItem(cid, config.keyID,1) if item then doItemSetAttribute(item, "aid", config.aid) setPlayerStorageValue(cid, config.storage, 1) doPlayerSendCancel(cid, "Você recebeu uma key") end else doPlayerSendCancel(cid, "Desculpe, mais você ja fez essa quest") end end data\actions\actions.xml <action actionid="7777" event="script" value="darkey.lua" /> " Lembrando que o bau, ou qualquer outra coisa, deve conter o action id = 7777 " Se você preferir, aqui tem um NPC que vende a mesma key que é pega na quest. data/npc/Diog.xml <?xml version="1.0"?> <npc name="Diog" script="data/npc/scripts/diog.lua" walkinterval="7000" floorchange="0"> <health now="100" max="100"/> <look type="128" head="76" body="96" legs="114" feet="0" addons="2"/> <parameters> <parameter key="message_greet" value="Olá |PLAYERNAME|! Eu vendo keys, Diga {keys} para saber quais eu vendo e o valor delas." /> <parameter key="module_keywords" value="1" /> <parameter key="keywords" value="keys" /> <parameter key="keyword_reply1" value="Eu vendo {Key Quest Editada} por 1000 gps." /> </parameters> </npc> data/npc/scripts/diog.lua local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid local keys = { ["Key Quest Editada"] = {id_key = 2088, price = 1000, action_id = 1222}, } local m = keys[msg] if (not m) then selfSay("Eu não vendo esta key ", cid) return FALSE end if doPlayerRemoveMoney(cid, m.price) == TRUE then a = doPlayerAddItem(cid, m.id_key, 1) doItemSetAttribute(a, "aid", m.action_id) selfSay("Obrigado, aqui esta sua key", cid) talkState[talkUser] = 0 else selfSay(" Você não tem ".. m.price.." gps para comprar ", cid) talkState[talkUser] = 0 end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Configuração Como você viu, eu nao adicionei todas as portas no script portas.lua, então só iram funcionar em um tipo. Nao adicionei porque sou preguiçoso, então para você adicionar é simples. Só seguir esses parametros [iDPortaFechada]={id=IDPortaAberta}, e adicionar em local doors = {} Agora para adicionar mais keys para o npc vender, é muito simples tambem, Só você adicionar mais linhas em local keys, Siga os parametros ["NomeQueOPlayerTemQueFalar"] = {id_key = IDDaKey, price = PreçoDaKey, action_id = 1222}, E mudar para quando o player falar com o npc: <parameter key="keyword_reply1" value="Eu vendo {Key Quest Editada} por 1000 gps e {NomeQueOPlayerTemQueFalar} por 122 gps." /> Script bem facil que eu fiz, qualquer duvida só falar comigo, Até mais.
Postado Março 8, 2013 12 anos nao deu pra intende isso, nao explico onde eu ponho a posiçao da porta, nao intendi como fais
Postado Março 8, 2013 12 anos nao deu pra intende isso, nao explico onde eu ponho a posiçao da porta, nao intendi como fais Ta tudo explicado dentro do próprio script, da uma olhada nessas linhas. actionid = 1221, -- Uma action normal, só para a portar nao abrir. keyaid = 1222 -- A action que deve ter na key Editado Março 8, 2013 12 anos por kaiquegabriel (veja o histórico de edições) Skype @kaiquegabriel__ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Atenciosamente, kaiquegabriel. Não dou suporte via pm. Em caso de dúvidas, crie um tópico e espere o suporte.
Postado Agosto 2, 2013 11 anos Como adiciono action na key? Eu criei um monstro que dropa a chave, mas a chave dropa sem ActionID como faço para dropar a chave já com o ActionID "x"? Editado Agosto 3, 2013 11 anos por aincrady (veja o histórico de edições) http://aincrady.no-ip.biz:8090 ~> Ot Aincrad, Novos locais, Novos Monstros, Novas Mounts, Warzone Liberada, Quirefang, e muito mais!
Postado Janeiro 19, 2014 11 anos como coloco para abrir a porta mais d uma vez e que quero fazer um sistema de house q so abre com chave para evitar roubos no meu otpokemon
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.