Ir para conteúdo

[pedido]sistema De Castelo (estilo Bc De Priston Tale)


yasha

Posts Recomendados

Olá pessoal, aqui vai um pedido meu...

 

 

Não sei se todos jogam Priston Tale, mais quem já jogou sabe que la todo sábado tem a disputa do Bless Castle, onde vários clans tentam dominar o castelo, no final o clan que ganhar fica com o domínio do castelo durante a semana toda.

 

 

O script que eu quero é realmente isso. Eu crio um castelo ai por um comando a guerra entre as guilds começa, num determinado tempo (30 min a 2 horas) a guild que tiver mais mortes domina o castelo durante aquela semana.

 

Espero que todos tenham entendido o meu pedido. Caso não entendam basta postar que eu responderei.

 

 

Obrigado.

 

 

Edit~

 

O Script se baseia praticamente nisso:

 

-Uma arena de PVP, que a maioria dos OTs tem (uma arena que não perde item, level, e não pega skull)

-Quando o player matar outro ganhar pontos pra guild e no final quem tivesse a maior somatória de pontos ganha.

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

Concordo com o f3n4nd0, mas nada é impossivel.

Inclusive os servidores VikingOT , DorianPLUS e alguns outros existem este mesmo sistema, porém com nomes diferentes, sendo eles:

 

VikingOT - Bless Castle. -> http://vikingot.servegame.com:8090/viking2/bless.php

DorianPLUS - Castle of Honor. -> http://www.elfensoft.com/dorian/coh.php

 

Estes dois são só um exemplo para quem quiser se aprofundar mais no assunto, e ter uma base para começar a desenvolver o script.

Abraços.

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

Eu queria um igual ao do Viking OT.

 

O Script se baseia praticamente nisso:

 

-Uma arena de PVP, que a maioria dos OTs tem (uma arena que não perde item, level, e não pega skull)

-Quando o player matar outro ganhar pontos pra guild e no final quem tivesse a maior somatória de pontos ganha.

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

E ai blz? Bom estava olhando alguns pedidos e vi este entao resolvi ajudar. Este script nao e meu e do Alisson Linneker entao 95% dos creditos vao para ele, por ter feito o script e 5% vao para min por postar (nao posso fica com nada neh?)

Bom entao vamos la:

 

-O que este script faz?

 

Simples, é um sistema de domínio de castelos, bom para eventos de guerra.

Mas não é exatamente o domínio do castelo, etc...

Na verdade, trata-se apenas de uma mensagem dizendo que o cara dominou tal castelo...

Mais em breve atualizarei esse script para um que so permite a entrada no castelo os membros da guild vencedora.

 

-Como funciona?

 

Haverá uma alavanca... O jogador irá até essa alavanca e irá puxar.

Dependendo da UNIQUE ID da alavanca o castelo podera ter qualquer nome

Se o jogador tiver guild, ele menciona que tem guild, se não, ele nem se quer fala sobre guild.

E quando ele puxa a alavanca aparece ele falando em VERMELHO:

 

Player sem guild:

 

(sem guild) "Eu, NICK, dominei o castelo X!"

 

Player com guild:

(com guild) "Eu, NICK, do clan ALGUM, dominei o castelo TAL!!"

 

 

 

O script é dividido em dois trechos:

Configurações, que é onde você configura normalmente, e Códigos, que é uma área restrita apenas para quem mexe com Actions. Aconselho não tentarem modificar o script...

 

Enfim, vamos ao script!

Iniciarei com o mais dificil ok?

 

 

Crie um arquivo com o nome dominio-de-castelo.lua dentro da pasta data\actions\scripts. Em seguida adicione o script abaixo dentro dele:

 

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

--------By Alisson Linneker----------

---------www.alisson.vai.la-----------

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

--------------XTibia User--------------

------------www.xtibia.com-----------

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

 

 

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

 

-------------------- Configurações (Altere)

--- ID GLOBAL (WAR ON/OFF)

global_id = 6550

------- Tente não alterar os IDs do script pois, se alterar aqui, terá de alterar em outros scripts!

alavanca_id1 = 1945 --- ID da alavanca

alavanca_id2 = 1946 --- ID da alavanca

liber_alavanca = 6560 --- UNIQUE ID da alavanca que irá reiniciar os castelos (Opcional adicionar no mapa, pois existe o comando)

 

access = 5 --- Nível de access para reiniciar os castelos (normal: 5, GOD)

 

--- UNIQUE ID´s QUE SERÃO ADICIONADAS NAS ALAVANCAS NO CASTELO:

castelos_id = 6564 --- UNIQUE ID representando o primeiro castelo

castelos_id2 = 6565 --- UNIQUE ID representando o segundo castelo

castelos_id3 = 6460 --- UNIQUE ID representando o terceiro castelo

castelos_id4 = 6461 --- UNIQUE ID representando o quarto castelo

castelos_id5 = 6462 --- UNIQUE ID representando o quinto castelo

 

--- NOMES DOS CASTELOS:

castelo1 = "Normahn" --- Nome do primeiro castelo

castelo2 = "Sleifyr" --- Nome do segundo castelo

castelo3 = "Daraphin" --- Nome do terceiro castelo

castelo4 = "Morgrart" --- Nome do quarto castelo

castelo5 = "Tehlos" --- Nome do quinto castelo

 

efeito = 11 --- ID da cor da fala do jogador (normal: 11, vermelho)

lv_min = 20 --- Level mínimo para dominar castelos (normal: 20)

efeito_msg = 13 --- ID do efeito das mensagens de erros (normal: 13, vermelho)

 

------- Configurações Avançadas

--- Códigos Prelinimares

if item.uid == castelos_id then

castelo = castelo1

elseif item.uid == castelos_id2 then

castelo = castelo2

elseif item.uid == castelos_id3 then

castelo = castelo3

elseif item.uid == castelos_id4 then

castelo = castelo4

elseif item.uid == castelos_id5 then

castelo = castelo5

elseif item.uid == liber_alavanca then

castelo = 0

end

 

nick = getPlayerName(cid)

lv = getPlayerLevel(cid)

guild = getPlayerGuildName(nick)

verif = getPlayerGuildId(nick)

global_search = getGlobalStorageValue(item.uid)

per_search = getPlayerStorageValue(cid, item.uid)

ppos = getPlayerPosition(cid)

error = 0

 

--- Mensagem. Quando o jogador tem uma guild

msg_guild = "Eu, " .. nick .. ", da Guild " .. guild .. ", dominei o castelo " .. castelo .. "!!"

 

--- Mensagem. Quando o jogador não tem guild

msg_noguild = "Eu, " .. nick .. ", dominei o castelo " .. castelo .. "!!"

 

--- Erro. Quando o jogador não tem o level requerido para dominar castelos

no_lv = "Voce precisa ter level " .. lv_min .. " ou superior para dominar castelos."

 

--- Erro. Quando o castelo já foi dominado por alguém e o jogador não pertence à um castelo

castle_domin = "Este castelo ja foi dominado, tente na proxima vez."

 

--- Erro. Quando o jogador não tem access para reiniciar castelos

access_error = "Voce nao tem capacidade para reiniciar castelos."

 

--- Mensagem. Quando o jogador que tem access para reiniciar castelos reinicia

castle_restart = "Os castelos foram reiniciados com sucesso."

 

--- Erro. Quando a guerra está desativada.

off_msg = "Os castelos nao estao em guerra."

 

-------------------- Códigos (Não altere)

if getGlobalStorageValue(global_id) == 1 then

if item.uid < liber_alavanca or item.uid > liber_alavanca then

 

if lv >= lv_min then

 

if global_search <= 0 or per_search == 1 then

 

if verif > 0 then

doPlayerSay(cid,msg_guild, efeito)

else

doPlayerSendTextMessage(cid,22,msg_noguild)

pos = getPlayerPosition(cid)

doSendMagicEffect(pos,efeito)

end

setGlobalStorageValue(item.uid, 1)

if item.uid == castelos_id then

setPlayerStorageValue(cid, item.uid, 0)

setPlayerStorageValue(cid, castelos_id2, 1)

setPlayerStorageValue(cid, castelos_id3, 1)

setPlayerStorageValue(cid, castelos_id4, 1)

setPlayerStorageValue(cid, castelos_id5, 1)

elseif item.uid == castelos_id2 then

setPlayerStorageValue(cid, castelos_id, 1)

setPlayerStorageValue(cid, item.uid, 0)

setPlayerStorageValue(cid, castelos_id3, 1)

setPlayerStorageValue(cid, castelos_id4, 1)

setPlayerStorageValue(cid, castelos_id5, 1)

elseif item.uid == castelos_id3 then

setPlayerStorageValue(cid, castelos_id, 1)

setPlayerStorageValue(cid, castelos_id2, 1)

setPlayerStorageValue(cid, item.uid, 0)

setPlayerStorageValue(cid, castelos_id4, 1)

setPlayerStorageValue(cid, castelos_id5, 1)

elseif item.uid == castelos_id4 then

setPlayerStorageValue(cid, castelos_id, 1)

setPlayerStorageValue(cid, castelos_id2, 1)

setPlayerStorageValue(cid, castelos_id3, 1)

setPlayerStorageValue(cid, item.uid, 0)

setPlayerStorageValue(cid, castelos_id5, 1)

elseif item.uid == castelos_id5 then

setPlayerStorageValue(cid, castelos_id, 1)

setPlayerStorageValue(cid, castelos_id2, 1)

setPlayerStorageValue(cid, castelos_id3, 1)

setPlayerStorageValue(cid, castelos_id4, 1)

setPlayerStorageValue(cid, item.uid, 0)

end

 

else

doPlayerSendTextMessage(cid,efeito_msg,castle_domin)

error = 1

 

end

else

doPlayerSendTextMessage(cid,efeito_msg,no_lv)

error = 1

end

 

end

 

 

 

if item.uid == liber_alavanca then

if getPlayerAccess(cid) >= access then

setGlobalStorageValue(castelos_id, 0)

setGlobalStorageValue(castelos_id2, 0)

setGlobalStorageValue(castelos_id3, 0)

setGlobalStorageValue(castelos_id4, 0)

setGlobalStorageValue(castelos_id5, 0)

doPlayerSendTextMessage(cid,efeito_msg,castle_restart )

else

doPlayerSendTextMessage(cid,efeito_msg,access_error)

error = 1

end

end

 

if error == 0 then

if item.itemid == alavanca_id1 then

doTransformItem(item.uid,alavanca_id2)

elseif item.itemid == alavanca_id2 then

doTransformItem(item.uid,alavanca_id1)

end

end

else

setGlobalStorageValue(global, 0)

doPlayerSendTextMessage(cid,efeito_msg,off_msg)

error = 1

end

end

 

 

 

Pois bem, agora vá até o arquivo actions.xml e adicione isso:

 

<action uniqueid="6564" script="dominio-de-castelo.lua"/> --- Primeiro Castelo

<action uniqueid="6565" script="dominio-de-castelo.lua"/> --- Segundo Castelo

<action uniqueid="6460" script="dominio-de-castelo.lua"/> --- Terceiro Castelo

<action uniqueid="6461" script="dominio-de-castelo.lua"/> --- Quarto Castelo

<action uniqueid="6462" script="dominio-de-castelo.lua"/> --- Quinto Castelo

<action uniqueid="6560" script="dominio-de-castelo.lua"/> --- Alavanca Resetadora

 

 

Pronto, fechamos com as actions.

 

Vamos agora para as TalkActions.

 

Pois bem, dentro da pasta data\talkactions\scripts crie 3 arquivos com os nomes:

 

talkaction-ativar.lua

talkaction-desativar.lua

talkaction-resetar.lua

 

 

Agora abra o talkaction-ativar.lua e adicione isso:

 

function onSay(cid, words, param)

 

-------------- Configurações

--- ID GLOBAL (WAR ON/OFF)

global_id = 6550

 

--- Access GM (Número que representa o nível de acesso de Game Masters)

gm = 1

 

--- Mensagem que aparece para o GM

msg_gm = "O sistema foi ativado."

 

--- Mensagem que envia para todo servidor

servermsg = "Inicia agora o evendo de domínio de castelo."

 

--- Erro: quando o jogador não é GM ou superior

error = "Voce nao pode usar este comando."

 

--- Erro: quando a guerra já está ativada

error2 = "A guerra ja esta ativada."

 

--- Efeito (cor) da mensagem enviada ao GM (normal: 22)

ef = 22

 

-------------- Códigos

---- Preliminares

access = getPlayerAccess(cid)

ppos = getPlayerPosition(cid)

 

---- Completos

if access >= gm then

if getGlobalStorageValue(global_id) == -1 then

setGlobalStorageValue(global_id, 1)

doPlayerSendTextMessage(cid,ef,msg_gm)

broadcastMessage(servermsg, 21)

else

doPlayerSendCancel(cid,error2)

end

else

doPlayerSendCancel(cid,error)

end

end

 

Chegou a vez do talkaction-desativar.lua. Abra-o e adicione o script:

 

function onSay(cid, words, param)

 

-------------- Configurações

--- ID GLOBAL (WAR ON/OFF)

global_id = 6550

 

--- Access GM (Número que representa o nível de acesso de Game Masters)

gm = 1

 

--- Mensagem que aparece para o GM

msg_gm = "O sistema foi desativado."

 

--- Mensagem que envia para todo servidor

serveroffmsg = "O evento de domínio de castelo foi finalizado."

 

--- Erro: quando o jogador não é GM ou superior

error = "Voce nao pode usar este comando."

 

--- Erro: quando a guerra já está ativada

error2 = "A guerra ja esta desativada."

 

--- Efeito (cor) da mensagem enviada ao GM (normal: 22)

ef = 22

 

-------------- Códigos

---- Preliminares

access = getPlayerAccess(cid)

 

---- Completos

if access >= gm then

if getGlobalStorageValue(global_id) == 1 then

setGlobalStorageValue(global_id, -1)

doPlayerSendTextMessage(cid,ef,msg_gm)

broadcastMessage(serveroffmsg, 21)

else

doPlayerSendCancel(cid,error2)

end

else

doPlayerSendCancel(cid,error)

end

end

 

 

E por fim o talkaction-resetar.lua:

 

function onSay(cid, words, param)

 

-------------- Configurações

--- IDs dos castelos na mesma ordem do script

castelos_id = 6564 --- UNIQUE ID representando o primeiro castelo

castelos_id2 = 6565 --- UNIQUE ID representando o segundo castelo

castelos_id3 = 6460 --- UNIQUE ID representando o terceiro castelo

castelos_id4 = 6461 --- UNIQUE ID representando o quarto castelo

castelos_id5 = 6462 --- UNIQUE ID representando o quinto castelo

 

--- Access GM (Número que representa o nível de acesso de Game Masters)

gm = 1

 

--- Mensagem que aparece para o GM

msg_gm = "Os castelos foram reiniciados com sucesso!"

 

--- Erro: quando o jogador não é GM ou superior

error = "Voce nao pode usar este comando."

 

--- Efeito (cor) da mensagem enviada ao GM (normal: 22)

ef = 22

 

-------------- Códigos

---- Preliminares

access = getPlayerAccess(cid)

error = 0

global = getGlobalStorageValue(castelos_id)

global2 = getGlobalStorageValue(castelos_id2)

global3 = getGlobalStorageValue(castelos_id3)

global4 = getGlobalStorageValue(castelos_id4)

global5 = getGlobalStorageValue(castelos_id5)

 

---- Completos

if access >= gm then

setGlobalStorageValue(castelos_id, 0)

setGlobalStorageValue(castelos_id2, 0)

setGlobalStorageValue(castelos_id3, 0)

setGlobalStorageValue(castelos_id4, 0)

setGlobalStorageValue(castelos_id5, 0)

doPlayerSendTextMessage(cid,ef,msg_gm)

else

doPlayerSendCancel(cid,error)

end

end

 

 

Pronto. Criamos a estrutura do talkaction. Agora vem a base.

Abra o arquivo: talkactions.xml e adicione as seguintes linhas à ele:

 

<talkaction words="!war on" script="talkaction-ativar.lua" />

<talkaction words="!war off" script="talkaction-desativar.lua" />

<talkaction words="!resetar castelos" script="talkaction-resetar.lua" />

 

 

FIM

 

Calma, Calma.

ISSO FOI APENAS OS SCRIPTS, AGORA VEM A PARTE DE ADICIONAR TUDO NO MAPA.

 

Vou dar exemplo com apenas 1 Castelo. Siga os exemplos mostrados na foto caso não saiba como configurar as actions:

 

screenhunter01may062047.gif

 

 

*Obs: a alavanca de resetar é opcional, não é necessário colocar ela.

 

 

Adicionais:

 

Agora que ja esta tudo pronto, basta você entrar no jogo com um GOD e falar os comando para poder ligar, desligar, ou resetar o sistema.

Comandos:

!war on

!war off

!resetar castelos

 

Dicas:

Aconselho fazer o reset todo fim de semana, daí o jogador, ou a guild, podem ficar com o castelo a semana toda.

 

Entao e isso ae. Espero ter ajudado. xD

 

Creditos: 95% Alisson Linneker

5% Kakareco (me)

Link para o comentário
Compartilhar em outros sites

Legal esse systema de guerra, mais seria mais divertido e melhor se fosse do seguinte geito:

Existiria um Imperiun, e quando um play o destruise a castelo seria dele e de sua guild por apenas 1 semana ^^

 

Iqual ao Castle War do http://stagg.servegame.com/

 

xD

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

  • 2 weeks later...
véio, esse sistema de castelo do alisson lineker é uma corrida e não um evento pvp -.-'

 

também acho, evento pvp teria que ganhar quem + matou! Assim enquanto eu mato geral vem um corno correndo ativa a alavanca e pronto acabou. Queria um de mortes tbm =/

Vai ser difícil de achar, mas enfim...

Link para o comentário
Compartilhar em outros sites

Para quem fala que isso e de corrida esta errado! O cara pediu o sistema de castelo entao esta ai e é o unico que tem. Prestem atençao no que vcs postam! T+

 

Esse script funciona em ot 8.4?

 

Acho que funciona sim!

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

com licença... naum manjo nada de action mais vou dar uma ideia pq tbm estou interessado nesse script faz tempo.... ele poderia ser da segunte forma...

 

vc pega e monta um castelo...com +- 5 andares ou + ai vc bota uma alavanca no ultimo andar... a guerra só vale dentro da area do castelo... e tipo assim a guild tem q proteger a alavanca pq quando a guerra acabar o castelo fika pra ultima guild q puxou a alavanca.... mais como tirar os player no fim da guerra... simples bota geral pro dp com um talkaction q ja vi por ai.. e depois é simples arruma um jeito de só quem for daquela guild pode entrar no caste ai teria q montar tipo house inves de invitar player pelo nome invita pela guild ai quem for dakela guild pode entrar no castelo

acho eu q um sistema assim estaria ótimo....

Link para o comentário
Compartilhar em outros sites

o problema está em só os membros da guild usarem os sistemas dentro do castelo. eu pensei em fazer com storage mas não tem como colocar nome de guild e tal, teria que ser feito manualmente após cada war a alteração no script.

Link para o comentário
Compartilhar em outros sites

  • 1 month later...

Não galera! O negocio é assim:

 

Teria q existir as guilds vamo supor a q vai defender o castelo, e a outra q vai ataca, e nao teria q ter nada de alavanca troca essa alavanca por um "Bixo,Monstro" Alguma coisa q os jogadores tem q matar mais o Bixo ou monstro tem q ter muita vida!! E a statua ataca a guild q tem q ataca o castelo e nao ataca os q defendi! E antes do "Chefao" Tem q ter obstaculos tb! como bixos para derrotar e soma ponto! E a guild q ganhar poderia existir alguma coisa expecial tipo um outfit ou alguma classe para quem consegui dominar o castelo por 1 semana!

 

Falo assim pq eu jogo Priston Tale!

 

Abçss. :blush:

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...