Ir para conteúdo

Featured Replies

Postado

Coloquei um castle 24h em meu ot serv e ele roda 99% perfeito, o unico defeito que ele tem é que quando uma guild toma o castelo da outra as duas permanecem dentro do castelo...o certo seria que todos os player da guild que acabou de perder o castelo ser mandado para fora do castelo.

    Ja joguei um ot onde o script rodava 100% quando uma guild tomava o castelo da outra, os player permaneciam la dentro porem qualquer passo que eles dessem na protectzone eles era expulsos e aparecia a msg "Sua Guild Não é Mais Dona Do castelo". é possivel fazer uma uniqid para colocar em todos os sqms dentro do castelo com essa mesma função??

Obg e rep++ pra quem ajudar

  • Respostas 7
  • Visualizações 585
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • deixa o script do 'castlelever.lua' assim:   function onUse(cid, item, frompos, item2, topos) local castle_one_name = "Castle24h" -- Nome do castelo 1 local storages = {1541

Postado
  • Autor

eu não manjo de programação, é muito complicado fazer esse script? você poderia me ajudar com isso pfv?

Postado

Posta seu script de castle, pra gente vê se tem alguma storage que possa ser reutilizada em um evento onLogin.

 

@This life is filled with hurt

When happiness doesn't work

Trust me and take my hand

When the lights go out you will understand

Postado
  • Autor

ok ai vai o script todo:  

 

Data/actions/scripts/ 

castledoor1.lua 

  ---------------                                                   
-----BY PC98-------  
  ---------------                                                   
         
function onUse(cid, item, frompos, item2, topos) 

-------------------------Config-----------------------------------------------------------------

door_opened = 1230                          -- ID da porta aberta
storage_guild = getGlobalStorageValue(123123)  -- A 3ª storage configurada em Castle.lua

guarda_ativ = 1      -- Caso um invasor tente abrir a porta, sumonar o Monstro "Guarda"??  | (0) = SIM  (1) = NAO
guarda_cont = 2                                 -- Caso ativo: a quantidade de guardas a sumonar
guarda_pos = {x=900,y=1194,y=7}                  -- Posiçao a ser sumonada os guardas!

-------------------------Fim de Config-----------------------------------------------------------


if getPlayerGuildId(cid) == storage_guild then
   doTeleportThing(cid,getThingPos(item.uid))
   doTransformItem(item.uid, door_opened)
   doPlayerSendTextMessage(cid, 22, "Seja bem vindo a vosso castelo!")   
   return TRUE
else
    if guarda_ativ == 1 then
       doPlayerSendTextMessage(cid, 22, "Este castelo nao pertence a sua guild")
        for i=1, guarda_cont do
            
        end
    return FALSE
    else
    doPlayerSendTextMessage(cid, 22, "Este castelo nao pertence a sua guild")
    return FALSE
    end
end
end

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

 

DATA/ACTIOS/SCRIPTS/

castlelever.lua

 

function onUse(cid, item, fromPosition, itemEx, toPosition)
    if(item.actionid == 4850) then
       doTeleportThing(getTopCreature({x=329,y=118,z=5}).uid, {x=329,y=118,z=3})
    elseif (item.actionid == 4851) then
        doTeleportThing(getTopCreature({x=329,y=118,z=3}).uid, {x=329,y=118,z=5})
    
    end
    return true
end

 

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

 

Data/actios/scripts/

castlewar1.lua

 

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 = 7488                -- ID do Premio
local premio_cont = 5              -- Quantidade do Premio
local premio_reset = 1             -- Resetar o contador do premio depois que atingir a meta?? (1) = SIM  (0) = NAO

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


   if isPlayerGuild(cid) == TRUE 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)
               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

 

AGORA AS 3 ACTIOSN QUE VAI NO: DATA/ACTIONS/ACTION.XML

 

<!-- Castle 24Hrs -->
<action value="castlewar1.lua" event="script" actionid="9999"/>
<action value="castledoor1.lua" event="script" actionid="4538"/>
<movevent value="guild.lua" event="script" actionid="9997" type="StepIn"/>

 

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

DATA/CREATURESCRIPTS/SCRIPTS  

castleexp.lua

 

function onLogin(cid)

local rate = 1.1 -- 20%
local config = {
welvip = "sua guild domina o CASTLE 24H você tem "..((rate - 1)*100).."% de exp a mais agora!",
not_vip = "a guild que domina o CASTLE 24H ganha "..((rate - 1)*100).."% a mais de experiencia!",
s = 4538, -- storage vip
}

if getPlayerStorageValue(cid, config.s) - os.time() >= 1 then
doPlayerSetExperienceRate(cid, rate)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.welvip)
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.not_vip)
end
return TRUE
end

 

DATA/CREATURESCRIPTS/CREATURESCRIPTS.XML

 

<event name="castleexp" type="login" script="castleexp.lua"/>

 

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

DATA/MOVEMENTS/SCRIPTS

castlewar2.LUA

 

function onStepIn(cid, item, position, fromPosition)


local castle_one_name = "Castle24H"   -- Nome do castelo 1
local storages = {154154,54321,123123}    -- Storages ( se vc eh iniciante, deixe como est&#225;...)


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


   if isPlayerGuild(cid) == TRUE 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 


  doBroadcastMessage("O Jogador ["..getCreatureName(cid).."] Está tentando invadir o ["..castle_one_name.."] Da guild [\""..guildname.."] Aviso donos atuais", MESSAGE_STATUS_WARNING) 


else
 doPlayerSendCancel(cid,"Avance")
end
 else
 doPlayerSendCancel(cid,"Avance")
 end 
   else
   doPlayerSendCancel(cid,"Avance")
   end
   return true
end


function isPlayerGuild(cid)
if getPlayerGuildName(cid) ~= "" then
return TRUE
else
return FALSE
end
end

 

data/movements/movements.xml

<movevent actionid="9998" type="StepIn" value="castlewar2.lua" event="script"/>

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

 

acredito que não esteja faltando nada

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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