Ir para conteúdo

Featured Replies

Postado

 

Galerinha do Tk é possivel alguem me ajudar a colocar um time no script no meu castle?

como funciona ? é simples ao ganhar o castle war o KING dropa sua coroa e ao dar use nela a guild domina o castle

e tem acesso a porta do castelo.

queria deixar essa storage durar apenas 6 dias é possivel ?

e essas storages estao meio confusas, tentei adicionar um script de bonus a elas mas nao consegui testei todas e nada.

esse é o script do bonus:

Spoiler

function onLogin(cid)

local rate = 1.20 -- 20%
local config = {
welvip = "voce é dono do castle tem "..((rate - 1)*100).."% de exp a mais agora!",
not_vip = "a guild que domina o castle ganha "..((rate - 1)*100).."% a mais de experiencia!.",
s = 123123, -- 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

script do castle:

Spoiler

-----------------------------------            
---------SCRIPT por PC98------------    NAO REMOVA OS CREDITOS      
-----------------------------------            


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

------------------ Inicio das Config ------------

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

-------PREMIOs  I N D I V I D U A L ---------

local premio_por_vezes = 1         -- Premio por vezes de conquista de castelo. (1) = Ativo  (0) = Desativa. 
local premio_vezes = 3            -- Caso ativo, a quantidade de conquista que o player tem, para ganhar PREMIO.
local premio = 10522                -- 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

-------FIM PREMIOs I N D I V I D U A L ---------


----------------- FIM DAS CONFIG -----------------

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 "..castle_one_name.." para a guild \""..guildname.."\" pela "..sto_vezes_total.."ª vez(s).", 22)
              doSendMagicEffect(position, 39)  
              doRemoveItem(item.uid, 1)

                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
              doBroadcastMessage("O(a) "..getCreatureName(cid).." acabou de conquistar o "..castle_one_name.." para a guild \""..guildname.."\" pela "..sto_vezes_total.."ª vez(s).", 22)
              doSendMagicEffect(position, 39)  
           end
     else
     doPlayerSendCancel(cid,"O sistema está desativado")
     end      
  else
  doPlayerSendCancel(cid,"É nescessario ter guild para dominar o castelo!")
  doSendMagicEffect(position, 2)
  end
end

------------------------- por pc98

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 receber o item. Verificando novamente em 10 segundos!")
 addEvent(additem,10000,cid)
 end
end

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

 

  • Respostas 5
  • Visualizações 534
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Certo!!   ----------------------------------- ---------SCRIPT por PC98------------ NAO REMOVA OS CREDITOS ----------------------------------- function onUse

  • Desculpe-me! Erro meu. function onLogin(cid) local expBonus = 0.2 -- 20% local config = { welvip = "voce é dono do castle tem "..(expBonus*100).."% de exp a mais agora!", not_vip = "A gui

Postado

Certo!!

 

-----------------------------------            
---------SCRIPT por PC98------------    NAO REMOVA OS CREDITOS      
-----------------------------------            


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

------------------ Inicio das Config ------------

local castle_one_name = "Castle"                  -- Nome do castelo 1
local expBonus = 0.2 -- +20% exp
local dayBonus = 6
local storages = {154154, 54321, 123123}               -- Storages ( se vc eh iniciante, deixe como está...)

-------PREMIOs  I N D I V I D U A L ---------

local premio_por_vezes = 1         -- Premio por vezes de conquista de castelo. (1) = Ativo  (0) = Desativa. 
local premio_vezes = 3            -- Caso ativo, a quantidade de conquista que o player tem, para ganhar PREMIO.
local premio = 10522                -- 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

-------FIM PREMIOs I N D I V I D U A L ---------


----------------- FIM DAS CONFIG -----------------

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])                   

			  -- REMOVE BONUS DA GUILD PERDEDORA
			  for _, lose in ipairs(getPlayersOnline()) do
					if (getGlobalStorageValue(storages[3]) == getPlayerGuildId(lose)) then
						local rates = getPlayerRates(lose)
						doPlayerSetExperienceRate(lose, rates[SKILL__LEVEL] - expBonus)
						doPlayerSendTextMessage(lose, MESSAGE_STATUS_CONSOLE_ORANGE, "Sua Guild perdeu o dominío do castelo. Você perdeu o bônus de +10% EXP.")
					end
			  end

              setGlobalStorageValue(storages[3], getPlayerGuildId(cid)) -- salva a guild dominante

			  -- ADICIONA BONUS DA GUILD VENCEDORA
			  for _, win in ipairs(getPlayersOnline()) do
					if (getGlobalStorageValue(storages[3]) == getPlayerGuildId(win)) then
						local rates = getPlayerRates(win)
						doPlayerSetExperienceRate(win, rates[SKILL__LEVEL] + expBonus)
						doPlayerSendTextMessage(win, MESSAGE_STATUS_CONSOLE_ORANGE, "Sua Guild agora recebe +10% EXP ao derrotar monstros enquanto estiver no poder.")
					end
			  end
			  
			  setPlayerStorageValue(cid, 123457, os.time() + dayBonus*24*60*60) -- adiciona storage com um tempo de 6 dias

              setPlayerStorageValue(cid,storages[1], sto_vezes + 1)

              sto_vezes_total = getPlayerStorageValue(cid,storages[1])

              doBroadcastMessage("O(a) "..getCreatureName(cid).." acabou de conquistar o "..castle_one_name.." para a guild \""..guildname.."\" pela "..sto_vezes_total.."ª vez(s).", 22)
              doSendMagicEffect(position, 39)  
              doRemoveItem(item.uid, 1)

                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
              doBroadcastMessage("O(a) "..getCreatureName(cid).." acabou de conquistar o "..castle_one_name.." para a guild \""..guildname.."\" pela "..sto_vezes_total.."ª vez(s).", 22)
              doSendMagicEffect(position, 39)  
           end
     else
     doPlayerSendCancel(cid,"O sistema está desativado")
     end      
  else
  doPlayerSendCancel(cid,"É nescessario ter guild para dominar o castelo!")
  doSendMagicEffect(position, 2)
  end
end

------------------------- por pc98

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 receber o item. Verificando novamente em 10 segundos!")
 addEvent(additem,10000,cid)
 end
end

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

 

 

function onLogin(cid)

	local expBonus = 0.2 -- 20%
	local config = {
		welvip = "voce é dono do castle tem "..(expBonus*100).."% de exp a mais agora!",
		not_vip = "A guild que domina o castle ganha "..(expBonus*100).."% a mais de experiencia!.",
		s = {123123, 123457} -- storage vip
	}

	local guildId = getPlayerGuildId(cid)
	local guildDominante = getGlobalStorageValue(storages[1], guildId)
	if (guildId > 0 and guildId == guildDominante) then
		if getPlayerStorageValue(cid, config.s[2]) - os.time() > 0 then
			local rates = getPlayerRates(cid)
			doPlayerSetExperienceRate(cid, rates[SKILL__LEVEL] + expBonus)
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.welvip)
		else
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.not_vip)
		end
	end
	return true
end

 

 

Postado
  • Autor
11 horas atrás, Kinato disse:

Certo!!

 



-----------------------------------            
---------SCRIPT por PC98------------    NAO REMOVA OS CREDITOS      
-----------------------------------            


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

------------------ Inicio das Config ------------

local castle_one_name = "Castle"                  -- Nome do castelo 1
local expBonus = 0.2 -- +20% exp
local dayBonus = 6
local storages = {154154, 54321, 123123}               -- Storages ( se vc eh iniciante, deixe como está...)

-------PREMIOs  I N D I V I D U A L ---------

local premio_por_vezes = 1         -- Premio por vezes de conquista de castelo. (1) = Ativo  (0) = Desativa. 
local premio_vezes = 3            -- Caso ativo, a quantidade de conquista que o player tem, para ganhar PREMIO.
local premio = 10522                -- 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

-------FIM PREMIOs I N D I V I D U A L ---------


----------------- FIM DAS CONFIG -----------------

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])                   

			  -- REMOVE BONUS DA GUILD PERDEDORA
			  for _, lose in ipairs(getPlayersOnline()) do
					if (getGlobalStorageValue(storages[3]) == getPlayerGuildId(lose)) then
						local rates = getPlayerRates(lose)
						doPlayerSetExperienceRate(lose, rates[SKILL__LEVEL] - expBonus)
						doPlayerSendTextMessage(lose, MESSAGE_STATUS_CONSOLE_ORANGE, "Sua Guild perdeu o dominío do castelo. Você perdeu o bônus de +10% EXP.")
					end
			  end

              setGlobalStorageValue(storages[3], getPlayerGuildId(cid)) -- salva a guild dominante

			  -- ADICIONA BONUS DA GUILD VENCEDORA
			  for _, win in ipairs(getPlayersOnline()) do
					if (getGlobalStorageValue(storages[3]) == getPlayerGuildId(win)) then
						local rates = getPlayerRates(win)
						doPlayerSetExperienceRate(win, rates[SKILL__LEVEL] + expBonus)
						doPlayerSendTextMessage(win, MESSAGE_STATUS_CONSOLE_ORANGE, "Sua Guild agora recebe +10% EXP ao derrotar monstros enquanto estiver no poder.")
					end
			  end
			  
			  setPlayerStorageValue(cid, 123457, os.time() + dayBonus*24*60*60) -- adiciona storage com um tempo de 6 dias

              setPlayerStorageValue(cid,storages[1], sto_vezes + 1)

              sto_vezes_total = getPlayerStorageValue(cid,storages[1])

              doBroadcastMessage("O(a) "..getCreatureName(cid).." acabou de conquistar o "..castle_one_name.." para a guild \""..guildname.."\" pela "..sto_vezes_total.."ª vez(s).", 22)
              doSendMagicEffect(position, 39)  
              doRemoveItem(item.uid, 1)

                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
              doBroadcastMessage("O(a) "..getCreatureName(cid).." acabou de conquistar o "..castle_one_name.." para a guild \""..guildname.."\" pela "..sto_vezes_total.."ª vez(s).", 22)
              doSendMagicEffect(position, 39)  
           end
     else
     doPlayerSendCancel(cid,"O sistema está desativado")
     end      
  else
  doPlayerSendCancel(cid,"É nescessario ter guild para dominar o castelo!")
  doSendMagicEffect(position, 2)
  end
end

------------------------- por pc98

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 receber o item. Verificando novamente em 10 segundos!")
 addEvent(additem,10000,cid)
 end
end

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

 

 



function onLogin(cid)

	local expBonus = 0.2 -- 20%
	local config = {
		welvip = "voce é dono do castle tem "..(expBonus*100).."% de exp a mais agora!",
		not_vip = "A guild que domina o castle ganha "..(expBonus*100).."% a mais de experiencia!.",
		s = {123123, 123457} -- storage vip
	}

	local guildId = getPlayerGuildId(cid)
	local guildDominante = getGlobalStorageValue(storages[1], guildId)
	if (guildId > 0 and guildId == guildDominante) then
		if getPlayerStorageValue(cid, config.s[2]) - os.time() > 0 then
			local rates = getPlayerRates(cid)
			doPlayerSetExperienceRate(cid, rates[SKILL__LEVEL] + expBonus)
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.welvip)
		else
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.not_vip)
		end
	end
	return true
end

 

 

obrigado. irei testar

está dando esse erro em creaturescripts

creio eu que fiz tudo correto.

Spoiler

[Error - CreatureScript Interface]
data/creaturescripts/scripts/castleexp.lua:onLogin
Description:
data/creaturescripts/scripts/castleexp.lua:11: attempt to index global 'storages' (a nil value)
stack traceback:
        data/creaturescripts/scripts/castleexp.lua:11: in function <data/creaturescripts/scripts/castleexp.lua:1>

 

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

        registerCreatureEvent(cid, "castleexp")

 

o script do castle funcionou perfeitamente

Editado por Carlinhous1996 (veja o histórico de edições)

Postado
Em 12/04/2022 em 06:47, Carlinhous1996 disse:

obrigado. irei testar

está dando esse erro em creaturescripts


Desculpe-me!
Erro meu.

function onLogin(cid)

	local expBonus = 0.2 -- 20%
	local config = {
		welvip = "voce é dono do castle tem "..(expBonus*100).."% de exp a mais agora!",
		not_vip = "A guild que domina o castle ganha "..(expBonus*100).."% a mais de experiencia!.",
		s = {123123, 123457} -- storage vip
	}

	local guildId = getPlayerGuildId(cid)
	local guildDominante = getGlobalStorageValue(config.s[1], guildId)
	if (guildId > 0 and guildId == guildDominante) then
		if getPlayerStorageValue(cid, config.s[2]) - os.time() > 0 then
			local rates = getPlayerRates(cid)
			doPlayerSetExperienceRate(cid, rates[SKILL__LEVEL] + expBonus)
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.welvip)
		else
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.not_vip)
		end
	end
	return true
end


 

Postado
  • Autor

testei aqui, mas nao funcionou.

era pra ficar uma msg quando loga mas nem isso e o exp tb nao almentou

"12:49 voce é VIP account tem 20% de exp a mais agora!"

5 horas atrás, Kinato disse:


Desculpe-me!
Erro meu.


function onLogin(cid)

	local expBonus = 0.2 -- 20%
	local config = {
		welvip = "voce é dono do castle tem "..(expBonus*100).."% de exp a mais agora!",
		not_vip = "A guild que domina o castle ganha "..(expBonus*100).."% a mais de experiencia!.",
		s = {123123, 123457} -- storage vip
	}

	local guildId = getPlayerGuildId(cid)
	local guildDominante = getGlobalStorageValue(config.s[1], guildId)
	if (guildId > 0 and guildId == guildDominante) then
		if getPlayerStorageValue(cid, config.s[2]) - os.time() > 0 then
			local rates = getPlayerRates(cid)
			doPlayerSetExperienceRate(cid, rates[SKILL__LEVEL] + expBonus)
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.welvip)
		else
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.not_vip)
		end
	end
	return true
end


 

 

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.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo