Ir para conteúdo

Featured Replies

Postado
  • 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.

  • 1 year later...
  • Respostas 7
  • Visualizações 6.1k
  • Created
  • Última resposta

Top Posters In This Topic

Postado

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 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.

  • 4 months later...
Postado

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 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!

 

aincrad468.jpg

  • 5 months later...

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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo