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!!
Pergunta
malwarebr 3
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