Ir para conteúdo

Prêmio por login


Poccnn

Posts Recomendados

Hail Xtibianos.

Fiz um script simpres e útil para agradecer aos jogadores que entram em seu servidor diariamente. 

 

Em creaturescripts.xml: tu adiciona essa tag.

Citar

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

 

Agora em cresturescripts/scripts, crie um arquivo lua com o nome regalo e insira esse código nele.

Citar

--[=[ 
######################################################################################################################################### 
##                                                                   Sistema de premiação por login - diario, semanal e mensal.                                                                           ## 
##                                                                                     Desenvolvido por Marcryzius.                                                                                                   ## 
##                                                                                  Data da última edição: 11/11/16                                                                                                   ## 
######################################################################################################################################### 
-- "valor" É dado como pontos da skill (ataques) e não como level da skill. 
-- tu podes usar qualquer chave dessas para dar pontuação de skill ao jogador. 
   ["fist"] = valor 
   ["club"] = valor 
   ["sword"] = valor 
   ["axe"] = valor 
   ["distance"] = valor 
   ["dist"] = valor 
   ["shielding"] = valor 
   ["shield"] = valor 
   ["fishing"] = valor 
   ["fish"] = valor 
   ["exp"] = valor 
]=] 

 

local chave = 1020 --storage usada para marcar o dia de login do player. 
local skill_nome = {[0]="First",[1]="Club",[2]="Sword",[3]="Axe",[4]="Distance",[5]="Shield",[6]="Fishing"} 
local regalo = { 
   -- Obs.: Os prêmios são dados por vocação. 
   -- Premiação diária.  
   _diario = { 
   -- [id da vocação] = {[dia1]={[id do item] = quantidade de items, skill_nome= valor, ...},[dia2]={[id do item] = quantidade de items, skill_nome=valor, ...}, ... [dia~]={[id do item] = quantidade de items, skill_nome=valor, ...}} 
      [0] = {[1]={[2148]=1},[2]={[2148]=2,[2152]=1}, [3]={[2148]=3},[4]={[2148]=4,[2152]=2},[5]={[2148]=5},[6]={[2148]=6,[2152]=3},[7]={[2148]=7}}, 
      [1] = {[1]={[2148]=1},[2]={[2148]=2,[2152]=1}, [3]={[2148]=3},[4]={[2148]=4,[2152]=2},[5]={[2148]=5},[6]={[2148]=6,[2152]=3},[7]={[2148]=7}}, 
      [2] = {[1]={[2148]=1},[2]={[2148]=2,[2152]=1}, [3]={[2148]=3},[4]={[2148]=4,[2152]=2},[5]={[2148]=5},[6]={[2148]=6,[2152]=3},[7]={[2148]=7}}, 
      [3] = {[1]={[2148]=1},[2]={[2148]=2,[2152]=1}, [3]={[2148]=3},[4]={[2148]=4,[2152]=2},[5]={[2148]=5},[6]={[2148]=6,[2152]=3},[7]={[2148]=7}}, 
      [4] = {[1]={[2148]=1},[2]={[2148]=2,[2152]=1}, [3]={[2148]=3},[4]={[2148]=4,[2152]=2},[5]={[2148]=5},[6]={[2148]=6,[2152]=3},[7]={[2148]=7}}, 
      [5] = {[1]={[2148]=1},[2]={[2148]=2,[2152]=1}, [3]={[2148]=3},[4]={[2148]=4,[2152]=2},[5]={[2148]=5},[6]={[2148]=6,[2152]=3},[7]={[2148]=7}}, 
      [6] = {[1]={[2148]=1},[2]={[2148]=2,[2152]=1}, [3]={[2148]=3},[4]={[2148]=4,[2152]=2, shield=20},[5]={[2148]=5},[6]={[2148]=6,[2152]=3},[7]={[2148]=7}}, 
      [7] = {[1]={[2148]=1},[2]={[2148]=2,[2152]=1}, [3]={[2148]=3},[4]={[2148]=4,[2152]=2},[5]={[2148]=5},[6]={[2148]=6,[2152]=3},[7]={[2148]=7}}, 
      [8] = {[1]={[2148]=1},[2]={[2148]=2,[2152]=1}, [3]={[2148]=3},[4]={[2148]=4,[2152]=2},[5]={[2148]=5},[6]={[2148]=6,[2152]=3},[7]={[2148]=7}}, 
      [12] = {[1]={[2148]=1},[2]={[2148]=2,[2152]=1}, [3]={[2148]=3},[4]={[2148]=4,[2152]=2,axe=50},[5]={[2148]=5},[6]={[2148]=6,[2152]=3},[7]={[2148]=7}}, 
   }, 
   -- Premiação semanal. 
   _semanal = { 
   -- [id da vocação] = {[semana1]={[id do item] = quantidade de items, ...},[semana2]={[id do item] = quantidade de items, ...}, ... [semana~]={[id do item] = quantidade de items, ...}} 
      [0] = {[1]={[2160]=1,exp=1000,distance=100, shielding=1000},[2]={[2160]=2,[2152]=1}}, 
      [1] = {[1]={[2160]=1},[2]={[2160]=2,[2152]=1}}, 
      [2] = {[1]={[2160]=1},[2]={[2160]=2,[2152]=1}}, 
      [3] = {[1]={[2160]=1},[2]={[2160]=2,[2152]=1}}, 
      [4] = {[1]={[2160]=1},[2]={[2160]=2,[2152]=1}}, 
      [5] = {[1]={[2160]=1},[2]={[2160]=2,[2152]=1}}, 
      [6] = {[1]={[2160]=1},[2]={[2160]=2,[2152]=1}}, 
      [7] = {[1]={[2160]=1},[2]={[2160]=2,[2152]=1}}, 
      [8] = {[1]={[2160]=1},[2]={[2160]=2,[2152]=1}}, 
      [12] = {[1]={[2160]=1},[2]={[2160]=2,[2152]=1}}, 
   }, 
   -- Premiação mensal. 
   _mensal = { 
-- [id da vocação] = {[mes1]={[id do item] = quantidade de items, ...},[mes2]={[id do item] = quantidade de items, ...}, ... [mes~]={[id do item] = quantidade de items, ...}} 
      [0] = {[1]={[2160]=10}}, 
      [1] = {[1]={[2160]=10}}, 
      [2] = {[1]={[2160]=10}}, 
      [3] = {[1]={[2160]=10}}, 
      [4] = {[1]={[2160]=10}}, 
      [12] = {[1]={[2160]=10}}, 
   }, 

 

function onLogin(cid) 
local dia_atual, ultimo_dia = tonumber(os.date("%d")),tonumber(os.date("%d",getPlayerLastLogin(cid))) 
local dia_store, voc = getPlayerStorageValue(cid,chave) < 1 and 1 or getPlayerStorageValue(cid,chave), getPlayerVocation(cid) 
local receive_str = "**Premio por Login**" 

 

   if(ultimo_dia < dia_atual) or (ultimo_dia ~= dia_atual and dia_atual == 1)then 
      if(dia_atual-ultimo_dia == 1 or dia_atual == 1)then 
         for periodo, str in pairs(regalo) do 
            if(periodo == "_semanal") and not((dia_store/7)%2 == 0 or (dia_store/7)%2 == 1) then 
            elseif(periodo == "_mensal") and not((dia_store/30)%2 == 0 or (dia_store/30)%2 == 1) then 
            elseif(str[voc])then 
               receive_str = receive_str.."\n\n>Premio d"..((periodo == "_diario") and "o dia "..dia_store or (periodo == "_semanal") and "a semana" or "o mes")..": " 
               for k, v in pairs(str[voc] and str[voc][(periodo == "_diario" and dia_store or periodo == "_semanal" and dia_store/7 or dia_store/30)]) do 
                  if(SKILL_IDS[k])then 
                     doPlayerAddSkillTry(cid, SKILL_IDS[k], v) 
                     receive_str  = receive_str.."\n>>"..v.." pontos de "..skill_nome[sKILL_IDS[k]].." | " 
                  elseif(k == "exp")then 
                     receive_str  = receive_str.."\n>>"..v.." pontos de experiencia | " 
                     doPlayerAddExperience(cid,v) 
                  elseif(tonumber(k) and k > 1000)then 
                     receive_str = receive_str.."\n>>"..v.." "..getItemNameById(k).." | " 
                     doPlayerAddItem(cid, k, v, false) 
                  end 
               end 
            end 
         end 
         setPlayerStorageValue(cid,chave,dia_store+1) 
      elseif(regalo._diario[voc])then
         setPlayerStorageValue(cid,chave,2) 
         for item, quant in pairs(regalo._diario[voc][1]) do -- Apenas premio diário. 
            doPlayerAddItem(cid, item, quant, false) 
         end 
      end 
      doShowTextDialog(cid, 2523, receive_str) 
   end 
   return true 
end 
 

 

No próprio arquivo existe uma explicação é alguns exemplos de uso.

Qualquer dúvida, deixe nos comentários. 

Editado por Poccnn
Link para o comentário
Compartilhar em outros sites

  • 2 months later...
Em 10/02/2017 at 21:14, Poccnn disse:

Tu usa pokelixo? Pode ser ese o problema. 

 

Mas... Ainda assim encontrei dois possíveis erros que foram revistos.

Obrigado.

sim é pokemon (cada um com seus gostos) e isso n interfere no script sera que pode me ajudar com o erro?

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...