BR

Pokemon Male/Female

Por BrunoMaciel, 25 de jan. de 2020 em Scripts

24
2.2k
DeadpoolD
26 de janeiro de 2020 às 13:06
Agora, BrunoMaciel disse:

Deu esse ERRO 

  Ocultar conteúdo

[26/01/2020 13:03:50] [Error - CreatureScript Interface] 
[26/01/2020 13:03:50] data/creaturescripts/scripts/pokeexp.lua:onDeath
[26/01/2020 13:03:50] Description: 
[26/01/2020 13:03:50] data/creaturescripts/scripts/pokeexp.lua:94: attempt to call global 'getPokemonGender' (a nil value)
[26/01/2020 13:03:50] stack traceback:
[26/01/2020 13:03:50]     data/creaturescripts/scripts/pokeexp.lua:94: in function <data/creaturescripts/scripts/pokeexp.lua:29>

Quando eu mato o pokemon o corpo dele some nao fica no chao pra poder capturar simplesmente some ai da esse ERRO 

vai em creaturescript e manda o pokeexp

BrunoMacielB
26 de janeiro de 2020 às 13:08
1 minuto atrás, Kal El disse:

vai em creaturescript e manda o pokeexp

local function playerAddExp(cid, exp)
   doPlayerAddExp(cid, exp)
   doSendAnimatedText(getThingPos(cid), exp, 215)
end

local Exps = {
{minL = 1, maxL = 51, multipler = 1.6},
{minL = 51, maxL = 150, multipler = 1.4},
{minL = 150, maxL = 199, multipler = 1.2},
{minL = 200, maxL = 249, multipler = 1.0},
{minL = 250, maxL = 299, multipler = 0.9},
}

local function calculaExp(cid, expTotal)
if not isPlayer(cid) then return 0 end
   local expFinal = expTotal
   local flag = false
   for _, TABLE in pairs(Exps) do
          if getPlayerLevel(cid) >= TABLE.minL and getPlayerLevel(cid) <= TABLE.maxL then
                 flag = true
                 expFinal = expFinal * TABLE.multipler
                 break
          end
   end
   if not flag then expFinal = expFinal * 0.1 end --lvl 300+
return math.floor(expFinal)
end

function onDeath(cid, corpse, deathList)

if isSummon(cid) or not deathList or getCreatureName(cid) == "Evolution" then return true end --alterado v1.8
-------------Edited Golden Arena-------------------------
   if getPlayerStorageValue(cid, 22546) == 1 then
          setGlobalStorageValue(22548, getGlobalStorageValue(22548)-1)
          if corpse.itemid ~= 0 then doItemSetAttribute(corpse.uid, "golden", 1) end --alterado v1.8
   end
   if getPlayerStorageValue(cid, 22546) == 1 and getGlobalStorageValue(22548) == 0 then
          local wave = getGlobalStorageValue(22547)
          for _, sid in ipairs(getPlayersOnline()) do
                 if isPlayer(sid) and getPlayerStorageValue(sid, 22545) == 1 then
                    if getGlobalStorageValue(22547) < #wavesGolden+1 then
                           doPlayerSendTextMessage(sid, 20, "Wave "..wave.." will begin in "..timeToWaves.."seconds!")
                           doPlayerSendTextMessage(sid, 28, "Wave "..wave.." will begin in "..timeToWaves.."seconds!")
                           addEvent(creaturesInGolden, 100, GoldenUpper, GoldenLower, false, true, true)
                           addEvent(doWave, timeToWaves*1000)
                    elseif getGlobalStorageValue(22547) == #wavesGolden+1 then
                           doPlayerSendTextMessage(sid, 20, "You have win the golden arena! Take your reward!")
                           doPlayerAddItem(sid, 2152, getPlayerStorageValue(sid, 22551)*2) --premio
                           setPlayerStorageValue(sid, 22545, -1)
                           doTeleportThing(sid, getClosestFreeTile(sid, posBackGolden), false)
                           setPlayerRecordWaves(sid)
                    end
                 end
          end
          if getGlobalStorageValue(22547) == #wavesGolden+1 then
                 endGoldenArena()
          end
   end
--------------------------------------------------- /\/\
   local givenexp = getWildPokemonExp(cid)

   if givenexp > 0 then
          for a = 1, #deathList do
                  local pk = deathList[a]
                  local list = getSpectators(getThingPosWithDebug(pk), 30, 30, false)
                  if isCreature(pk) then
                         local expTotal = math.floor(playerExperienceRate * givenexp * getDamageMapPercent(pk, cid))
                                   expTotal = calculaExp(pk, expTotal)
                         local party = getPartyMembers(pk)
                         if isInParty(pk) and getPlayerStorageValue(pk, 4875498) <= -1 then
                            expTotal = math.floor(expTotal/#party)
                            for i = 1, #party do
                                    if isInArray(list, party[i]) then
                                           playerAddExp(party[i], expTotal)
                                    end
                            end
                         else
                                 playerAddExp(pk, expTotal)
                         end
                  end
          end
   end

   if isNpcSummon(cid) then
          local master = getCreatureMaster(cid)
          doSendMagicEffect(getThingPos(cid), getPlayerStorageValue(cid, 10000))
          doCreatureSay(master, getPlayerStorageValue(cid, 10001), 1)
          doRemoveCreature(cid)
          return false
   end

   if corpse.itemid ~= 0 then --alterado v1.8
          doItemSetAttribute(corpse.uid, "level", getPokemonLevel(cid))
          doItemSetAttribute(corpse.uid, "gender", getPokemonGender(cid))
   end
return true
end

 

DeadpoolD
26 de janeiro de 2020 às 13:09

apaga esse ai e coloca este:

Spoiler

local function playerAddExp(cid, exp)
   doPlayerAddExp(cid, exp)
   doSendAnimatedText(getThingPos(cid), exp, 215)
end

local Exps = {
{minL = 1, maxL = 51, multipler = 1.6},
{minL = 51, maxL = 150, multipler = 1.4},
{minL = 150, maxL = 199, multipler = 1.2},
{minL = 200, maxL = 249, multipler = 1.0},
{minL = 250, maxL = 299, multipler = 0.9},
}

local function calculaExp(cid, expTotal)
if not isPlayer(cid) then return 0 end
   local expFinal = expTotal
   local flag = false
   for _, TABLE in pairs(Exps) do
          if getPlayerLevel(cid) >= TABLE.minL and getPlayerLevel(cid) <= TABLE.maxL then
                 flag = true
                 expFinal = expFinal * TABLE.multipler
                 break
          end
   end
   if not flag then expFinal = expFinal * 0.1 end --lvl 300+
return math.floor(expFinal)
end

function onDeath(cid, corpse, deathList)

if isSummon(cid) or not deathList or getCreatureName(cid) == "Evolution" then return true end --alterado v1.8
-------------Edited Golden Arena-------------------------
   if getPlayerStorageValue(cid, 22546) == 1 then
          setGlobalStorageValue(22548, getGlobalStorageValue(22548)-1)
          if corpse.itemid ~= 0 then doItemSetAttribute(corpse.uid, "golden", 1) end --alterado v1.8
   end
   if getPlayerStorageValue(cid, 22546) == 1 and getGlobalStorageValue(22548) == 0 then
          local wave = getGlobalStorageValue(22547)
          for _, sid in ipairs(getPlayersOnline()) do
                 if isPlayer(sid) and getPlayerStorageValue(sid, 22545) == 1 then
                    if getGlobalStorageValue(22547) < #wavesGolden+1 then
                           doPlayerSendTextMessage(sid, 20, "Wave "..wave.." will begin in "..timeToWaves.."seconds!")
                           doPlayerSendTextMessage(sid, 28, "Wave "..wave.." will begin in "..timeToWaves.."seconds!")
                           addEvent(creaturesInGolden, 100, GoldenUpper, GoldenLower, false, true, true)
                           addEvent(doWave, timeToWaves*1000)
                    elseif getGlobalStorageValue(22547) == #wavesGolden+1 then
                           doPlayerSendTextMessage(sid, 20, "You have win the golden arena! Take your reward!")
                           doPlayerAddItem(sid, 2152, getPlayerStorageValue(sid, 22551)*2) --premio
                           setPlayerStorageValue(sid, 22545, -1)
                           doTeleportThing(sid, getClosestFreeTile(sid, posBackGolden), false)
                           setPlayerRecordWaves(sid)
                    end
                 end
          end
          if getGlobalStorageValue(22547) == #wavesGolden+1 then
                 endGoldenArena()
          end
   end
--------------------------------------------------- /\/\
   local givenexp = getWildPokemonExp(cid)

   if givenexp > 0 then
          for a = 1, #deathList do
                  local pk = deathList[a]
                  local list = getSpectators(getThingPosWithDebug(pk), 30, 30, false)
                  if isCreature(pk) then
                         local expTotal = math.floor(playerExperienceRate * givenexp * getDamageMapPercent(pk, cid))
                                   expTotal = calculaExp(pk, expTotal)
                         local party = getPartyMembers(pk)
                         if isInParty(pk) and getPlayerStorageValue(pk, 4875498) <= -1 then
                            expTotal = math.floor(expTotal/#party)
                            for i = 1, #party do
                                    if isInArray(list, party) then
                                           playerAddExp(party, expTotal)
                                    end
                            end
                         else
                                 playerAddExp(pk, expTotal)
                         end
                  end
          end
   end

   if isNpcSummon(cid) then
          local master = getCreatureMaster(cid)
          doSendMagicEffect(getThingPos(cid), getPlayerStorageValue(cid, 10000))
          doCreatureSay(master, getPlayerStorageValue(cid, 10001), 1)
          doRemoveCreature(cid)
          return false
   end

   if corpse.itemid ~= 0 then --alterado v1.8
          doItemSetAttribute(corpse.uid, "level", getPokemonLevel(cid))
   end
return true
end

 

BrunoMacielB
26 de janeiro de 2020 às 13:22
12 minutos atrás, Kal El disse:

apaga esse ai e coloca este:

  Ocultar conteúdo

local function playerAddExp(cid, exp)
   doPlayerAddExp(cid, exp)
   doSendAnimatedText(getThingPos(cid), exp, 215)
end

local Exps = {
{minL = 1, maxL = 51, multipler = 1.6},
{minL = 51, maxL = 150, multipler = 1.4},
{minL = 150, maxL = 199, multipler = 1.2},
{minL = 200, maxL = 249, multipler = 1.0},
{minL = 250, maxL = 299, multipler = 0.9},
}

local function calculaExp(cid, expTotal)
if not isPlayer(cid) then return 0 end
   local expFinal = expTotal
   local flag = false
   for _, TABLE in pairs(Exps) do
          if getPlayerLevel(cid) >= TABLE.minL and getPlayerLevel(cid) <= TABLE.maxL then
                 flag = true
                 expFinal = expFinal * TABLE.multipler
                 break
          end
   end
   if not flag then expFinal = expFinal * 0.1 end --lvl 300+
return math.floor(expFinal)
end

function onDeath(cid, corpse, deathList)

if isSummon(cid) or not deathList or getCreatureName(cid) == "Evolution" then return true end --alterado v1.8
-------------Edited Golden Arena-------------------------
   if getPlayerStorageValue(cid, 22546) == 1 then
          setGlobalStorageValue(22548, getGlobalStorageValue(22548)-1)
          if corpse.itemid ~= 0 then doItemSetAttribute(corpse.uid, "golden", 1) end --alterado v1.8
   end
   if getPlayerStorageValue(cid, 22546) == 1 and getGlobalStorageValue(22548) == 0 then
          local wave = getGlobalStorageValue(22547)
          for _, sid in ipairs(getPlayersOnline()) do
                 if isPlayer(sid) and getPlayerStorageValue(sid, 22545) == 1 then
                    if getGlobalStorageValue(22547) < #wavesGolden+1 then
                           doPlayerSendTextMessage(sid, 20, "Wave "..wave.." will begin in "..timeToWaves.."seconds!")
                           doPlayerSendTextMessage(sid, 28, "Wave "..wave.." will begin in "..timeToWaves.."seconds!")
                           addEvent(creaturesInGolden, 100, GoldenUpper, GoldenLower, false, true, true)
                           addEvent(doWave, timeToWaves*1000)
                    elseif getGlobalStorageValue(22547) == #wavesGolden+1 then
                           doPlayerSendTextMessage(sid, 20, "You have win the golden arena! Take your reward!")
                           doPlayerAddItem(sid, 2152, getPlayerStorageValue(sid, 22551)*2) --premio
                           setPlayerStorageValue(sid, 22545, -1)
                           doTeleportThing(sid, getClosestFreeTile(sid, posBackGolden), false)
                           setPlayerRecordWaves(sid)
                    end
                 end
          end
          if getGlobalStorageValue(22547) == #wavesGolden+1 then
                 endGoldenArena()
          end
   end
--------------------------------------------------- /\/\
   local givenexp = getWildPokemonExp(cid)

   if givenexp > 0 then
          for a = 1, #deathList do
                  local pk = deathList[a]
                  local list = getSpectators(getThingPosWithDebug(pk), 30, 30, false)
                  if isCreature(pk) then
                         local expTotal = math.floor(playerExperienceRate * givenexp * getDamageMapPercent(pk, cid))
                                   expTotal = calculaExp(pk, expTotal)
                         local party = getPartyMembers(pk)
                         if isInParty(pk) and getPlayerStorageValue(pk, 4875498) <= -1 then
                            expTotal = math.floor(expTotal/#party)
                            for i = 1, #party do
                                    if isInArray(list, party) then
                                           playerAddExp(party, expTotal)
                                    end
                            end
                         else
                                 playerAddExp(pk, expTotal)
                         end
                  end
          end
   end

   if isNpcSummon(cid) then
          local master = getCreatureMaster(cid)
          doSendMagicEffect(getThingPos(cid), getPlayerStorageValue(cid, 10000))
          doCreatureSay(master, getPlayerStorageValue(cid, 10001), 1)
          doRemoveCreature(cid)
          return false
   end

   if corpse.itemid ~= 0 then --alterado v1.8
          doItemSetAttribute(corpse.uid, "level", getPokemonLevel(cid))
   end
return true
end

 

Bom agora deu certo porem os pokemons selvagens ainda tem o simbolo.

1.png

DeadpoolD
26 de janeiro de 2020 às 13:23

posta seu spawm.lua..

BrunoMacielB
26 de janeiro de 2020 às 13:25
Agora, Kal El disse:

posta seu spawm.lua..

local shinys = {
"Venusaur", "Charizard", "Blastoise", "Butterfree", "Beedrill", "Pidgeot", "Rattata", "Raticate", "Raichu", "Zubat", "Golbat", "Paras", "Parasect", 
"Venonat", "Venomoth", "Growlithe", "Arcanine", "Abra", "Alakazam", "Tentacool", "Tentacruel", "Farfetch'd", "Grimer", "Muk", "Gengar", "Onix", "Krabby", 
"Kingler", "Voltorb", "Electrode", "Cubone", "Marowak", "Tangela", "Horsea", "Seadra", "Scyther", "Jynx", "Electabuzz", "Pinsir", 
"Magikarp", "Gyarados", "Snorlax", "Dragonair", "Machamp", "Dratini", "Feraligatr", "Typhlosion", "Meganium", "Ampharos", "Tauros", "Xatu", "Rhydon", "Crobat", "Magmar", "Pupitar", "Stantler", "Umbreon", "Mr. Mime", "Magneton", "Ariados", "Dodrio", "Ninetales", "Espeon", "Magby", "Dragonite"}
local raros = {"Ditto"}                               

local function ShinyName(cid)
if isCreature(cid) then
   if string.find(tostring(getCreatureName(cid)), "Shiny") then
      local newName = tostring(getCreatureName(cid)):match("Shiny (.*)")             
      doCreatureSetNick(cid, newName)
      if isMonster(cid) then
         doSetCreatureDropLoot(cid, false)  
      end
   end
end
end

local function doSetRandomGender(cid)
	if not isCreature(cid) then return true end
	if isSummon(cid) then return true end
	local gender = 0
	local name = getCreatureName(cid)
	if not newpokedex[name] then return true end
	local rate = newpokedex[name].gender
		if rate == 0 then
			gender = 3
		elseif rate == 1000 then
			gender = 4
		elseif rate == -1 then
			gender = 0
		elseif math.random(1, 1000) <= rate then
			gender = 4
		else
			gender = 3
		end
	doCreatureSetSkullType(cid, gender)
end

local function doShiny(cid)
if isCreature(cid) then
   if isSummon(cid) then return true end
   if getPlayerStorageValue(cid, 74469) >= 1 then return true end
   if getPlayerStorageValue(cid, 22546) >= 1 then return true end 
   if isNpcSummon(cid) then return true end
   if getPlayerStorageValue(cid, 637500) >= 1 then return true end  --alterado v1.9
   
if isInArray(shinys, getCreatureName(cid)) then  --alterado v1.9 \/
   chance = 0.6    --1% chance        
elseif isInArray(raros, getCreatureName(cid)) then   --n coloquem valores menores que 0.1 !!
   chance = 0.3    --1% chance       
else
   return true
end    
    if math.random(1, 1000) <= chance*10 then  
      doSendMagicEffect(getThingPos(cid), 18)               
      local name, pos = "Shiny ".. getCreatureName(cid), getThingPos(cid)
      doRemoveCreature(cid)
      local shi = doCreateMonster(name, pos, false)
      setPlayerStorageValue(shi, 74469, 1)      
   else
       setPlayerStorageValue(cid, 74469, 1)
   end                                        --/\
else                                                            
return true
end
end
                                                                
function onSpawn(cid)

    registerCreatureEvent(cid, "Experience")
	registerCreatureEvent(cid, "GeneralConfiguration")
	registerCreatureEvent(cid, "DirectionSystem")
	registerCreatureEvent(cid, "CastSystem")
	
	if isSummon(cid) then
		registerCreatureEvent(cid, "SummonDeath")
	return true
	end
	
	addEvent(doSetRandomGender, 5, cid)
	addEvent(doShiny, 10, cid)
	addEvent(ShinyName, 15, cid)
	addEvent(adjustWildPoke, 5, cid)

return true
end

 

DeadpoolD
26 de janeiro de 2020 às 13:26

prontinho..

apaga o seu e coloca este

Spoiler

local shinys = {
"Venusaur", "Charizard", "Blastoise", "Butterfree", "Beedrill", "Pidgeot", "Rattata", "Raticate", "Raichu", "Zubat", "Golbat", "Paras", "Parasect", 
"Venonat", "Venomoth", "Growlithe", "Arcanine", "Abra", "Alakazam", "Tentacool", "Tentacruel", "Farfetch'd", "Grimer", "Muk", "Gengar", "Onix", "Krabby", 
"Kingler", "Voltorb", "Electrode", "Cubone", "Marowak", "Tangela", "Horsea", "Seadra", "Scyther", "Jynx", "Electabuzz", "Pinsir", 
"Magikarp", "Gyarados", "Snorlax", "Dragonair", "Machamp", "Dratini", "Feraligatr", "Typhlosion", "Meganium", "Ampharos", "Tauros", "Xatu", "Rhydon", "Crobat", "Magmar", "Pupitar", "Stantler", "Umbreon", "Mr. Mime", "Magneton", "Ariados", "Dodrio", "Ninetales", "Espeon", "Magby", "Dragonite"}
local raros = {"Ditto"}                               

local function ShinyName(cid)
if isCreature(cid) then
   if string.find(tostring(getCreatureName(cid)), "Shiny") then
      local newName = tostring(getCreatureName(cid)):match("Shiny (.*)")             
      doCreatureSetNick(cid, newName)
      if isMonster(cid) then
         doSetCreatureDropLoot(cid, false)  
      end
   end
end
end


local function doShiny(cid)
if isCreature(cid) then
   if isSummon(cid) then return true end
   if getPlayerStorageValue(cid, 74469) >= 1 then return true end
   if getPlayerStorageValue(cid, 22546) >= 1 then return true end 
   if isNpcSummon(cid) then return true end
   if getPlayerStorageValue(cid, 637500) >= 1 then return true end  --alterado v1.9
   
if isInArray(shinys, getCreatureName(cid)) then  --alterado v1.9 \/
   chance = 0.6    --1% chance        
elseif isInArray(raros, getCreatureName(cid)) then   --n coloquem valores menores que 0.1 !!
   chance = 0.3    --1% chance       
else
   return true
end    
    if math.random(1, 1000) <= chance*10 then  
      doSendMagicEffect(getThingPos(cid), 18)               
      local name, pos = "Shiny ".. getCreatureName(cid), getThingPos(cid)
      doRemoveCreature(cid)
      local shi = doCreateMonster(name, pos, false)
      setPlayerStorageValue(shi, 74469, 1)      
   else
       setPlayerStorageValue(cid, 74469, 1)
   end                                        --/\
else                                                            
return true
end
end
                                                                
function onSpawn(cid)

    registerCreatureEvent(cid, "Experience")
    registerCreatureEvent(cid, "GeneralConfiguration")
    registerCreatureEvent(cid, "DirectionSystem")
    registerCreatureEvent(cid, "CastSystem")
    
    if isSummon(cid) then
        registerCreatureEvent(cid, "SummonDeath")
    return true
    end
    
    addEvent(doShiny, 10, cid)
    addEvent(ShinyName, 15, cid)
    addEvent(adjustWildPoke, 5, cid)

return true
end

 

BrunoMacielB
26 de janeiro de 2020 às 13:36

Valeuu amigo agora foi ^^

 

Valeuu por ajuda ?

 

Rep+++

DeadpoolD
26 de janeiro de 2020 às 13:37

nada, precisando ai so marcar