Ir para conteúdo
  • 0

Sistema De Key Number + Estatua


BlackLeft

Pergunta

Gostaria muito que alguem podesse mim ajudar nessa script de key, ela fuciona assim, keys do mesmo id soque com numeros diferentes:

 

Segue a imagem abaixo como exemplo:

sistemakey.png

 

 

agora caso eu tenha a key 666 eu usaria ela na estatua e seria telportado para tal lugar

Mas lembre-se que a estatua só pode fucionar caso eu tenha a key 666

 

 

Caso eu tenha a key 3070 eu usaria ela em outra estatua e seria teleportado para um lugar, e a key seria removida da minha bp.

Mas lembre-se que a estatua só pode fucionar caso eu tenha a key 3070

 

Vlw ae.

Espero que alguem de vcs consigam fazer, e se tiverem alguma duvida é so falar.

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Vasculhei os arquivos items.cpp de algumas revisões de Open Tibia que tenho aqui e não achei nenhum atributo relacionado com números de chaves.

 

Como provavelmente você está querendo mais alguma coisa do Bronson Server, creio que isso deve ser algo extra, mas até simples de fazer em C++.

Editado por Oneshot
Link para o comentário
Compartilhar em outros sites

  • 0

Oneshot

 

Se vc conseguir fazer em c++ não tem problema, eu faria muito grato.

e sim tem bastante coisa pra copiar ainda, é so voce ver ae nos topicos.

Mais ae se é simples essa script pode fazer em c++ que fico muito grato.

 

Vlw (:

Link para o comentário
Compartilhar em outros sites

  • 0
Byerne disse,

Galere, na minha época a key numer era de acordo com o ActionID da mesma. Se colocar action ID 666 ela vai ser Key: 666 e vai abrir portas com o actionid 666 ou 1666 (Não lembro.). Boa sorte.

 

Ainda é assim...A action id é igual ao número da key.

Link para o comentário
Compartilhar em outros sites

  • 0

Galere, na minha época a key numer era de acordo com o ActionID da mesma. Se colocar action ID 666 ela vai ser Key: 666 e vai abrir portas com o actionid 666 ou 1666 (Não lembro.). Boa sorte.

 

Sério mesmo? Achei que era um atributo de item a parte. Se for assim do jeito que você falou, tudo fica mais simples. Segue abaixo um esboço do que seria o funcionamento da chave.

 

function onUse(cid, item, fromPosition, itemEx, toPosition)
return (item.actionid == itemEx.actionid and doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "A chave abriu a porta ") or doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "A chave não encaixa na fechadura."))
end

 


 

Falha nossa, de fato a actionid vira mesmo key number, como visto no items.cpp.

 

else if(it.isKey())
	s << " (Key:" << (item ? (int32_t)item->getActionId() : 0) << ")";

Editado por Oneshot
Link para o comentário
Compartilhar em outros sites

  • 0
OneShot disse,

Sério mesmo? Achei que era um atributo de item a parte. Se for assim do jeito que você falou, tudo fica mais simples. Segue abaixo um esboço do que seria o funcionamento da chave.

 

function onUse(cid, item, fromPosition, itemEx, toPosition)

return (item.actionid == itemEx.actionid and doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "A chave abriu a porta :)") or doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "A chave não encaixa na fechadura."))

end

Ta aí a deixa então =P To começando a scripting ainda.. mas acho que o script deve funcionar. É só dar use com a chave na estátua =P

 

Crie um arquivo em actions>scripts e coloque isto dentro:

 

function onUse(cid, item, fromPosition, item2, toPosition)
teleport = {x=100, y=40, z=7}  -- posição do teleport
idkey = 2091 --- id da key
if getPlayerItemCount(cid,idkey) >= 1 then
if item.itemid == 2091 then
if item.actionid == item2.actionid then
doPlayerRemoveItem(cid,idkey,1)
doTeleportThing(cid, teleport)
doSendMagicEffect(getPlayerPosition(cid), 10)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce foi teleportado!")
end
end
end  
end  

 

Em actions.xml, adicione:

<action actionid="XXXX" event="script" value="nomedoseuarquivo.lua"/>

Em XXXX, coloque o actionid da estátua que deve ser igual ao do número da key. Vlw, abraços!

Editado por Leoxtibia
Link para o comentário
Compartilhar em outros sites

  • 0

eu não entendi direito essa script, tipo como é que vai ficar com o numero la 666 na key ?

 

manda seu msn para conversamos melhor.

 

 

@edit

 

Eu acho que só da para fazer oque eu pedir pelas sources mesmo, por causa que eu vou usar numeres key iguais (mesmo id) soque com o numero da key diferente...

 

Tipo Id Da key: 2091

11:50 You see a golden key (Key:666).

It weighs 1.00 oz.

 

Outra do mesmo jeito

Id Da key:2091

11:50 You see a golden key (Key:3050).

It weighs 1.00 oz.

 

é isso que eu procuro.

 

Dai dps que essa script tiver pronta, faria a da estatua por key number.

Editado por BlackLeft
Link para o comentário
Compartilhar em outros sites

  • 0

Então você poderia criar essas chaves por um baú, taí o script:

Crie em actions>scripts um arquivo.lua e coloque isso nele:

function onUse(cid, item, frompos, item2, topos)
	queststatus = getPlayerStorageValue(cid,2357)
	if queststatus == -1 then
			local key = doPlayerAddItem(cid,2091,1)
			doItemSetAttribute(key, "aid", 666)
			doPlayerSendCancel(cid,'You have found a Golden key!  Number 666.')
			setPlayerStorageValue(cid,2357,1)
	else
			doPlayerSendCancel(cid,'This chest is Empty')
	end
	return true
end

Aqui em doItemSetAttribute(key, "aid", 666) -- Em vermelho é o Key Number da sua chave

 

Em actions.xml coloque a tag:

 

<action actionid="XXXX" event="script" value="nomedoseuarquivo.lua"/>

 

Em XXXX você coloca a actionid do baú, aí é so fazer a mesma coisa para o outro número da key.Lembrando de mudar o 2357, que é o storage. Abraço!

Editado por Leoxtibia
Link para o comentário
Compartilhar em outros sites

  • 0

Este fragmento do doors.lua mostra o funcionamento das chaves.

if(isInArray(keys, item.itemid)) then
if(itemEx.actionid > 0) then
if(item.actionid == itemEx.actionid and doors[itemEx.itemid] ~= nil) then
doTransformItem(itemEx.uid, doors[itemEx.itemid])
return true
end

doPlayerSendCancel(cid, "The key does not match.")
return true
end

return false
end

Link para o comentário
Compartilhar em outros sites

  • 0

Leoxtibia

 

Fucionou perfeitamente muito obrigado (:

 

Agora só falta o da estatua. pelo numero da key.

 

 

@edit a da estatua eu vou clicar com a key 666 na estaua e vou ser teleportado para um lugar.

Editado por BlackLeft
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...