Poccnn 385 Postado Novembro 20, 2016 Share Postado Novembro 20, 2016 (editado) 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 Fevereiro 10, 2017 por Poccnn Link para o comentário Compartilhar em outros sites More sharing options...
Poccnn 385 Postado Fevereiro 10, 2017 Autor Share Postado Fevereiro 10, 2017 Tu usa pokelixo? Pode ser ese o problema. Mas... Ainda assim encontrei dois possíveis erros que foram revistos. Obrigado. Link para o comentário Compartilhar em outros sites More sharing options...
wevertonvrb 25 Postado Fevereiro 12, 2017 Share Postado Fevereiro 12, 2017 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 More sharing options...
Posts Recomendados