Postado Outubro 1, 2012 12 anos 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 : Citar 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 Citar 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! Citar 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 Citar 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 Citar 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 Outubro 1, 2012 12 anos por kamikashi (veja o histórico de edições)
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.