Ir para conteúdo
  • Cadastre-se

Ajudinha com script de castlewar :)


Posts Recomendados

Primeiramente boa tarde a todos,bom estou precisando de alguma ajudinha para aperfeiçoar e implementar o script de castle war no meu projeto de otserv.

estou usando o seguinte script :

Atualizado: corrigido erro pelo Demonbholder [dava só em alguns pois eram desatualizados]

em data/lib/050-functions.lua ache a função isInArea, deletem-la e substituam-la por essa:

function isInArea(arr, arr1, arr2)

if (arr.x <= arr1.x and arr.x >= arr2.x) or (arr.x >= arr1.x and arr.x <= arr2.x) then

if (arr.y <= arr1.y and arr.y >= arr2.y) or (arr.y >= arr1.y and arr.y <= arr2.y) then

if (arr.z <= arr1.z and arr.z >= arr2.z) or (arr.z >= arr1.z and arr.z <= arr2.z) then

return TRUE

end

end

end

return FALSE

end

em Data/actions/scripts/ crie um arquivo chamado castlewar-action.lua e nele coloque isto

local storage = 1755

local emGuerra = 1756

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

if getPlayerGuildId(cid) == nil or getPlayerGuildId(cid) <= 0 or getPlayerGuildId(cid) == false then

return doPlayerSendCancel(cid,"Voce precisa de uma guild para dominar o castelo!")

end

if getGlobalStorageValue(emGuerra) <= 0 then

return doPlayerSendCancel(cid,"O Castelo nao está em guerra!")

end

if getPlayerGuildId(cid) == getGlobalStorageValue(storage) then

return doPlayerSendCancel(cid,"Sua guild ja está dominando o castelo!")

end

setGlobalStorageValue(storage,getPlayerGuildId(cid))

doBroadcastMessage("A Guild ".. getPlayerGuildName(cid) .." dominou o castelo!",22)

return true

end

Não mude nada a não ser que não saiba o que esteja fazendo!

em Data/actions/actions.xml coloque isso:

<action actionid="1755" script="castlewar-action.lua" />

em data/movements/scripts/ crie um arquivo chamado castlewar-movements.lua e coloque isso:

local storage = 1755

local emGuerra = 1756

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)

if getGlobalStorageValue(storage) == getPlayerGuildId(cid) then

return true

end

if getGlobalStorageValue(emGuerra) == 1 then

return true

else

doTeleportThing(cid,fromPosition,false)

return doPlayerSendCancel(cid,"Por favor espere a batalha começar!")

end

return true

end

em data/movements/movements.xml coloque isso:

<movevent type="StepIn" actionid="1756" event="script" value="castlewar-movements.lua"/>

em data/talkactions/scripts/ crie um arquivo chamado castlewar-talk.lua e coloque isso:

local storage = 1755

local emGuerra = 1756

local firstpos = {x = 582,y = 1290,z = 7}

local secondpos = {x = 802,y = 1490,z = 0}

function onSay(cid, words, param)

if param == "open" then

setGlobalStorageValue(emGuerra,1)

doBroadcastMessage("A Guerra pelo castelo começou!",22)

return true

elseif param == "close" then

for _, pid in ipairs(getPlayersOnline()) do

if isInArea(getCreaturePosition(pid),firstpos,secondpos)then

if getGlobalStorageValue(storage) ~= getPlayerGuildId(pid) then

doTeleportThing(pid,getTownTemplePosition(getPlayerTown(pid)))

doPlayerSendTextMessage(pid, MESSAGE_STATUS_CONSOLE_BLUE,"Desculpe mas sua guild não venceu essa guerra!")

else

doPlayerSendTextMessage(pid,MESSAGE_STATUS_CONSOLE_BLUE,"Sua guild conseguio dominar o castelo. Parabens por ajuda-la!")

end

end

end

setGlobalStorageValue(emGuerra,0)

doBroadcastMessage("A Guerra pelo castelo terminou!",22)

else

return doPlayerSendCancel(cid,"Digite !war open[inicia a guerra] ou !war close[terminaa guerra]")

end

return true

end

local firstpos = {x = 582,y = 1290,z = 7}

local secondpos = {x = 802,y = 1490,z = 0}

./\ edite essa parte com forme no tutorial das SS's

e em data/talkactions/talkactions.xml adicione isso:

<talkaction log="yes" words="!war" access="5" event="script" value="castlewar-talk.lua"/>

Minhas dúvidas:

- Encerrar o evento automaticamente.

- Quando o evento acaba,ninguem é teleportado para o templo,ou seja todos que não são da guild vencedora ficam "presos" no castelo sem poder deslogar,queria que todos que não fossem da guild vencedora fossem diretamente para o templo.

- Quero criar aqueles Cristais que possuem e varios otservers,que para avançar precisa destrui-los (tipo large crystal com life e que tira dano,mas não sai do lugar).

Se alguem me ajudar terá minha gratidão e créditos no lançamento do meu server.

Agradecimentos, Kamikashi.

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

por favor, retire o link do outro fórum e poste o script.

16/11/2014

23/11/2014

 

RIP AnneMotta 21/01/2012 - 15/01/2014

Liga das lendas: DIAMOND É A META

6qpqBbJ.png

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.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo