Ir para conteúdo
  • 0

Megas aleatorio


Azon25

Pergunta

Galera eu queria um script para Pokemon. Esse script teria mesma função que o spawn.lua do creatures script . eu tentei fazer e um amigo fez para mim so que não nasce pokemons megas. Então eu queria esse daqui olha para mega 

Spoiler

local shinysName = {
"Blastoise", "Venusaur", "Butterfree", "Beedrill", "Pidgeot", "Rattata", "Raticate", "Raichu", "Golbat", "Paras", "Parasect", "Magmar", "Typhlosion", "Xatu", "Growlithe", "Arcanine", "Tentacruel", "Gengar", "Krabby", "Tauros", 
"Kingler", "Cubone", "Horsea", "Seadra", "Weezing", "Scyther", "Pinsir", "Crobat", "Zubat", "Banette", "Tentacool", "Feraligatr", "Machamp", "Meganium", "Alakazam", "Tangela", "Ampharos", "Electabuzz", "Jynx", "Charizard", "Voltorb", "Electrode"}

function onSpawn(cid)
    if getCreatureName(cid) == "" or getCreatureName(cid) == nil then
       setPlayerStorageValue(cid, 510, getCreatureNick(cid))
    end
    
    
    
    --if isTwoGerenetion(doCorrectString(getCreatureName(cid))) then doRemoveCreature(cid) return false end
    registerCreatureEvent(cid, "GeneralConfiguration")
    registerCreatureEvent(cid, "WildAttack")
    registerCreatureEvent(cid, "Experience")
    registerCreatureEvent(cid, "Matou")
    registerCreatureEvent(cid, "PokeWalk")
    registerCreatureEvent(cid, "StatsChange")
    
    if not ehMonstro(cid) then
        registerCreatureEvent(cid, "Target")
        registerCreatureEvent(cid, "Matou")
        registerCreatureEvent(cid, "SummonDeath")
        getPokeDistanceToTeleport(cid)
        setPokemonGhost(cid)
        if getCreatureName(cid):find("Shiny ") then
           setPlayerStorageValue(cid, storages.EhShiny, 1)
        end
    return true
    end
    
    addEvent(doShiny, 5, cid)
    addEvent(adjustWildPoke, 5, cid)
    setPokemonGhost(cid)
    doMarkedPos(cid, getThingPos(cid))
    
       if isPokePassive(cid) then
          setPokemonPassive(cid, true)
       end

return true
end

function doShiny(cid)
    if isCreature(cid) then
           if isSummon(cid) then return true end
           if isNpcSummon(cid) then return true end
            local chance = 0
            if isInArray(shinysName, doCorrectString(getCreatureName(cid))) then  --alterado v1.9 \/
               chance = 10    --1% chance  
            end    
            local sid = cid
            if math.random(1, 500) <= chance then  
              doSendMagicEffect(getThingPos(cid), 18)               
              local name, pos = "Shiny ".. getCreatureName(cid), getThingPos(cid)
              if not pokes[name] then return true end
              doRemoveCreature(cid)
              --print(name .. ", " .. retireShinyName(name))
              local shi = doCreateMonsterNick(sid, name, retireShinyName(name), pos, false)          
           end  
    else 
                                                               
    return true
    end
end

 

 

eu ate consigo outro tipo de script fazer sumonar os megas aleatorio, mas dava um erro . exemplo se um player tivesse um blastoise, e ele ficasse chamando e guardando seu pokemon uma hora ele virava mega. olha foi esse outro script que eu usei

Spoiler

local config = {
    chance = 10,                     --Coloquem apenas números inteiros (1 - 0.0001%).
    bosses = {
        --["monster_name"] = "boss",
        ["Blastoise"] = "Mega Blastoise",
        ["Venusaur"] = "Mega Venusaur",
        ["Charizard"] = "Mega Charizard Y",


    },
}
function onSpawn(cid)
    if isMonster(cid) then
        addEvent(function()
            if isCreature(cid) then
                local boss = config.bosses[getCreatureName(cid)]
                if boss and math.random(1, 1000) <= config.chance then
            doSendMagicEffect(getThingPos(cid), 287) 
                    local pos = getThingPos(cid)
                    doRemoveCreature(cid)
                    doCreateMonster(boss, pos)
                end
            end
        end, 5)
    end
    return true
end

 

poxa qualquer um dos dois estava ótimo para mim. obgd

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

para sua 2 opçao

no lugar de if isMonster(cid) then coloque if ehMonstro(cid) then

se não tiver alguma dessas função coloque elas

 

function ehMonstro(cid)
   if not isCreature(cid) then return false end
      if not isSummon(cid) and isMonster(cid) then
         return true
      end
   return false
end

 

function isSummon(sid)
return isCreature(sid) and getCreatureMaster(sid) ~= sid and isPlayer(getCreatureMaster(sid))   --alterado v1.9
end 

 

ou então se não usa a função onSpawn(cid) para algo nos seus summon faz uma checagem

if isSummon(cid) then return true end

 

 

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

  • 0
Em 02/11/2016 at 11:15, nociam disse:

para sua 2 opçao

no lugar de if isMonster(cid) then coloque if ehMonstro(cid) then

se não tiver alguma dessas função coloque elas

 

function ehMonstro(cid)

   if not isCreature(cid) then return false end

      if not isSummon(cid) and isMonster(cid) then

         return true

      end

   return false

end

 

function isSummon(sid)

return isCreature(sid) and getCreatureMaster(sid) ~= sid and isPlayer(getCreatureMaster(sid))   --alterado v1.9

end 

 

ou então se não usa a função onSpawn(cid) para algo nos seus summon faz uma checagem

if isSummon(cid) then return true end

 

vlw cara consegui aqui com sua ajuda

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...