Ir para conteúdo

Featured Replies

  • Respostas 52
  • Visualizações 11.2k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • luanluciano93
    luanluciano93

    Tópico aprovado, obrigado por compartilhar. Este tópico foi movido: Para: "OTServ → Scripting → Sistemas e MODs" Esta horrivel esse código, se possível indentar o código e usar o "code" do bbcode.

  • Se ele moveu é porque seu tópico foi aprovado e movido para área correta... meu deus.

  • @Tiodarsaa   Tenta ai:   vai em creaturescripts/scripts/login.lua procure por onLogin Abaixo dessa linha adicione o seguinte código: local pos = { fromPos = {x= 994

Postado
  • Autor

@Tiodarsaa vc testou com o player offline ou online?

 

Assim, vc coloca o codigo no login.lua

 

Conquista o castle com alguma guild, deixa o player dentro do castle e desloga, vai la com outra guild, vence o castle, desloga, loga no player da guild q perdeu o castle, e é pra ele ser teleportado pro templo '-'

Postado

sim eu testei com os jogadores online conquistei o castelo entrei com o jogador no castelo, ai fui com outra guild e conquistei o castelo porem aquele que era o dono permaneceu dentro do castelo ou seja ficou os dois dentro do castelo kkkk

Postado
  • Autor

@Tiodarsaa Tenta ai:

 

actions/scripts troca o castlewar1.lua por esse e configura as coordenadas de acordo com a posição do seu castle:

 

Spoiler

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

local castle_one_name = "Castle24h"                  -- Nome do castelo 1
local storages = {154154,54321,123123}               -- Storages ( se vc eh iniciante, deixe como está...)

local premio_por_vezes = 1         -- Premio por vezes de conquista de castelo. (1) = Ativo  (0) = Desativa. 
local premio_vezes = 15            -- Caso ativo, a quantidade de conquista que o player tem, para ganhar PREMIO.
local premio = 5468                -- 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
local pos = {
-- molde inicial
[1] = {
	fromPos = {x= 9940, y= 9873, z= 7}, -- Top Left Corner
	toPos = {x= 9993, y= 9920, z= 7} -- Bottom Right Corner
	},
-- se houverem outras areas que vc quer checar, adicione sempre nesse molde acima apenas editando o numero [x] para um acima e mudando as posicoes	
--[[ EXEMPLO:
[2] = {
	fromPos = {x= 9541, y= 9371, z= 4}, -- Top Left Corner
	toPos = {x= 9618, y= 9407, z= 4} -- Bottom Right Corner
	},
]]
}

local sto_ativ = getGlobalStorageValue(storages[2])
position = getCreaturePosition(cid)

   if isPlayerGuild(cid) 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)
			   --- remove os players do castelo ---
				for i, pid in pairs (getPlayersOnline()) do
					for i = 1, #pos do 
						if isInArea(getCreaturePosition(pid), pos[i].fromPos, pos[i].toPos) and getPlayerGuildId(pid) ~= getGlobalStorageValue(storages[3]) then
							doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)))						
						end
					end
				end
			   ---------------------------------
               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

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

function isPlayerGuild(cid)
if getPlayerGuildName(cid) ~= "" then
return true
else
return false
end
end

 

Créditos ao @xWhiteWolf gtz xD

 

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo