é complexo o script :S
bemmmmm complexo
Por yasha, 20 de abr. de 2009 em Archived
info
Grupo: Campones
Registrado: 15/02/08
Posts: 1
Reputação: 0
Char no Tibia: Dark The Cavalier

é complexo o script :S
bemmmmm complexo
info
Grupo: Herói
Registrado: 17/02/08
Posts: 2.5k
Reputação: +193

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 Abril 24 por KaKilo
info
Grupo: Artesão
Registrado: 25/12/07
Posts: 144
Reputação: +12
Char no Tibia: Maximus Down

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

*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)
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 Maio 7 por McTyn
info
Grupo: Campones
Registrado: 30/04/09
Posts: 3
Reputação: 0
Char no Tibia: Shorron'Back

véio, esse sistema de castelo do alisson lineker é uma corrida e não um evento pvp -.-'
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...
Cara olha só, esse do Imperium é bem simples, basta dar use na key que dropa. A function da key eu não conseguiria fazer, mas é com storage value eu acho.
info
Grupo: Campones
Registrado: 01/06/07
Posts: 99
Reputação: 0
Char no Tibia: [ADM] GuiH

Cara Eu Queria Muito esse Sistema TIpo Dorian ....
info
Grupo: Artesão
Registrado: 30/12/07
Posts: 132
Reputação: +5
Gênero: Masculino
Char no Tibia: Hannibol

Esse script funciona em ot 8.4?
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 Junho 8 por kakareco
info
Grupo: Campones
Registrado: 05/05/08
Posts: 70
Reputação: +11
Char no Tibia: vários 400+

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....
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.
info
Grupo: Campones
Registrado: 03/05/09
Posts: 2
Reputação: 0
Char no Tibia: Não InT!

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. ![]()
info
Grupo: Artesão
Registrado: 25/12/07
Posts: 144
Reputação: +12
Char no Tibia: Maximus Down
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 Abril 25 por yasha