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!!