Ir para conteúdo
  • 0

Suporte math.random


deglorio

Pergunta

local keywordHandler = KeywordHandler:new()local npcHandler = NpcHandler:new(keywordHandler)NpcSystem.parseParameters(npcHandler)local talkState = {}function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) endfunction onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) endfunction onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) endfunction onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg)if(not npcHandler:isFocused(cid)) thenreturn falseend local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cidlocal tasks = {["blastoise"] = {["Junko"] = {{"Blastoise", 3}}}, --modifiquei aki, mas n sei se vai da certo kk["electabuzz"] = {["Junko"] = {{"Electabuzz", 3}}},["venusaur"] = {["Junko"] = {{"Venusaur", 3}}},["charizard"] = {["Junko"] = {{"Charizard", 3}}},}local msg = msg:lower() --eh sempre bom por isso.. pra deixar a msg soh em letras minusculas  if msgcontains(msg, "task") then   if isMyTaskComplete(cid, getNpcCid()) then          selfSay("Wow you have already complete my task! Ok then, take your reward!", cid)          doPlayerAddExperience(cid, 1500000) --premio          doPlayerAddItem(cid, 2160, 25)           local sto = getMyTaskSto(cid, getNpcCid())          setPlayerStorageValue(cid, sto, -1) --nunca esqueça disso...          setPlayerStorageValue(cid, 25566, os.time() + 24*60*60)              setPlayerStorageValue(cid, 181601, 1) --storage da outfit              setPlayerStorageValue(cid, 181602, 1) --storage da outfit          talkState[talkUser] = 0          return true   elseif getPlayerStorageValue(cid, 25588) > os.time() then          selfSay("You have to wait 24h to do my task again!", cid)          talkState[talkUser] = 0          return true   elseif getMyTaskSto(cid, getNpcCid()) ~= -1 then          selfSay("You are already doing my task! Go end it!", cid)          talkState[talkUser] = 0          return true   end   selfSay("What task do you want? {blastoise}, {electabuzz}, {venusaur}, {charizard}", cid)   talkState[talkUser] = 1   return trueelseif isInArray({"blastoise", "electabuzz", "venusaur", "charizard"}, msg) and talkState[talkUser] == 1 then   task = tasks[msg] --modifiquei aki tb   selfSay("Are you sure?", cid)   talkState[talkUser] = 2   return trueelseif msgcontains(msg, "yes") and talkState[talkUser] == 2 then   local sto = getFreeTaskStorage(cid)   if sto == -1 then          selfSay("You can't catch more tasks! You are already with the maximum of "..(maxTasks).." tasks!", cid)          talkState[talkUser] = 0          return true   end   selfSay("OK kill all, good luck!", cid)   setStorageArray(cid, sto, task)   talkState[talkUser] = 0   return trueend return trueendnpcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)npcHandler:addModule(FocusModule:new())

Olá, achei esse script de um npc de task, ele funciona perfeitamente, porém tentei deixar os monstros da task random e não consegui, podem me ajudar?

Tentei de várias maneiras e não consegui

 

Desde já agradeço

 

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

Posts Recomendados

  • 0
Agora, deglorio disse:

Testei aqui e não ficou random

 

sempre aparece 

 

00:55 Junko: Which you prefer? 20 Blastoise or 18 Venusaur?

 Não escolhe as outras opções

 

Eu coloquei pra quando você falar com o NPC pela primeira vez, ele te dar dois pokémon fixos, ou seja, se tu logar em outro char, vai ter dois pokémon fixos pra ele também.

Com fixo eu quero dizer que, você pode falar com ele quantas vezes quiser/deslogar e tal, mas só quando os storages forem zerados que ele te dará outros pokémon.

Link para o comentário
Compartilhar em outros sites

  • 0
3 minutos atrás, deglorio disse:

Correto, ótimo!

O nome do npc la Junko foi necessário por que? Só pra eu entender

E as storages, quando eu for criar outro NPC, posso manter as mesmas storages?

 

Eu tinha feito com o nome do NPC invés de "daily", ai eu lembrei que tu pediu pra deixar "daily" invés do nome do NPC. Eu esqueci de tirar... :'( não serve pra nada, pode tirar se quiser. E também, se quiser, eu posso colocar para aparecer o nome do NPC invés de "daily".

As storages tem que ser diferentes.

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

  • 0

Teria como deixar as mesmas storages, e a storage ficar storage,npcname?

 

pq o que diferenciaria era o nome do npc, ai posso manter as mesmas storages?

Pq senao terei que criar um creatureevent para cada npc

 

Ficou confuso?

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

  • 0

Ficou bem confuso. :|:

Pelo que entendi, tu não quer que o cara possa fazer a quest do 4 NPCs no mesmo dia, é isso? A storage que verifica se ele já terminou a task (depois que os prêmios foram entregues) é a "done", então mantendo ela em todos os scripts, o cara só vai poder fazer uma por dia.

Link para o comentário
Compartilhar em outros sites

  • 0

Não.

Perceba no final do código do NPC, que tem isso:

local storage = 154721setPlayerStorageValue (cid, storage, name.."/"..qnt)

 

No creaturescript eu pego o storage do player e dou explode, então se no final do código de cada NPC tiver isso com o mesmo storage, creio eu que não terá problemas.

Link para o comentário
Compartilhar em outros sites

  • 0

NPC

local qntLef = 84956
Creatrescriptlocal qntStorage = 84956

 

 

 

Faz a task uma vez normalmente.

Ai quando passa as 24h e vu fazer denovo, ai só falar YES que já recebe o premio.

 

Pode me ajudar a resetar as storages após  o termino da task?

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

  • 0

Foi o que eu te disse, tem que fazer um script pra resetar o storage depois de 24 horas.

Isso é assunto de outro tópico, e já tem vários tópicos sobre isso aqui e no "sitezinho qualquer", só procurar.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...