Ir para conteúdo
  • 1

Solução para passive pokemasterX


malwarebr

Pergunta

Vi que alguns procuram aqui.. eu não entendo quase nada de script.. mais consegui solucionar esse problema após 12 +/- tentando de tudo!!! kkkkk

 

tive que editar 2 arquivos!

 

o Spawn.Lua e playerattack.lua

o playerattack.lua eu resgatei o arquivo da versão DxP v3.

ficando assim:

local fightcondition = createConditionObject(CONDITION_INFIGHT)
setConditionParam(fightcondition, CONDITION_PARAM_TICKS, 12 * 1000)

function fightCondic(cid)
	if not isCreature(cid) then return true end
	if not isCreature(getCreatureTarget(cid)) then return true end
	doAddCondition(cid, fightcondition)
addEvent(fightCondic, 1000, cid)
end

function onTarget(cid, target)

if getPlayerStorageValue(target) ~= -1 and isPlayer(cid) then
   doSetPokemonAgressiveToPlayer(target, cid)
end

if isPlayer(target) then
   if canAttackOther(cid, target) == "Cant" then            
      return false 
   elseif isPlayer(target) and #getCreatureSummons(target) >= 1 and canAttackOther(cid, target) == "Can" then
      return false
   end
end

if getPlayerStorageValue(target, 201) ~= -1 then
for a, b in pairs(ginasios) do
if getPlayerStorageValue(target, ginasios[getPlayerStorageValue(target, 201)].storage) == 1 then
	if getPlayerStorageValue(cid, ginasios[getPlayerStorageValue(target, 201)].storage) ~= 1 then
	doPlayerSendCancel(cid, "You can't attack this pokemon.")
	return false
	end
end
end
end

if isSummon(target) then                             
	if not CanAttackerInDuel(cid, getCreatureMaster(target)) then
	   return false
	end
end 

return TRUE
end

e no spawn.lua eu adicionei a seguinte linha:

 

if isPokePassive(cid) then
          setPokemonPassive(cid, true)
    end

 

- Ela ficou pra mim na linha 145. Segue o Código: 


local respGrande = {"Pupitar", "Tyranitar", "Skarmory", "Magcargo", "Ampharos", "Xatu", "Crobat", "Typhlosion", "Magmar", "Electabuzz", "Cubone", "Marowak", "Electrode", "Charizard", "Oddish", "Paras", "Parasect"}

local respMedio = {"Lanturn", "Dratini", "Dragonair", "Snorlax", "Krabby", "Kingler", "Gengar", "Pidgeot", "Raichu", "Machamp"}

local respPequeno = {"Steelix", "Sudowoodo", "Feraligatr", "Meganium", "Dragonite", "Gyarados", "Pinsir", "Tauros", "Jynx", "Scyther", "Mr. mime", "Horsea", "Seadra", "Tangela", "Grimer", "Muk", "Tentacool", "Tentacruel", "Farfetch'd", "Growlithe", "Arcanine", "Alakazam", "Venusaur", "Blastoise", "Butterfree", "Beedrill", "Ratatta", "Raticate", "Golbat", "Venonat", "Venomoth"}

local shinykarp = {"Magikarp"}

function onSpawn(cid)



	if isSummon(cid) then
		return true
	end
	
	if not isCreature(cid) then 
		return true
	end
	
	if getCreatureName(cid) == "" or getCreatureName(cid) == nil then
		setPlayerStorageValue(cid, 510, getCreatureNick(cid))
	end
	
	registerCreatureEvent(cid, "GeneralConfiguration")
	registerCreatureEvent(cid, "WildAttack")
	registerCreatureEvent(cid, "PokeWalk")
	 
	if not ehMonstro(cid) then
		setPokemonGhost(cid)
		if getCreatureName(cid):find("Shiny ") then
			setPlayerStorageValue(cid, storages.EhShiny, 1)
		end
		return true
	end
	
	local name = getCreatureName(cid)
	local pos = getThingPos(cid) 
	
	addEvent(function()
		if not isSummon(cid) and not isShinyName(name) then

			local chance = 0
			if isInArray(respGrande, doCorrectString(name)) then --alterado v1.9 \/
				chance = 20 
			elseif isInArray(respMedio, doCorrectString(name)) then
				chance = 25
			elseif isInArray(respPequeno, doCorrectString(name)) then
				chance = 30
			end 
		
			local function doShiny(cid, pos, name, mode)
				if pos and name then
					name = "Shiny "..name
				
					if not pokes[name] then 
						return true 
					end	
					
					doSendMagicEffect(pos, 18) 
					doCreateMonsterNick(cid, name, retireShinyName(name), pos, false)
				end	
			end	
		
			if math.random(1, 1000) <= chance then
				doRemoveCreature(cid)
				doShiny(cid, pos, name, 1)
				return true
			end
			
		local storages = {"Hoodeasy", "Hoodmedium", "Hoodhard", "Hoodexpert", "Hoodlendary"}		
		for i = 1, #storages do
			if isShinyName(name) and getPlayerStorageValue(cid, storages[i]) >= 1 then
				doRemoveCreature(cid)
			end
		end
		
	end

	local spawn_arrs = {
		{frompos = {x = 1922, y = 41, z = 14}, topos = {x = 2833, y = 1428, z = 14}},
	}		
		
		for _, arr in pairs(spawn_arrs) do
			if isInRange(pos, arr.frompos, arr.topos) then
				if isWild(cid) and string.find(name, "Shiny") and not isInArray({"Shiny Salamence", "Shiny Scizor", "Shiny Magmortar", "Shiny Electivire"}, name) then
					doRemoveCreature(cid)
				end
			end
		end
			
		if isInArray({"Abporygon", "Aporygon"}, name) then
			doCreatureSetHideHealth(cid, true)
		end
		
		if isWild(cid) and getCreatureName(cid) == "Magikarp" then
			if math.random(1, 5000) <= 25 then
				doRemoveCreature(cid)
				doCreateMonster("Feebas", pos, false)
			end
		end
		
		if isWild(cid) and isHoenn(getCreatureName(cid)) then
			if math.random(1, 5000) <= 25 then
				local sorte = bossName[math.random(#bossName)]
				doRemoveCreature(cid)	
				doCreateMonster(sorte, pos, false)				
			end
		end				
		
		if not isSummon(cid) then
			adjustWildPoke(cid)
		end
	if isPokePassive(cid) then
	      setPokemonPassive(cid, true)
	end
	
	end, 5)
	
	setPokemonGhost(cid)
	doMarkedPos(cid, getThingPos(cid))
	setSmeargle(cid)		
	addEvent(Camouflage, 5, cid)
	
	

	
	return true
	
end


function Camouflage(cid)
	if isWild(cid) and getCreatureName(cid) == "Kecleon" then
		doSetCreatureOutfit(cid, {lookType = 2057}, -1)	
		doCreatureSetHideHealth(cid, true)		
	end
end
	
function setSmeargle(cid)
	if isSummon(cid) then return true end
	if getCreatureName(cid):find("Smeargle") then
			local id = math.random(5, 6)
			if math.random(1, 500) <= 50 then id = math.random(7, 8) end
			setPlayerStorageValue(cid, storages.SmeargleID, "Smeargle " .. id)
	end
end

testei aqui e rodou sem erros até o momento! pokemons estão passivos até serem atacados!

Obs. estou postando para ajudar! se estiver em local errado peço perdão!!

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
Em 08/01/2020 em 19:59, malwarebr disse:
Versão do Servidor: TFS - 0.3.5
Tipo de Script: creaturescript
Código:
  Mostrar conteúdo oculto



 

Vi que alguns procuram aqui.. eu não entendo quase nada de script.. mais consegui solucionar esse problema após 12 +/- tentando de tudo!!! kkkkk

 

tive que editar 2 arquivos!

 

o Spawn.Lua e playerattack.lua

o playerattack.lua eu resgatei o arquivo da versão DxP v3.

ficando assim:


local fightcondition = createConditionObject(CONDITION_INFIGHT)
setConditionParam(fightcondition, CONDITION_PARAM_TICKS, 12 * 1000)

function fightCondic(cid)
	if not isCreature(cid) then return true end
	if not isCreature(getCreatureTarget(cid)) then return true end
	doAddCondition(cid, fightcondition)
addEvent(fightCondic, 1000, cid)
end

function onTarget(cid, target)

if getPlayerStorageValue(target) ~= -1 and isPlayer(cid) then
   doSetPokemonAgressiveToPlayer(target, cid)
end

if isPlayer(target) then
   if canAttackOther(cid, target) == "Cant" then            
      return false 
   elseif isPlayer(target) and #getCreatureSummons(target) >= 1 and canAttackOther(cid, target) == "Can" then
      return false
   end
end

if getPlayerStorageValue(target, 201) ~= -1 then
for a, b in pairs(ginasios) do
if getPlayerStorageValue(target, ginasios[getPlayerStorageValue(target, 201)].storage) == 1 then
	if getPlayerStorageValue(cid, ginasios[getPlayerStorageValue(target, 201)].storage) ~= 1 then
	doPlayerSendCancel(cid, "You can't attack this pokemon.")
	return false
	end
end
end
end

if isSummon(target) then                             
	if not CanAttackerInDuel(cid, getCreatureMaster(target)) then
	   return false
	end
end 

return TRUE
end

e no spawn.lua eu adicionei a seguinte linha:

 


if isPokePassive(cid) then
          setPokemonPassive(cid, true)
    end

 

- Ela ficou pra mim na linha 145. Segue o Código: 



local respGrande = {"Pupitar", "Tyranitar", "Skarmory", "Magcargo", "Ampharos", "Xatu", "Crobat", "Typhlosion", "Magmar", "Electabuzz", "Cubone", "Marowak", "Electrode", "Charizard", "Oddish", "Paras", "Parasect"}

local respMedio = {"Lanturn", "Dratini", "Dragonair", "Snorlax", "Krabby", "Kingler", "Gengar", "Pidgeot", "Raichu", "Machamp"}

local respPequeno = {"Steelix", "Sudowoodo", "Feraligatr", "Meganium", "Dragonite", "Gyarados", "Pinsir", "Tauros", "Jynx", "Scyther", "Mr. mime", "Horsea", "Seadra", "Tangela", "Grimer", "Muk", "Tentacool", "Tentacruel", "Farfetch'd", "Growlithe", "Arcanine", "Alakazam", "Venusaur", "Blastoise", "Butterfree", "Beedrill", "Ratatta", "Raticate", "Golbat", "Venonat", "Venomoth"}

local shinykarp = {"Magikarp"}

function onSpawn(cid)



	if isSummon(cid) then
		return true
	end
	
	if not isCreature(cid) then 
		return true
	end
	
	if getCreatureName(cid) == "" or getCreatureName(cid) == nil then
		setPlayerStorageValue(cid, 510, getCreatureNick(cid))
	end
	
	registerCreatureEvent(cid, "GeneralConfiguration")
	registerCreatureEvent(cid, "WildAttack")
	registerCreatureEvent(cid, "PokeWalk")
	 
	if not ehMonstro(cid) then
		setPokemonGhost(cid)
		if getCreatureName(cid):find("Shiny ") then
			setPlayerStorageValue(cid, storages.EhShiny, 1)
		end
		return true
	end
	
	local name = getCreatureName(cid)
	local pos = getThingPos(cid) 
	
	addEvent(function()
		if not isSummon(cid) and not isShinyName(name) then

			local chance = 0
			if isInArray(respGrande, doCorrectString(name)) then --alterado v1.9 \/
				chance = 20 
			elseif isInArray(respMedio, doCorrectString(name)) then
				chance = 25
			elseif isInArray(respPequeno, doCorrectString(name)) then
				chance = 30
			end 
		
			local function doShiny(cid, pos, name, mode)
				if pos and name then
					name = "Shiny "..name
				
					if not pokes[name] then 
						return true 
					end	
					
					doSendMagicEffect(pos, 18) 
					doCreateMonsterNick(cid, name, retireShinyName(name), pos, false)
				end	
			end	
		
			if math.random(1, 1000) <= chance then
				doRemoveCreature(cid)
				doShiny(cid, pos, name, 1)
				return true
			end
			
		local storages = {"Hoodeasy", "Hoodmedium", "Hoodhard", "Hoodexpert", "Hoodlendary"}		
		for i = 1, #storages do
			if isShinyName(name) and getPlayerStorageValue(cid, storages[i]) >= 1 then
				doRemoveCreature(cid)
			end
		end
		
	end

	local spawn_arrs = {
		{frompos = {x = 1922, y = 41, z = 14}, topos = {x = 2833, y = 1428, z = 14}},
	}		
		
		for _, arr in pairs(spawn_arrs) do
			if isInRange(pos, arr.frompos, arr.topos) then
				if isWild(cid) and string.find(name, "Shiny") and not isInArray({"Shiny Salamence", "Shiny Scizor", "Shiny Magmortar", "Shiny Electivire"}, name) then
					doRemoveCreature(cid)
				end
			end
		end
			
		if isInArray({"Abporygon", "Aporygon"}, name) then
			doCreatureSetHideHealth(cid, true)
		end
		
		if isWild(cid) and getCreatureName(cid) == "Magikarp" then
			if math.random(1, 5000) <= 25 then
				doRemoveCreature(cid)
				doCreateMonster("Feebas", pos, false)
			end
		end
		
		if isWild(cid) and isHoenn(getCreatureName(cid)) then
			if math.random(1, 5000) <= 25 then
				local sorte = bossName[math.random(#bossName)]
				doRemoveCreature(cid)	
				doCreateMonster(sorte, pos, false)				
			end
		end				
		
		if not isSummon(cid) then
			adjustWildPoke(cid)
		end
	if isPokePassive(cid) then
	      setPokemonPassive(cid, true)
	end
	
	end, 5)
	
	setPokemonGhost(cid)
	doMarkedPos(cid, getThingPos(cid))
	setSmeargle(cid)		
	addEvent(Camouflage, 5, cid)
	
	

	
	return true
	
end


function Camouflage(cid)
	if isWild(cid) and getCreatureName(cid) == "Kecleon" then
		doSetCreatureOutfit(cid, {lookType = 2057}, -1)	
		doCreatureSetHideHealth(cid, true)		
	end
end
	
function setSmeargle(cid)
	if isSummon(cid) then return true end
	if getCreatureName(cid):find("Smeargle") then
			local id = math.random(5, 6)
			if math.random(1, 500) <= 50 then id = math.random(7, 8) end
			setPlayerStorageValue(cid, storages.SmeargleID, "Smeargle " .. id)
	end
end

testei aqui e rodou sem erros até o momento! pokemons estão passivos até serem atacados!

Obs. estou postando para ajudar! se estiver em local errado peço perdão!!

 

 

vlw ajudo muito

Link para o comentário
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...