Ir para conteúdo
  • Cadastre-se

(Resolvido)Castle 24Hrs


Ir para solução Resolvido por tiago.bordin1988,

Posts Recomendados

Então queria algum script que checasse se tal player tivesse a storage ele continuaria no local se não tivesse ele seria teleportado para o templo, poderia ser ao player logar ou então em movements quando ele pisasse em tal tile se ele não tivesse a storage ele iria para o templo.

Pois no Castle quando alguém conquista e tem acesso a ele e outra guild conquista o players que conquistou anteriormente ainda irá continuar dentro a não ser que morra.

IMAGEM DA ÁREA DO CASTLE:

N7NKLUC.jpg

 

Ou se alguém souber editar esse script que vou deixar abaixo, quando o cara clicar na porta e não for da guild que conquistou teleportar ele pro templo ou qualquer posição que eu definir:
SCRIPT:

---------------


-----BY PC98-------
---------------

function onUse(cid, item, frompos, item2, topos)

-------------------------Config-----------------------------------------------------------------

door_opened = 1230 -- ID da porta aberta
storage_guild = getGlobalStorageValue(123123) -- A 3ª storage configurada em Castle.lua

guarda_ativ = 0 -- Caso um invasor tente abrir a porta, sumonar o Monstro "Guarda"?? | (1) = SIM (0) = NAO
guarda_cont = 2 -- Caso ativo: a quantidade de guardas a sumonar
guarda_pos = {x=530,y=127,y=7} -- Posiçao a ser sumonada os guardas!

-------------------------Fim de Config-----------------------------------------------------------


if getPlayerGuildId(cid) == storage_guild then
doTeleportThing(cid,getThingPos(item.uid))
doTransformItem(item.uid, door_opened)
doPlayerSendTextMessage(cid, 22, "Seja bem vindo a vosso castelo!")
return TRUE
else
if guarda_ativ == 1 then
doPlayerSendTextMessage(cid, 22, "Guaaaardas, tirem esses invasores daqui!!")
for i=1, guarda_cont do
doSummonCreature("Guarda", guarda_pos)
end
return FALSE
else
doPlayerSendTextMessage(cid, 22, "Este castelo nao pertence a sua guild")
return FALSE
end
end
end

Editado por tiago.bordin1988 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Tenta essa aqui amigo ... 

-- <movevent type="StepIn" actionid="20001" script="tile-castelo.lua" desc="Tile que verifica acesso ao castelo" />

function onUse(cid, item, fromPosition, itemEx, toPosition)
    
	local pos_principal = {x=141, y=150, z=7} -- posição quer será teleportado
		
	if item.actionid == 20001 then -- 20001 = VALOR DA ACTIONID
        if getPlayerStorageValue(cid, 30001) == -1 then -- 30001 = VALOR DA STORAGE QUE TEM QUE TER
			doTeleportThing(cid, pos_principal)
			doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'Você não tem acesso ao castelo.') -- MSG QUE O PLAYER RECEBERA AO SER TELEPORTADO PARA FORA!
		end
	else
	    return false
	end
    
	return true
end

Espero ter ajudado.

Link para o post
Compartilhar em outros sites

Tenta essa aqui amigo ... 

-- <movevent type="StepIn" actionid="20001" script="tile-castelo.lua" desc="Tile que verifica acesso ao castelo" />

function onUse(cid, item, fromPosition, itemEx, toPosition)
    
	local pos_principal = {x=141, y=150, z=7} -- posição quer será teleportado
		
	if item.actionid == 20001 then -- 20001 = VALOR DA ACTIONID
        if getPlayerStorageValue(cid, 30001) == -1 then -- 30001 = VALOR DA STORAGE QUE TEM QUE TER
			doTeleportThing(cid, pos_principal)
			doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'Você não tem acesso ao castelo.') -- MSG QUE O PLAYER RECEBERA AO SER TELEPORTADO PARA FORA!
		end
	else
	    return false
	end
    
	return true
end

Espero ter ajudado.

Então eu não sei qual storage eu tenho que colocar vou postar o script que uso.

-----------------------------------

---------SCRIPT por PC98------------ NAO REMOVA OS CREDITOS

-----------------------------------

function onUse(cid, item, frompos, item2, topos)

------------------ Inicio das Config ------------

local castle_one_name = "Ratim Bum" -- Nome do castelo 1

local storages = {154154,54321,123123} -- Storages ( se vc eh iniciante, deixe como está...)

-------PREMIOs I N D I V I D U A L ---------

local premio_por_vezes = 1 -- Premio por vezes de conquista de castelo. (1) = Ativo (0) = Desativa.

local premio_vezes = 13 -- Caso ativo, a quantidade de conquista que o player tem, para ganhar PREMIO.

local premio = 2472 -- ID do Premio

local premio_cont = 1 -- Quantidade do Premio

local premio_reset = 1 -- Resetar o contador do premio depois que atingir a meta?? (1) = SIM (0) = NAO

-------FIM PREMIOs I N D I V I D U A L ---------

----------------- FIM DAS CONFIG -----------------

local sto_ativ = getGlobalStorageValue(storages[2])

position = getCreaturePosition(cid)

if isPlayerGuild(cid) == TRUE then

if sto_ativ == 1 or sto_ativ == -1 then

guildname = getPlayerGuildName(cid)

guild = getPlayerGuildId(cid)

guild_sto = getGlobalStorageValue(storages[3])

if guild ~= guild_sto then

setPlayerStorageValue(cid,guild_sto,guild)

if getPlayerStorageValue(cid,storages[1]) == -1 then

setPlayerStorageValue(cid,storages[1],0)

end

sto_vezes = getPlayerStorageValue(cid,storages[1])

setGlobalStorageValue(storages[3],getPlayerGuildId(cid))

setPlayerStorageValue(cid,storages[1], sto_vezes + 1)

sto_vezes_total = getPlayerStorageValue(cid,storages[1])

doBroadcastMessage("O(a) "..getCreatureName(cid).." acabou de conquistar o castelo "..castle_one_name.." para a guild \""..guildname.."\" pela "..sto_vezes_total.."ª vez(s).", 22)

doSendMagicEffect(position, 39)

if premio_por_vezes == 1 then

if getPlayerStorageValue(cid,storages[1]) == premio_vezes then

if getItemWeightById(premio,1) <= getPlayerFreeCap(cid) then

doBroadcastMessage("O "..getCreatureName(cid).." ganhou uma(o) "..getItemNameById(premio).." como recompensa das suas "..premio_vezes.." conquistas!", 21)

doPlayerAddItem(cid, premio,premio_cont)

doPlayerSendTextMessage(cid, 18, "Voce recebeu o(a) "..getItemNameById(premio).." como recompensa das suas "..premio_vezes.." conquistas!")

----------------------------------------------- --

if premio_reset == 1 then --

setPlayerStorageValue(cid,storages[1],0) -- Resetar a contagem

end --

----------------------------------------------- --

else

doPlayerSendTextMessage(cid, 18, "Voce nao tem capacidade para ganhar o item. Vamos verificar novamente em 10 segundos!")

addEvent(additem,10000,cid,premio,premio_cont,premio_reset)

end

end

end

else

doPlayerSendCancel(cid,"Este castelo ja foi conquistado pela sua guild!")

doSendMagicEffect(position, 2)

end

else

doPlayerSendCancel(cid,"O sistema está desativado")

end

else

doPlayerSendCancel(cid,"É nescessario ter guild para dominar o castelo!")

doSendMagicEffect(position, 2)

end

end

------------------------- por pc98

function additem(cid,premio,premio_cont,premio_reset)

if getItemWeightById(premio,1) <= getPlayerFreeCap(cid) then

doPlayerAddItem(cid, premio,premio_cont)

doPlayerSendTextMessage(cid, 18, "Voce recebeu o(a) "..getItemNameById(premio).." como recompensa das suas "..premio_vezes.." conquistas!")

if premio_reset == 1 then

setPlayerStorageValue(cid,storages[1],0)

end

stopEvent(additem)

else

doPlayerSendTextMessage(cid, 18, "Voce nao tem capacidade para ganhar o item. Verificando novamente em 10 segundos!")

addEvent(additem,10000,cid)

end

end

------------------------- por pc98

function isPlayerGuild(cid)

if getPlayerGuildName(cid) ~= "" then

return TRUE

else

return FALSE

end

end

Outro:

---------------

-----BY PC98-------

---------------

function onUse(cid, item, frompos, item2, topos)

-------------------------Config-----------------------------------------------------------------

door_opened = 1230 -- ID da porta aberta

storage_guild = getGlobalStorageValue(123123) -- A 3ª storage configurada em Castle.lua

guarda_ativ = 0 -- Caso um invasor tente abrir a porta, sumonar o Monstro "Guarda"?? | (1) = SIM (0) = NAO

guarda_cont = 2 -- Caso ativo: a quantidade de guardas a sumonar

guarda_pos = {x=530,y=127,y=7} -- Posiçao a ser sumonada os guardas!

-------------------------Fim de Config-----------------------------------------------------------

if getPlayerGuildId(cid) == storage_guild then

doTeleportThing(cid,getThingPos(item.uid))

doTransformItem(item.uid, door_opened)

doPlayerSendTextMessage(cid, 22, "Seja bem vindo a vosso castelo!")

return TRUE

else

if guarda_ativ == 1 then

doPlayerSendTextMessage(cid, 22, "Guaaaardas, tirem esses invasores daqui!!")

for i=1, guarda_cont do

doSummonCreature("Guarda", guarda_pos)

end

return FALSE

else

doPlayerSendTextMessage(cid, 22, "Este castelo nao pertence a sua guild")

return FALSE

end

end

end

Link para o post
Compartilhar em outros sites

cara eu tenho esse msm script a storage usada é a 123123

então coloquei desse jeito em em movements.xml add a tag:

 

<movevent type="StepIn" actionid="20001" event="script" value="tile-castelo.lua"/>

 

e na pasta Script no arquivo tile-castelo.lua coloquei a storage 123123 e add no map editor actionid 20001 no tile, mais quando pisa no tile não acontece nada e não aparece erro no distro.

Max, você poderia me passar o seu que você usa o script e a tag, pra min testar aqui?

Link para o post
Compartilhar em outros sites

Meu script é o mesmo do seu cara só disse a storage que normalmente é a 123123 também estou com o mesmo probleminha do que o seu do povo não sai do castelo quando perde o domínio ..  

O sexo é bom o amor, melhor, os dois então perfeito 

Link para o post
Compartilhar em outros sites

Meu script é o mesmo do seu cara só disse a storage que normalmente é a 123123 também estou com o mesmo probleminha do que o seu do povo não sai do castelo quando perde o domínio ..  

entendeu, achei que você tivesse com um que funcione kkkk, a unica solução que achei foi colocar o teleporte que fica dentro da hunt pra volta e cair no templo dai quem não é da guild dominante não ira entrar no castelo.

Link para o post
Compartilhar em outros sites
  • Solução

Tenta coloca storage 154154

Olha concertei o começo do seu script q estava assim:

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

e deixei assim:

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

 

e testei todas storages que aparece no script 123123, 154154, 54321, 321321 e nada todos que uso quando passa em cima do tile com o actionid ele simplesmente teleporta o player.

 

Consegui uma solução, pode por como RESOLVIDO.

 

Solução, editei o script da porta que quando o player não for da guild e clicar na porta ele vai para o templo assim eu coloco uma porta antes da área de hunt fazendo com que o player clique na porta se não for da guild dominante ele irá para o templo mais se for da guild dominante ele passa a porta e vai caçar não era bem o que eu queria mais é uma boa solução.

SCRIPT:

---------------

-----BY PC98-------

---------------

function onUse(cid, item, frompos, item2, topos)

-------------------------Config-----------------------------------------------------------------

door_opened = 1230 -- ID da porta aberta

storage_guild = getGlobalStorageValue(123123) -- A 3ª storage configurada em Castle.lua

guarda_ativ = 0 -- Caso um invasor tente abrir a porta, sumonar o Monstro "Guarda"?? | (1) = SIM (0) = NAO

guarda_cont = 2 -- Caso ativo: a quantidade de guardas a sumonar

guarda_pos = {x=530,y=127,y=7} -- Posiçao a ser sumonada os guardas!

pos_principal = {x=160, y=52, z=7}

-------------------------Fim de Config-----------------------------------------------------------

if getPlayerGuildId(cid) == storage_guild then

doTeleportThing(cid,getThingPos(item.uid))

doTransformItem(item.uid, door_opened)

doPlayerSendTextMessage(cid, 22, "Seja bem vindo a vosso castelo!")

return TRUE

else

if guarda_ativ == 1 then

doPlayerSendTextMessage(cid, 22, "Guaaaardas, tirem esses invasores daqui!!")

for i=1, guarda_cont do

doSummonCreature("Guarda", guarda_pos)

end

return FALSE

else

doTeleportThing(cid, pos_principal)

doPlayerSendTextMessage(cid, 22, "Este castelo nao pertence a sua guild")

return FALSE

end

end

end

Editado por tiago.bordin1988 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Me desculpe, estou começando a TENTAR aprender linguagem .lua ... 

Eu dei uma olhada aqui, talvez esse funcione, se quiser tentar ... 

-- <movevent type="StepIn" actionid="XXXX" script="tile-castelo.lua" desc="Tile que verifica acesso ao castelo" />

function onStepIn(cid, item, position, fromPosition)
	
	local pos_principal = {x=160, y=52, z=7} -- EDITAR POSIÇÃO DO TEMPLO

	if getPlayerStorageValue(cid,123123) == -1 then
		doTeleportThing(cid, pos_principal)
		doPlayerSendTextMessage(cid, 22, "Este castelo nao pertence a sua guild")
	end
	
	return true
end

<movevent type="StepIn" actionid="XXXX" script="tile-castelo.lua" desc="Tile que verifica acesso ao castelo" />

 

Se não der poste aqui que vou tentar novamente

Link para o post
Compartilhar em outros sites

o Max veio com essa mesma dúvida via PM e eu tentei ajudar ele, acontece que o storage é Global, e não um storage do player. O movements funciona perfeitamente, o unico problema é que pelo storage ser global é necessário um reload no movements pra que dê certo. Contudo a Ana (no próprio tópico do max) adicionou uma parte no script que remove todo mundo de dentro da posição do castle.

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

o Max veio com essa mesma dúvida via PM e eu tentei ajudar ele, acontece que o storage é Global, e não um storage do player. O movements funciona perfeitamente, o unico problema é que pelo storage ser global é necessário um reload no movements pra que dê certo. Contudo a Ana (no próprio tópico do max) adicionou uma parte no script que remove todo mundo de dentro da posição do castle.

Poderia me passar o link do tópico pra min da uma olhada?

Link para o post
Compartilhar em outros sites

o Max veio com essa mesma dúvida via PM e eu tentei ajudar ele, acontece que o storage é Global, e não um storage do player. O movements funciona perfeitamente, o unico problema é que pelo storage ser global é necessário um reload no movements pra que dê certo. Contudo a Ana (no próprio tópico do max) adicionou uma parte no script que remove todo mundo de dentro da posição do castle.

 

White, e se eu usar a mesma expressão que vai na porta e coloca para diferente .. poderia dar certo?!

Estou aprendendo .lua, tive que pesquisar a expressão diferente (x ~= y)

Deu isso aqui, TALVEZ dê certo!

 

-- <movevent type="StepIn" actionid="XXXX" script="tile-castelo.lua" desc="Tile que verifica acesso ao castelo" />

function onStepIn(cid, item, position, fromPosition)
	
	local pos_principal = {x=160, y=52, z=7} -- EDITAR POSIÇÃO DO TEMPLO
	local storage_guild = getGlobalStorageValue(123123) -- A 3ª storage configurada em Castle.lua
	
	if getPlayerGuildId(cid) ~= storage_guild then
		doTeleportThing(cid, pos_principal)
		doPlayerSendTextMessage(cid, 22, "Este castelo nao pertence a sua guild")
	end
	
	return true
end

Teste e me avise amigo =)

Link para o post
Compartilhar em outros sites

foi exatamente assim q eu tinha feito:

local storage_guild = getGlobalStorageValue(123123)  -- A storage configurada em Castle.lua
local pos = {x = 160, y = 54, z = 7}
function onStepIn(cid, item, position, fromPosition)
if isPlayer(cid) == TRUE  then
if getPlayerGuildId(cid) ~= storage_guild then
doTeleportThing(cid, pos) 
doSendMagicEffect(getThingPos(cid), 37)
doPlayerSendTextMessage(cid, 22, "You no longer have acess to the castle!")  
end      
end    
return TRUE
end

o problema é que, segundo o Max, só funciona quando dá reload. Meu server não tem sistema de guild e nem players então não consegui testar mas não vejo porque daria errado, mas a AnaPaula tinha feito um update no próprio script de castle (num outro tópico) em que ao apertar a alavanca ele verifica de uma dada pos até a outra (toda a area correspondida entre as duas pontas da diagonal) se tinha algum player, se tivesse mandava pro templo (arrumando assim o script do castle da forma que ele pediu) O problema seria se houvessem areas que só os players do castle pudessem acessar e tivesse algum player nessas áreas, se ele não saísse ele poderia ficar lá pra sempre. 


EDIT: EIS OQUE O MAX ME RESPONDEU DPS DE EU PASSAR O SCRIPT PRA ELE:
 

 

Enviada em 17 abril 2014 - "04:40

Bom mano o script funciono é não funciono por que tipo ele ta mandando o cara pro templo sim mais quando o cara domina o castelo ele continua sendo mandando pro templo como se não atualiza-se pra dar a entrada dele só funciona quando acontece algum reload no servidor ae ele para de manda pro templo .. tá osso teria alguma ideia do que seja?

 

 

Editado por xWhiteWolf (veja o histórico de edições)

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites
  • 2 weeks later...

Alguem pode me falar qual mapa que vem com esse castle ? 

estou procurando faz tempo esse castle e nunca acho , me ajudem , me mandem link do mapa que vem ele , ou o link do castle 24hrs só ... 

 

Att Gabriel Pires

Link para o post
Compartilhar em outros sites

Alguem sabe qual scripts eu uso pra cria um castle of guild, do servidor que ele retirou essa imagem ?

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo